Erreur 'variable for déjà utilisée ' VBA

BONJOUR,

j'ai un type erreur 'variable for déjà utilisée '

quel est le problème dans cette boucle :

If i = 1 Then
For j = 1 To 3

If i > 1 Then
For j = 1 To 2
Next i

tu utilise deux fois la variable j dans un FOR sans cloturer celui d'avant

Utilise une autre lettre ou cloture le For d'avant

merci pour ton retour,

j'ai une autre erreur

"référence de variable de controle incorrect dans next "

If i = 1 Then
For j = 1 To 3
Next i
If i > 1 Then
For j = 1 To 2
Next i

C'est parce que le Next se rapporte à un For sauf que tu utilise cela variable j dans le For et non la variable i

CHange cela et ca devrait marcher

essaye de lire un peu sur les codes vba avant de t'y lancer tu pourra avancer plus vite et profiter

https://www.excel-pratique.com/fr/fonctions-vba

merci

Envoie le avec ce bouton la stp car la mise en page est plus facile

image

Pense à cloturer les sujet en cliquant sur le signe OK en haut à droite d'un post

ok merci

Bonjour,

quel est le problème dans cette boucle :

If i = 1 Then

For j = 1 To 3

If i > 1 Then

For j = 1 To 2

Next i

tu ne peux pas avoir plusieurs instructions For pour un même next

ici, ce que tu souhaites c'est avoir une valeur de fin de boucle for qui dépend de la valeur de i, une façon de faire :

if i=1 then fin=3 else fin=2
for j=1 to fin
...
next j

bonjour,

j'ai réglé ce problème , pour l'instant je veux trier aléatoirement mon dictionnaire,

voilà le code

Dim key2 As Variant, ArrayDict As Variant

'création array à partir du dict
k = 1
For Each key2 In dict
ArrayDict(k, 1) = key2
ArrayDict(k, 2) = dict(key2)
k = k + 1
Next key2

'vide le dict
dict.RemoveAll

'randomise array order
For i = 1 To k 'melanger les villes candidates
a1 = aleatoire(1, k)
a2 = aleatoire(1, k)
a = ArrayDict(a1, 1): ArrayDict(a1, 1) = ArrayDict(a2, 1): ArrayDict(a2, 1) = a
a = ArrayDict(a1, 2): ArrayDict(a1, 2) = ArrayDict(a2, 2): ArrayDict(a2, 2) = a
Next i

'on rempli le dict à partir de l'array
For i = 1 To UBound(ArrayDict)
dict(ArrayDict(k, 1)) = ArrayDict(k, 2)
Next i

merci d'avance

je pense que j'ai trouvé la solution

Rechercher des sujets similaires à "erreur variable deja utilisee vba"