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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Mars 2009
    Messages : 23
    Par défaut Incrémenter nom de variable
    Bonjour à tous, voila mon problème :
    Comment incrémenter un nombre faisant parti du nom de la variable ?
    Par exemple faire une action sur variable1, variable2, variable3 ... variable51 en utilisant une boucle FOR.

    Dans ma situation, je ne peux pas utiliser un tableau puisque la variable à incrémenter est le nom d'un TEXTBOX dans un FORM.
    Concrètement, voila ce que je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ThisWorkbook.Worksheets(4).Range("A" & ligne) = TextBox1.Text
    ThisWorkbook.Worksheets(4).Range("B" & ligne) = TextBox2.Text
    ThisWorkbook.Worksheets(4).Range("C" & ligne) = TextBox3.Text
    ThisWorkbook.Worksheets(4).Range("D" & ligne) = TextBox4.Text
    La prochaine version de ma macro comportera 36 éléments... c'est quand même mieux une boucle for de 1 ligne que 36 lignes à la c** !

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,


    voici un exemple d'un test en cours,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For I = 1 To 5 'initialise les combos BB
        For Each cell In Worksheets("BaseListes").Range("Toto")
            If cell.Value <> "DG-Solutions" Then Me.Controls("cboTypeBB" & I).AddItem cell.Value
        Next cell
    Next I
    regardes dans la FAQ, tout est expliqué et largement présent

    cordialement,

    Didier

  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
    Bonjour
    si tes textbox nommées TextBoxi correspondant à la colonne i
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim i As Byte
     
    For i = 1 To 36
        ThisWorkbook.Worksheets(4).Cells(ligne, i) = Me.Controls("TextBox" & i).Text
    Next i

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Mars 2009
    Messages : 23
    Par défaut
    Merci à vous 2, ça marche nickel !
    Et par curiosité, cette commande "Me.Controls" , c'est quoi en C ? Pascal ?
    Encore pour votre réactivité !

  5. #5
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Citation Envoyé par aide VBA
    Controls, collection

    Chaque contrôle appartenant à la collection Controls possède en tant qu'objet un index unique dont la valeur peut être un nombre entier ou une chaîne. La valeur d'index du premier contrôle d'une collection est 0 ; la valeur du deuxième contrôle est 1, etc. Cette valeur indique l'ordre dans lequel les contrôles ont été ajoutés à la collection.

    Si l'index est une chaîne, il représente le nom du contrôle. La propriété Name d'un contrôle spécifie aussi un nom de contrôle.

    Vous pouvez utiliser la collection Controls pour énumérer ou compter individuellement les contrôles et pour définir leurs propriétés. Par exemple, vous pouvez énumérer la collection Controls d'une feuille particulière et affecter à la propriété Height de chaque contrôle une valeur particulière.

    Note L'instruction For Each...Next est utile pour énumérer une collection.
    Me se réfère à l'objet parent du contrôle, ici l'Userform.

    Citation Envoyé par aide VBA
    Me
    Voir aussi

    Le mot clé Me se comporte comme une variable déclarée de façon implicite. Il est automatiquement disponible pour toutes les procédures d'un module de classe. Lorsqu'une classe peut comporter plusieurs instances, le mot clé Me offre la possibilité de faire référence à l'instance de la classe dans laquelle le code est exécuté. Il s'avère particulièrement utile pour passer les informations concernant l'instance d'une classe en cours d'exécution à une procédure d'un autre module. Par exemple, supposez que la procédure suivante se présente dans un module :
    PS : à savoir que les modules de feuilles, USF, Workbook sont des modules de classe particuliers.

    cordialement,

    Didier

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

Discussions similaires

  1. incrémenter nom de variable
    Par SRVnans dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/06/2015, 12h39
  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