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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    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
    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
    Membre régulier
    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
    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 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
    Par défaut
    Et si tu remplaçais les point-virgules par des virgules?

  4. #4
    Membre régulier
    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
    Par défaut
    lorsque je remplace les points virgules par des virgules j'ai des erreurs

  5. #5
    Membre Expert
    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
    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 confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    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
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  7. #7
    Membre régulier
    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
    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

  8. #8
    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
    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

  9. #9
    Membre régulier
    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
    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

  10. #10
    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
    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

  11. #11
    Membre régulier
    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
    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

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