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 :

incrémenter nom de variable


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    prof
    Inscrit en
    Juin 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : prof

    Informations forums :
    Inscription : Juin 2015
    Messages : 13
    Par défaut incrémenter nom de variable
    Bonjour,
    Je souhaite faire une macro dans laquelle j'ai une variable qui comptabilise un nombre d'élèves dans un groupe.
    Seulement, j'ai 6 groupes à faire.
    J'aimerais bien incrémenter le nom de ma variable afin de ne pas enchaîner les boucles pour chaque groupe.

    J'essaye donc un code tout simple pour m'approprier la méthode.
    Le nom de variable à incrémenter est verif (pour avoir verif1, verif2, ... verifnbgpe)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    dim nbgpe as integer
    dim verif() as integer
     
    Sheets(1).Select
    nbgpe = Cells(6, 2).Value
     
    For i = 1 To nbgpe
    verif(i) = 0
     
    Next i
    Ce code bug à la ligne verif(i) = 0

    Pouvez-vous m'aider ?
    Merci d'avance

    Nans

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    quand tu utilises un tableau, il faut le dimensionner à chaque fois que tu ajoutes des données
    de plus, je te conseille de le déclarer en Variant

    ensuite, ton tableau va commencer à l'indice 0, ce qui est peu pratique pour ton besoin
    pour que le tableau commence à l'indice 1, il suffit d'indiquer en haut du module "Option Base 1"

    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
    Option Base 1
     
    Sub Tableau()
    Dim NbGpe As Integer
    Dim Verif() As Variant
     
    ' plutôt que de sélectionner la feuille
    NbGpe = Sheets(1).Cells(6, 2).Value
     
    For i = 1 To NbGpe
        ' Redim pour redimentionner le tableau
        ' Preserve pour conserver les données déjà inscrites dans le tableau
        ReDim Preserve Verif(i)
        Verif(i) = 0
    Next i
     
    End Sub
    Je ne sais pas si c'est voulu, mais dans ta boucle, tu ajoutes toujours le chiffre 0 dans ton tableau
    si tu veux ajouter un numéro qui s'incrémente à chaque tour de boucle, tu peux faire



    EDIT : et au passage, puisque tu connais d'entrée de jeu le nombre d'éléments de ton tableau, qui sera le nombre "NbGpe") tu peux directement dimensionner ton tableau avec de réaliser ta boucle de remplissage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Option Base 1
     
    Sub Tableau()
    Dim NbGpe As Integer
    Dim Verif() As Variant
     
    NbGpe = Sheets(1).Cells(6, 2).Value
    ReDim Verif(NbGpe)
     
    For i = 1 To NbGpe
        Verif(i) = 0
    Next i
     
    End Sub

    et une autre variante, sans utiliser de variable NbGpe :

    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
    Option Base 1
     
    Sub Tableau()
    Dim Verif() As Variant
     
    ' on dimensionne le tableau en utilisant
    ' directement la valeur de ta cellule
    ReDim Verif(Sheets(1).Cells(6, 2).Value)
     
    ' ubound donne l'élément le plus haut du tableau
    ' ce qui remplace le chiffre NbGpe
    For i = 1 To UBound(Verif)
        Verif(i) = 0
    Next i
     
    End Sub

  3. #3
    Membre habitué
    Homme Profil pro
    prof
    Inscrit en
    Juin 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : prof

    Informations forums :
    Inscription : Juin 2015
    Messages : 13
    Par défaut
    Merci pour cette réponse, très rapide.
    Je suis en train de tester.

    Je vous tiens au courant.

    PS : verif(i) = 0 car je veux mettre à 0 ces variables avant de lancer le comptage des élèves après attribution dans un groupe.

    Merci encore

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 131
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    J'ajouterais que si le tableau est typé comme un nombre (Integer, Long, etc.) il n'y a pas de raison d'initialiser avec une valeur nulle.
    Chaque variable numérique déclarée vaut 0 par défaut, un string a une chaîne vide (""), un booléen vaut FALSE et un Variant est vide (donc val(Verif(i)) = 0)
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre habitué
    Homme Profil pro
    prof
    Inscrit en
    Juin 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : prof

    Informations forums :
    Inscription : Juin 2015
    Messages : 13
    Par défaut
    ça marche impec !!

    Merci à vous pour votre efficacité

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

Discussions similaires

  1. Incrémenter nom de variable
    Par pouponsaltro dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/03/2011, 14h43
  2. [MySQL] incrémenter nom de variable
    Par pitxu dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 19/03/2011, 18h44
  3. Réponses: 5
    Dernier message: 10/04/2008, 19h07
  4. Créer un nom de variable qui s'incrémente dans une boucle
    Par Pietro_L dans le forum Général VBA
    Réponses: 3
    Dernier message: 09/05/2007, 15h10
  5. incrémenter le nom une variable
    Par mederic dans le forum C
    Réponses: 15
    Dernier message: 06/05/2006, 19h11

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