Erreur 5 sur double boucle For

Résolu
soyg -  
 soyg -
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

1 réponse

  1. Gyrus Messages postés 3360 Statut Membre 526
     
    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
    1. soyg
       
      Je viens de trouver l'erreur, il me manquait une remise à zéro de ligne2 entre les next

      merci a+
      0