Double boucle for each cell in range

Bonjour tout le monde,

Je suis débutant en vba et en ce moment même je rencontre un problème dans la construction de mon programme et je viens solliciter votre aide.

Je vous décris le contexte : j'ai 2 feuilles la 1ère se nomme extraction et la seconde "synthèse",. Sur la feuille "synthèse" j'ai réussi à délimiter un range que je dois analyser par la suite et que j ai nommé autretest. Sur la feuille extraction, de la même manière j'ai un range que j'ai nommé othertest. Mon programme consiste pour chaque cellule du range autreset à comparer leur valeur à chaque cellule du range otherset si elles sont identiques alors je prends la position de ma cellule de autretest, je me décale de 2 colonnes sur sa droite et affecte sa valeur à une variable nommée "valeur". Et cette valeur je la copie dans la cellule 4 colonnes à droite de la cellule de othertest qui vérifie la condition.

Et ainsi de suite.

Voici mon code qui ne fonctionne pas évidemment ^^' :

Set test1 = Sheets("extraction").Range("autretest")

Set test2 = Sheets("synthèse").Range("othertest")

For Each cell2 In test2

For Each cell1 In test1

If Sheets("extraction").cell1.Value = Sheets("synthèse").cell2.Value Then

Sheets("extraction").cell1.Select

ActiveCell.Offset(0, 2).Select

valeur = ActiveCell.Value

Sheets("synthèse").cell2.Select

ActiveCell.Offset(0, 4).Select

ActiveCell.Value = valeur

Next cell1

Else

Next cell2

End If

Merci à vous

Bonjour,

vous n'avez pas besoins de faire 2 boucle pour vérifier:

If Sheets("extraction").cell1.Value = Sheets("synthèse").cell2.Value Then

pouvez-vous joindre votre fichier ?

Merci pour votre réponse.

Je ne vois pas pourquoi je n'aurais pas besoin de 2 boucles.

En effet je compare chaque valeur de chaque cellule de 2 plages différentes dans 2 feuilles distinctes.

Disons que autretest représente la plage ("A1:A6") dans extraction et que othertest représente la plage ("B1:B20") dans la fiche synthèse.

Je cherche à comparer A1 à chaque cellule de ("B1:B20") jusqu'à verifier la condition puis A2 a chaque cellule de ("B1:B20") jusqu'à verifier la condiion et ainsi de suite jusqu'à A6.

Vous voyez ?

Bonjour,

voici un exemple macro et formule (voir le fichier)

130zyzz-exemple.xlsm (17.58 Ko)
Sub test()
Set test1 = Sheets("extraction").Range("autretest")
Set test2 = Sheets("synthèse").Range("othertest")
For Each cell2 In test2
  For Each cell1 In test1
    If cell1.Value = cell2.Value Then
        cell2.Offset(0, 4).Value = cell1.Offset(0, 2).Value
    End If
 Next cell1
Next cell2
End Sub
Rechercher des sujets similaires à "double boucle each range"