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

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
  2. geant vert
     
    merci de cette réponse.

    je test et je vous dis si ça fonctionne.
    0
  3. cousinhub29 Messages postés 1114 Date d'inscription   Statut Membre Dernière intervention   381
     
    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
  4. geant vert
     
    salut à tous

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

    Merci pour cette aide.
    0