IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

la méthode range de l'objet global a échoué


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur Télécom
    Inscrit en
    Octobre 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Ingénieur Télécom
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 9
    Points : 1
    Points
    1
    Par défaut la méthode range de l'objet _global a échoué
    bonjour
    j'ai le problème suivant, j'essaie de donner une valeur à des series de données dans un graphique excel. par moment c'est bon sans que je ne sache réellement ce que j'ai fait (c'était bon hier) et depuis ce matin ce n'est pas bon. jai le message:la méthode range de l'objet _global a échoué au niveau du code en rouge

    voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    For Each sh In Sheets
    For Each Graph In sh.ChartObjects
    Windows("statjourfull.xls").Activate
    Sheets("Comviva").Activate
    
    Graph.Chart.SetSourceData Source:=Range(sourcedata1(code, mam))
    'Graph.Name
    
    Next Graph
    
    Next sh
    
    End Sub
    voici une partie de mon code: sourcedata1. et c'est ok si je mets juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sourcedata1 = "Comviva!$A$2:$Y$2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Function sourcedata1(nombre, mam)
     
    'Windows("statjourfull.xls").Activate
    'Sheets("Comviva").Activate
         If nombre = "code1" Then
         If mam = "ENGINE1" Then
         sourcedata1 = "Comviva!$A$2:$Y$2;Comviva!$A$4:$Y$4;Comviva!$A$8:$Y$8;Comviva!$A$10:$Y$10"
         End If
    ...
    end function
    merci pour votre aide

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur Télécom
    Inscrit en
    Octobre 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Ingénieur Télécom
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 9
    Points : 1
    Points
    1
    Par défaut La méthode range de l'objet _global a échoué
    bonjour
    j'ai le problème suivant, j'essaie de donner une valeur à des series de données dans un graphique excel.lorsque j'execute le code pour la première fois soit manuellement ou via le planificateur de taches, j'ai le message d'erreur: la méthode range de l'objet _global a échoué au niveau du code en rouge

    je suis obligé dans l'éditeur vba de cliquer sur le bouton réinitialiser, puis sur le bouton arrêter, puis sur le bouton réinitialiser et après le bouton executer et c'est OK. seulement cette methode ne m'arrange pas que je veux lancer automatiquement ce code via le planificateur de tches windows.
    voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    For Each sh In Sheets
    For Each Graph In sh.ChartObjects
    Windows("statjourfull.xls").Activate
    Sheets("Comviva").Activate
     
    Graph.Chart.SetSourceData Source:=Range(sourcedata1(code, mam))
    'Graph.Name
     
    Next Graph
     
    Next sh
     
    End Sub
     
    'voici une partie de mon code: sourcedata1. et c'est ok si je mets juste
    'sourcedata1 = "Comviva!$A$2:$Y$2
    'le pb se pose quand j'ai sourcedata1 = "Comviva!$A$2:$Y$2;Comviva!$A$4:$Y$4;Comviva!$A$8:$Y$8;Comviva!$A$10:$Y$10"
     
    Public Function sourcedata1(nombre, mam)
     
    'Windows("statjourfull.xls").Activate
    'Sheets("Comviva").Activate
    If nombre = "code1" Then
    If mam = "ENGINE1" Then
    sourcedata1 = "Comviva!$A$2:$Y$2;Comviva!$A$4:$Y$4;Comviva!$A$8:$Y$8;Comviva!$A$10:$Y$10"
    End If
    ...
    end function
    merci pour votre aide

  3. #3
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Et si tu remplaçais les point-virgules par des virgules?

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur Télécom
    Inscrit en
    Octobre 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Ingénieur Télécom
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    lorsque je remplace les points virgules par des virgules j'ai des erreurs

  5. #5
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Points : 1 499
    Points
    1 499
    Par défaut
    Bonjour,

    Pour mon information :
    - Est-il bien nécessaire de répéter le nom de la feuille dans une sélection discontinue ?
    - Je ne sais quel est le type de la variable "sourcedata1" mais la ligne d'erreur est-elle équivalente à : un essai semble indiquer que oui.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sourcedata1 = range("Comviva!$A$2:$Y$2,$A$4:$Y$4,$A$8:$Y$8,$A$10:$Y$10").address
    ?

    (C'est le message d'erreur mentionné (methode range) qui m'amène à cette interrogation).

    Cordialement,

  6. #6
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour,
    et comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With Sheets("Comviva")
      sourcedata1 = .Range("$A$2:$Y$2,$A$4:$Y$4,$A$8:$Y$8,$A$10:$Y$10").Address
      MsgBox sourcedata1
    End With
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      sourcedata1 = Sheets("Comviva").Range("$A$2:$Y$2,$A$4:$Y$4,$A$8:$Y$8,$A$10:$Y$10").Address
      MsgBox sourcedata1

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur Télécom
    Inscrit en
    Octobre 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Ingénieur Télécom
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    bjr, excuse pour le delai
    j'ai toujours la meme erreur avec tes suggestions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      sourcedata1 = Sheets("Comviva").Range("$A$2:$Y$2,$A$4:$Y$4,$A$8:$Y$8,$A$10:$Y$10").Address
     
    ou
    sourcedata1 = Sheets("Comviva").Range("$A$2:$Y$2,$A$4:$Y$4,$A$8:$Y$8,$A$10:$Y$10").Address
      MsgBox sourcedata1

    mais ils marchent (tes suggestions) lorsque je clique dans vba sur réinitialiser puis arrêter puis réinitialiser et executer

    cordialement

  8. #8
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    mais ils marchent (tes suggestions) lorsque je clique dans vba sur réinitialiser puis arrêter puis réinitialiser et executer
    donc l'erreur vient d'ailleurs

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur Télécom
    Inscrit en
    Octobre 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Ingénieur Télécom
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    Y'ello DOM
    je suis entièrement d'accord avec toi.
    la problemetique est la suivante:
    le meme code marche lorsque j'execute la macro (apres avoir cliqué sur réinitialiser, arrêter, réinitialiser puis executer) manuellement.
    ce meme code ne marche pas lorsque cette meme macro est lancée par un programme vbs geré par une tache dans le planificateur de tache windows.

    Merci pour ton aide

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur Télécom
    Inscrit en
    Octobre 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Ingénieur Télécom
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 9
    Points : 1
    Points
    1
    Par défaut la méthode range de l'objet global a échoué
    bonjour
    j'ai le problème suivant:
    j'essaie de donner des valeurs à des series d'un graphe sous excel en utilisant vba. lorsque j'execute directement la procedure j'ai l'erreur: la méthode range de l'objet global a échoué.
    mais lorsque je clique sur le bouton réinitialiser puis arrêter puis réinitialier et après executer tout se passe bien ( pas d'erreur). quelqu'un pourrait il m'expliquer l'impact de l'action : réinitialiser --> arrêter --> réinitialier --> executer sur mon code. comment pourrais je l'integrer dans mon code pour eviter de l'executer manuellement. ci-dessous mon code. l'erreur est au niveau de la partie en rouge merci de noter aussi que si je limite sourcedata1 à un seul range je n'ai aucun problème ie sourcedata1 = "Comviva!$A$2:$Y$2"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Sub graphiquecomviva()
    '
    ' Macro3225 Macro
    '
    ' Touche de raccourci du clavier: Ctrl+o
    '
    'Dim Graph As ChartObject
    Dim mam, code, visible As String
    Dim pos As Integer
    Dim sh As Worksheet, Graph As ChartObject
    
    For Each sh In Sheets
    If sh.Name = "Comviva" Then
    
    For Each Graph In sh.ChartObjects
    
    pos = InStr(Graph.Name, "c")
    mam = Mid(Graph.Name, 1, pos - 1)
    code = Mid(Graph.Name, pos, 5)
    
    Windows("statjourfull.xls").Activate
    Sheets("Comviva").Activate
    
    Graph.Chart.SetSourceData Source:=Range(sourcedata1(code, mam))
    
    
    Next Graph
    Next sh
    
    End Sub
    et ci-dessous une partie de mon code sourcedata1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Public Function sourcedata(nombre, mam)
       If nombre = "code1" Then
     
         If mam = "ENGINE1" Then
         sourcedata1 = "Comviva!$A$2:$Y$2;Comviva!$A$4:$Y$4;Comviva!$A$8:$Y$8;Comviva!$A$10:$Y$10"
         End If
         If mam = "ENGINE2" Then
         sourcedata1 = "Comviva!$A$12:$Y$12;Comviva!$A$14:$Y$14;Comviva!$A$18:$Y$18;Comviva!$A$20:$Y$20"
         End If
    ...
    ...
    end if 
    end function
    merci pour votre aide

  11. #11
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Déja ta fonction ne renvoit rien puisqu'elle s'appelle sourcedata et non sourcedata1

    Après tes arguments ne sont pas dans tes if.. du coup l'argument renvoyé sera nothing et tu ne peux pas donner nothing à un objet qui attend un range

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur Télécom
    Inscrit en
    Octobre 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Ingénieur Télécom
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    Non c'est juste une erreur de frappe la fonction et sourcedata1 ( en réalité j'ai deux fonctions sourcedata et sourcedata1)

    merci

    bonjour
    pour les arguments je ne te suis pas trop, pourrais tu me donner plus de details

    merci

  13. #13
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Graph.Chart.SetSourceData Source:=Range(sourcedata1(code, mam))

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     If nombre = "code1" Then
     
         If mam = "ENGINE1" Then
         sourcedata1 = "Comviva!$A$2:$Y$2;Comviva!$A$4:$Y$4;Comviva!$A$8:$Y$8;Comviva!$A$10:$Y$10"
         End If
         If mam = "ENGINE2" Then
         sourcedata1 = "Comviva!$A$12:$Y$12;Comviva!$A$14:$Y$14;Comviva!$A$18:$Y$18;Comviva!$A$20:$Y$20"
         End If
    Le premier argument vaut est code et non pas code1, donc on ne rentre pas dans le if et sourcedata1 = NOTHING

    donc...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Graph.Chart.SetSourceData Source:=Range(sourcedata1(code, mam))
    =
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Graph.Chart.SetSourceData Source:=Range(nothing)
    et donc erreur

  14. #14
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur Télécom
    Inscrit en
    Octobre 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Ingénieur Télécom
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    bjr
    appel de ma fonction sourcedata1 avec les variables code et mam Graph.Chart.SetSourceData Source:=Range(sourcedata1(code, mam))
    ici code prendra l'une des valeurs suivantes: "code1"; "code2"; ... "code10" selon le graphique sur lequel nous sommes (extrait du nom du graphique)
    on rentrera donc par exemple dans le premier if quand code aura pour valeur "code1"

    merci

  15. #15
    Invité
    Invité(e)
    Par défaut
    bonjour,
    si ta fonction ne retourne rien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Graph.Chart.SetSourceData Source:=Range(sourcedata1(code, mam)) 'ERREUR
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Graph.Chart.SetSourceData Source:=sourcedata1(code, mam)
    car tu pourrais faire ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Graph.Chart.SetSourceData Source:="Comviva!$A$12:$Y$12;Comviva!$A$14:$Y$14;Comviva!$A$18:$Y$18;Comviva!$A$20:$Y$20"

  16. #16
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur Télécom
    Inscrit en
    Octobre 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Ingénieur Télécom
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    bsr
    si ma fonction retourne quelque chose seulement je dois d'abord faire réinitiliser -> arrêter --> réinitialiser et executer le code. si je l'execute directement j'ai l'erreur
    "la methode range de l'objet global à échoué"

Discussions similaires

  1. la méthode range de l'objet global a échoué
    Par stéphane35200 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/11/2014, 10h27
  2. Erreur "La méthode Range de l'objet global a échoué"
    Par Antony1812 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/03/2013, 17h21
  3. Erreur "La méthode Range de l'objet global a échoué"
    Par Antony1812 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 20/03/2013, 16h57
  4. [XL-2007] Méthode range de l'objet global a échoué
    Par ggvert dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/07/2011, 21h34
  5. La méthode Range de l'objet global a échoué
    Par cline01 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/08/2010, 21h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo