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 :

[VBA-E]For each Cel in Plage, une erreur franchement bête...


Sujet :

Macros et VBA Excel

  1. #1
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut [VBA-E]For each Cel in Plage, une erreur franchement bête...
    Mon pb est simple, quand je lance cette macro, j'ai "l'indice n'appartient pas à la sélection" quand Cel.column = 12 (!)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub UserForm_Initialize()
    Dim Tableau
    Dim Cel As Range
    Dim Plage As Range
    Tableau = Array("JAN", "FEV", "MAR", "AVR", "MAI", "JUN", "JUL", "AOU", "SEP", "OCT", "NOV", "DEC")
    Worksheets("Feuil1").Range("A1:L1").Value = Tableau
    Set Plage = Range("A1:L1")
    For Each Cel In Plage
        Debug.Print Cel.Column
        ComboBox1.AddItem Tableau(Cel.Column)
    Next
    Set Plage = Nothing
    End Sub
    Comme je n'ai jamais eu ce type de pb avec cette syntaxe, je suis un peu "emprunté"
    Une explication ?
    Par avance, merci.

  2. #2
    Membre habitué Avatar de cwain
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 218
    Points : 181
    Points
    181
    Par défaut
    Je pense que c'est que ton tableau, il va de 0 à 11
    et donc quand tu appeles Tableau(Cel.column) où column=12, il n'aime pas
    Tu vois ce que je veux dire ?
    En fait Tableau(11)="DEC"
    Tableau(12) doesn't exist
    Affiches les variables locales et tu verras, en cours d'exécution, tes variables pour Tableau(0) à Tableau(11)

  3. #3
    Membre actif Avatar de marsupilami34
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    575
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 575
    Points : 262
    Points
    262
    Par défaut
    Bonjour,

    Je ne sais pas si ca peut t'aider mais avec ce code là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    For Each Cel In Plage
        Debug.Print Cel.Column
        MsgBox (Tableau(Cel.Column))
    Next
    Le premier message qu'il m'affiche c'est FEV et pas JANV. Peut être une erreur dans le début de la boucle non ?

  4. #4
    Membre habitué Avatar de cwain
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 218
    Points : 181
    Points
    181
    Par défaut
    Le problème se résoud si tu mets :
    au lieu de [CODE]

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Je suis c... Je suis c... Je suis c...
    habituellement, je remplis toujours mon tableau ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tableau = Array("", "JAN", "FEV", "MAR", "AVR", "MAI", "JUN", "JUL", "AOU", "SEP", "OCT", "NOV", "DEC")
    comme ça l'indice de mon tableau correspond au N° de colonne, mais, pour faire plaisir à bbil, j'avais supprimé la première valeur
    Merci pour ton oeil de lynx cwain

  6. #6
    Membre habitué Avatar de cwain
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 218
    Points : 181
    Points
    181
    Par défaut
    Héhéhé, de rien ! J'aurai été le premier à plonger dedans !

  7. #7
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut
    Citation Envoyé par ouskel'n'or
    Je suis c... Je suis c... Je suis c...

    Mais non mais non t'es juste différent..


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

Discussions similaires

  1. [MySQL] For each en dehors d'une boucle mysql
    Par Jeol2007 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 27/08/2010, 07h45
  2. [XL-2007] For Each c In plage, saute d' 1 ligne a chaque boucle.!
    Par p0m12 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/07/2010, 12h42
  3. [E-03][VBA]Worksheet.Cells.Range(x, y) déclenche une erreur
    Par DonkeyMaster dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/04/2008, 16h18
  4. Réponses: 24
    Dernier message: 10/04/2007, 19h40
  5. aide vba boucle for each paramétrée en range
    Par gotlieb dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/07/2006, 08h55

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