Comparer les cellules d'une plage aux cellule

Geant vert -  
 geant vert -
Bonjour,

j'utilise actuellement dans une macro vba la formule suivante qui me permet de comparer les cellules d'une plage donnée à une cellule et de mettre une valeur dans la case voisine si la valeur des cellules comparées est identique.

For Each c In Worksheets("Feuil2").Range("B10:B50")
If c.Value = Worksheets("Feuil1").Range("B10").Value Then
c.Offset(0, 1).Value = "1"
End If
Next

Ce que je souhaiterai faire c'est comparer les cellules non pas à une seule cellule mais à toutes les cellules d'une plage donnée, par exemple range("B10:B50").

J'ai donc essayé cette solution et j'ai une erreur d'execution '13' incompatibilité de type.

Merci d'avance pour votre aide

4 réponses

f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 715
 
Bonjour,

For Each c In Worksheets("Feuil2").Range("B10:B50")
For x = 10 To 50
If Worksheets("Feuil1").Range("B" & x).Value <> "" Then
If c.Value = Worksheets("Feuil1").Range("B" & x).Value Then
c.Offset(0, 1).Value = "1"
End If
End If
Next x
Next

a essayer.

Bonne continuation.
0
geant vert
 
merci de cette réponse.

je test et je vous dis si ça fonctionne.
0
cousinhub29 Messages postés 1135 Date d'inscription   Statut Membre Dernière intervention   364
 
Bonjour,

une autre solution :

Sub cherche()
Dim PlgSource As Range, PlgRech As Range, Cel As Range, C As Range
Set PlgSource = Sheets("Feuil2").Range("B10:B50")
Set PlgRech = Sheets("Feuil1").Range("B10:B50")
For Each Cel In PlgSource
    If Cel <> "" Then
        Set C = PlgRech.Find(Cel)
        If Not C Is Nothing Then Cel.Offset(, 1) = 1
    End If
Next Cel
End Sub


Bonne journée
0
geant vert
 
salut à tous

j'ai testé et ça marche exactement comme je le souhaitais.

Merci pour cette aide.
0