(VBA) Variables numérotées dans boucle For

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Cricriiii

XLDnaute Nouveau
Bonjour à tous,

Tout d'abord meilleurs vœux 🙂

Ma question est la suivante : Comment écrire une boucle à effectuer un nombre variable de fois, dans laquelle je définis la valeur d'une variable dont l'indice est celui du numéro de la réitération ?
De façon illustrée, comment écrire la ligne indiquée plus bas?

VB:
'Exemple schématique

    Dim v1 As Long, v2 As Long, ..., v10 As Long
    Dim Nombre_de_variables_nécessaires As Long


'Calcul Nombre_de_variables_nécessaires

    Nombre_de_variables_nécessaires = [Code pour le calcul]


'Affectation des variables

    For i = 1 To Nombre_de_variables_nécessaires
        "v" & i = [La valeur]     'Ma question porte sur cette ligne
    Next


J'ai en tête en guise d'analogie, pour les contrôles notamment, Controls("Nom générique" & i).
Y a-t-il un truc équivalent pour les variables ?

Du coup, y a-t-il également moyen de mettre dans la boucle un truc du style :

VB:
    For i = 1 To Nombre_de_variables_nécessaire
 
        Dim "v" & i As Long
     
    Next

Je vous remercie 🙂
 
Dernière édition:
Bonjour,

meilleurs voeux pour 2020 également.

Non, mais tu as les variables tableaux. Ex :
VB:
    Dim nbVar As Long, v() 'v variant ou As Long, As String, etc
    Dim i As Long
    nbVar = 3 * 2
    ReDim v(1 To nbVar)

    For i = 1 To UBound(v) ' ou To nbVar
        v(i) = 3
    Next i
eric
 
Merci ! Ça marche au poil et c'est joli comme solution !
😎

J'ai remarqué un seul point d'attention, bien que ce ne soit pas handicapant pour mon besoin d'aujourd'hui : Les variables ne sont pas créées, de sorte qu'il n'est apparemment pas possible de faire référence par la suite à par exemple v8, indépendamment.

Merci encore ! 😀
 
Ben si elles sont crées.
Déjà ça sera msgbox v(8) et non v8 pour l'utiliser.
Ensuite si tu dois l'utiliser dans une autre procédure il faut déclarer Dim v() en tête du module, avant toute procédure.
Et si cette autre procédure l'utilisant est dans un autre module il faudra la déclarer Public (et non avec Dim) dans un module Standard (pas de feuille, etc).
Fait une petit recherche sur portée et durée de vie des variables.
eric
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
180
Réponses
7
Affichages
365
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
652
Réponses
9
Affichages
586
Retour