Erreur 5 sur double boucle For

Résolu/Fermé
soyg - 21 mai 2015 à 10:41
 soyg - 21 mai 2015 à 11:40
Bonjour, je souhaite comparer deux colonnes de mon classeur afin lister dans une troisième les valeurs qui sont communes aux deux. Cela dans le but d'automatiser une nomenclature.

afin de mieux visualiser mon problème j'ai simplifier le code.
j'utilise deux colonnes dans un classeur excel avec au moins une valeur identique dans les deux.

Mon idée est de balayer à chaque fois la deuxième colonne pour chaque case de la première.

Le code erreur est le 5.
En mode pas à pas, l'erreur arrive a passer la première boucle For, le bug intervient lorsque la val2 apparait la première fois pour le balayage de la deuxieme case.


Sub recherche()

Dim Ligne1 As Integer
Dim Ligne2 As Integer
Dim Ligne3 As Integer
Dim val1 As Integer
Dim val2 As Integer
Dim i As Integer
Dim j As Integer

Ligne1 = 0
Ligne2 = 0
Ligne3 = 0

For i = 1 To 5

Ligne1 = Ligne1 + 1
val1 = Asc(Cells(Ligne1, 1))
For j = 1 To 5

Ligne2 = Ligne2 + 1
val2 = Asc(Cells(Ligne2, 2))

If val1 = val2 Then
Ligne3 = Ligne3 + 1
Cells(Ligne3, 3) = Cells(Ligne1, 1)
End If
Next
Next

End Sub


Merci d'avance pour votre aide

soyg

A voir également:

1 réponse

Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
21 mai 2015 à 11:20
Bonjour,

Essaie comme cela :
Sub recherche()
Dim Ligne As Integer, val1 As Integer, val2 As Integer
Dim i As Byte, j As Byte
For i = 1 To 5
val1 = Asc(Cells(i, 1))
For j = 1 To 5
val2 = Asc(Cells(j, 2))
If val1 = val2 Then
Ligne = Ligne + 1
Cells(Ligne, 3) = Cells(i, 1)
End If
Next j
Next i
End Sub


A+
0
Je viens de trouver l'erreur, il me manquait une remise à zéro de ligne2 entre les next

merci a+
0