Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment intégrer plusieurs variables en une dans une boucle For/next

4 réponses
Avatar
Excel...lent
Bonjour à tous,

Dans un code j'utilise des variables NAME1, NAME2, NAME3 jusqu'à NAME7.

Pour chaque variable j'ai exactement les mêmes instructions :

If Feuil2.Cells(x,y).value = NAME1 Then
instructions
End if

et j'ai reproduit ce code pour les 7 variables.

Est-il possible de simplifier ce code avec une boucle for/next du genre :

For x=1 to 7
If Feuil2.Cells(x,y).value = NAME(x) Then
Instructions
End if
next x

j'ai essayé sous cette forme mais je bug....

Merci de votre aide.

Cordialement.

Marc

4 réponses

Avatar
lSteph
Bonjour Excel..lent,

;o) cela faisait quelques temps qu'on ne te voyait...

en lieu et place de tes variables tu pourrais utiliser un tableau
ou une collection.

@+
--
lSteph


On 11 déc, 09:58, "Excel...lent" wrote:
Bonjour à tous,

Dans un code j'utilise des variables NAME1, NAME2, NAME3 jusqu'à NAME7.

Pour chaque variable j'ai exactement les mêmes instructions :

If Feuil2.Cells(x,y).value = NAME1 Then
instructions
End if

et j'ai reproduit ce code pour les 7 variables.

Est-il possible de simplifier ce code avec une boucle for/next du genre :

For x=1 to 7
If Feuil2.Cells(x,y).value = NAME(x) Then
Instructions
End if
next x

j'ai essayé sous cette forme mais je bug....

Merci de votre aide.

Cordialement.

Marc


Avatar
Carim
Bonjour,

Il faut utiliser la concatenation ...

Si Name est défini avant comme variable :
Name & x

ou s'il ne l'est pas :

"Name" & x

A +
Avatar
Tatanka
Salut,

Quelques exemples pour définir tes noms en
évitant le mot « Name » qui est réservé par VBA :

Sub UN()
Dim Nom(1 To 7)
For i = 1 To 7
Nom(i) = i ^ 2
Debug.Print Nom(i)
Next i
End Sub

Sub DEUX()
Dim Nom
Nom = Array(1, 4, 9, 16, 25, 36, 49)
For i = 0 To 6
Debug.Print Nom(i) + 5
Next i
End Sub

Sub TROIS()
Dim Nom
Nom = Array("Je ", "suis ", "sur ", "M", "P", "F", "E.")
For i = 0 To 6
phrase = phrase & Nom(i)
Next i
Debug.Print phrase
End Sub

Serge


"Excel...lent" a écrit dans le message de news: %
Bonjour à tous,

Dans un code j'utilise des variables NAME1, NAME2, NAME3 jusqu'à NAME7.

Pour chaque variable j'ai exactement les mêmes instructions :

If Feuil2.Cells(x,y).value = NAME1 Then
instructions
End if

et j'ai reproduit ce code pour les 7 variables.

Est-il possible de simplifier ce code avec une boucle for/next du genre :

For x=1 to 7
If Feuil2.Cells(x,y).value = NAME(x) Then
Instructions
End if
next x

j'ai essayé sous cette forme mais je bug....

Merci de votre aide.

Cordialement.

Marc




Avatar
Excel...lent
Bonjour à tous,

Merci de vos multiples suggestions.

J'ai l'embarras du choix.

Je vais de ce pas me remettre au boulot...

A charge de revanche.

Cordialement.

Excel...lent