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 :

[E-03] Utiliser un String comme reference de plage de cellules


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 2
    Par défaut [E-03] Utiliser un String comme reference de plage de cellules
    Bonjour tout le monde,
    j'ai un petit souci sur lequel je m'arrache les cheveux depuis plusieurs heures, je lance donc un SOS... (je precise que je suis debutant)

    je voudrais utiliser le string "datarange" comme reference d'une plage de cellule.
    quand je fais afficher le string datarange, je recois bien "B3:B502"
    mais en tournant mon programme je recois un message d'erreur 1004.

    je precise que quand je saisis Range("B3:B502"), a la place de Range(datarange), tout fonctionne...

    voila mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim TabVoies As Variant
    TabVoies = Range("B18:D32").Value
    tableau dont la derniere colonne contient des noms de colonne, du type A, B, C, etc...

    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
    ActiveWorkbook.Sheets.Add
    ActiveSheet.Name = "M1_Graph"
     
    Dim compteur As Integer
    Dim datarange As String
    Dim suite As Label
    Dim mongraph As ChartObject
     
    datarange = ""
    compteur = 0
     
            For c = 1 To 15
                If TabVoies(c, 2) = "" Then GoTo suite
                    datarange = """" & TabVoies(c, 3) & "3:" & TabVoies(c, 3) & "502"""
     
                    Sheets("M1_graph").Activate
                    Set mongraph = ActiveSheet.ChartObjects.Add(0, 200 * compteur, 500, 200)
                    mongraph.Chart.ChartType = xlXYScatterLines
                    mongraph.Chart.SeriesCollection.Add Source:=ActiveWorkbook.Sheets("M1_data_histo").Range(datarange), Rowcol:=xlColumns
     
                    compteur = compteur + 1
    suite:
            Next c
     
           End If
    Merci beaucoup d'avance et bonne journee!

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Par défaut
    Le problème, c'est que l'affichage de ton datarange devrait afficher B3:B502 et non pas "B3:B502".
    Quand tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    datarange = """" & TabVoies(c, 3) & "3:" & TabVoies(c, 3) & "502"""
    VBA interprète comme ceci dans ton Range:
    Et avoue que ça ne colle pas.

    Je te laisse chercher ce que tu dois faire pour que ça fonctionne.

  3. #3
    Membre émérite
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2006
    Messages
    542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 542
    Par défaut
    Bonjour à tous
    Bonjour et bienvenu Raoul Duke

    Cela fait + de 2 heures que tu t'arraches les cheveux, en reste il ?????

    Citation Envoyé par Raoul Duke Voir le message
    Bonjour tout le monde,
    j'ai un petit souci sur lequel je m'arrache les cheveux depuis plusieurs heures, je lance donc un SOS... (je precise que je suis debutant)
    ....
    Tu spécifies que tu es débutant, alors un petit coup de main, essaie tout simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    datarange = TabVoies(c, 3) & "3:" & TabVoies(c, 3) & "502"
    Pour vérifier ce que contient une variable, mets un point d'arrêt sur ton code à l'endroit adéquat, et tu pourras vérifier.

    Eric

  4. #4
    Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 2
    Par défaut
    Oui oui c'est bon il me reste quelques cheveux! ;-)

    Suite a la reponse de decondelite, je me suis repenché sur la definition de mon datarange, et effectivement il y avait beaucoup de guillemets inutiles lol

    j'en etais arrivé a la modifier pour finalement arriver a ce que tu m'as suggéré, Eric!
    et ca marche!!

    donc un grand merci a tous les deux, mon probleme est resolu

    Bon week-end!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/02/2012, 22h47
  2. Utiliser une string avec tag XML comme fichier XML
    Par kaygee dans le forum ASP.NET
    Réponses: 1
    Dernier message: 20/03/2009, 15h52
  3. Comment utiliser Range(cells(... pour indiquer une plage de cellules
    Par gerald57 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/05/2008, 10h35
  4. Utilisation de string et dates comme labels d'axes
    Par _moebius_ dans le forum MATLAB
    Réponses: 3
    Dernier message: 15/06/2007, 11h52
  5. Réponses: 9
    Dernier message: 30/11/2005, 18h18

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