Comparaison de données sur plusieurs Colonnes de 2 feuilles?
3 réponses
fred
Bonjour,
J'ai des données à comparer sur 2 feuilles
Si Sur feuil4 les cellules A2, B2 et D2 sont retrouvées en feuil5 en ColA, B
et D je voudrais que la chaine de texte Message soit collée en ColE sur la
même ligne trouvée sur cette feuil5.
MichDenis m'a donné la solution qui fonctionne très bien pour une valeur en
A2 sur Feuil4
Sub test()
Dim Rg As Range, Rg1 As Range, C As Range
Set Rg = Worksheets("Feuil4").Range("A2")
With Worksheets("Feuil5")
Set Rg1 = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
End With
For Each C In Rg1
If C.Value = Rg.Value Then
C.Offset(, 4) = C.Value
End If
Next
Set Rg = Nothing: Set Rg1 = Nothing: Set C = Nothing
End Sub
Mais comment faire si les données à retrouver concernent A2 B2 et C2
J'ai tenté ceci mais ça ne fonctionne pas...il suffit qu'une cellule Comme
A2 soit vrai pour que ça marche...mais en fait il faut que les 3 cellules
soient vraies!!!
Dim Ra As Range, Ra1 As Range, Cel As Range
Set Ra = Worksheets("Feuil4").Range("A2,C2,D2")
With Worksheets("Feuil5")
Set Ra1 = .Range("A1:D1" & .Range("A65536").End(xlUp).Row)
End With
For Each Cel In Ra1
If Cel.Value = Ra.Value Then
Cel.Offset(, 4) = Position 'C.Value
End If
Next
Set Ra = Nothing: Set Ra1 = Nothing: Set Cel = Nothing
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
fred
Bon j'ai cherché et en utilisant comme base la macro de MichDenis j'ai trouvé ceci ... Il doit y avoir plus simple...si quelqu'un a une solution...j'suis preneur ;) Dim ColA As Range, ColB As Range, ColD As Range Dim ColA4 As Range, ColB4 As Range, ColD4 As Range Dim position As String Dim message As String Dim a As Long, DerLig As Long With Worksheets("Feuil5") DerLig = .Range("A:D").Find(What:="*", LookIn:=xlFormulas, SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious).Row Set ColA = .Range("A2:A" & DerLig) Set ColB = .Range("B2:B" & DerLig) Set ColD = .Range("D2:D" & DerLig) End With With Worksheets("Feuil4") premrow = .Range("A:D").Find(What:="*", LookIn:=xlFormulas, SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious).Row Set ColA4 = .Range("A2") Set ColB4 = .Range("B2") Set ColD4 = .Range("D2") End With For a = 1 To DerLig If ColA(a) = ColA4 And ColB(a) = ColB4 And ColD(a) = ColD4 Then ColA(a).Offset(, 4) = Message End If Next
Set ColA = Nothing: Set ColB = Nothing: Set ColD = Nothing Set ColA4 = Nothing: Set ColB4 = Nothing: Set ColD4 = Nothing
End Sub
"fred" a écrit dans le message de news: 4356aa0c$0$21712$
Bonjour, J'ai des données à comparer sur 2 feuilles Si Sur feuil4 les cellules A2, B2 et D2 sont retrouvées en feuil5 en ColA, B et D je voudrais que la chaine de texte Message soit collée en ColE sur la même ligne trouvée sur cette feuil5. MichDenis m'a donné la solution qui fonctionne très bien pour une valeur en A2 sur Feuil4 Sub test() Dim Rg As Range, Rg1 As Range, C As Range Set Rg = Worksheets("Feuil4").Range("A2") With Worksheets("Feuil5") Set Rg1 = .Range("A1:A" & .Range("A65536").End(xlUp).Row) End With For Each C In Rg1 If C.Value = Rg.Value Then C.Offset(, 4) = C.Value End If Next Set Rg = Nothing: Set Rg1 = Nothing: Set C = Nothing End Sub Mais comment faire si les données à retrouver concernent A2 B2 et C2 J'ai tenté ceci mais ça ne fonctionne pas...il suffit qu'une cellule Comme A2 soit vrai pour que ça marche...mais en fait il faut que les 3 cellules soient vraies!!! Dim Ra As Range, Ra1 As Range, Cel As Range Set Ra = Worksheets("Feuil4").Range("A2,C2,D2") With Worksheets("Feuil5") Set Ra1 = .Range("A1:D1" & .Range("A65536").End(xlUp).Row) End With For Each Cel In Ra1 If Cel.Value = Ra.Value Then Cel.Offset(, 4) = Position 'C.Value End If Next Set Ra = Nothing: Set Ra1 = Nothing: Set Cel = Nothing
Merci de m'éclairer
Bon j'ai cherché et en utilisant comme base la macro de MichDenis j'ai
trouvé ceci ...
Il doit y avoir plus simple...si quelqu'un a une solution...j'suis preneur
;)
Dim ColA As Range, ColB As Range, ColD As Range
Dim ColA4 As Range, ColB4 As Range, ColD4 As Range
Dim position As String
Dim message As String
Dim a As Long, DerLig As Long
With Worksheets("Feuil5")
DerLig = .Range("A:D").Find(What:="*", LookIn:=xlFormulas,
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
Set ColA = .Range("A2:A" & DerLig)
Set ColB = .Range("B2:B" & DerLig)
Set ColD = .Range("D2:D" & DerLig)
End With
With Worksheets("Feuil4")
premrow = .Range("A:D").Find(What:="*", LookIn:=xlFormulas,
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
Set ColA4 = .Range("A2")
Set ColB4 = .Range("B2")
Set ColD4 = .Range("D2")
End With
For a = 1 To DerLig
If ColA(a) = ColA4 And ColB(a) = ColB4 And ColD(a) = ColD4 Then
ColA(a).Offset(, 4) = Message
End If
Next
Set ColA = Nothing: Set ColB = Nothing: Set ColD = Nothing
Set ColA4 = Nothing: Set ColB4 = Nothing: Set ColD4 = Nothing
End Sub
"fred" <fredgarlon@free.fr> a écrit dans le message de news:
4356aa0c$0$21712$626a54ce@news.free.fr...
Bonjour,
J'ai des données à comparer sur 2 feuilles
Si Sur feuil4 les cellules A2, B2 et D2 sont retrouvées en feuil5 en ColA,
B et D je voudrais que la chaine de texte Message soit collée en ColE sur
la même ligne trouvée sur cette feuil5.
MichDenis m'a donné la solution qui fonctionne très bien pour une valeur
en A2 sur Feuil4
Sub test()
Dim Rg As Range, Rg1 As Range, C As Range
Set Rg = Worksheets("Feuil4").Range("A2")
With Worksheets("Feuil5")
Set Rg1 = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
End With
For Each C In Rg1
If C.Value = Rg.Value Then
C.Offset(, 4) = C.Value
End If
Next
Set Rg = Nothing: Set Rg1 = Nothing: Set C = Nothing
End Sub
Mais comment faire si les données à retrouver concernent A2 B2 et C2
J'ai tenté ceci mais ça ne fonctionne pas...il suffit qu'une cellule Comme
A2 soit vrai pour que ça marche...mais en fait il faut que les 3 cellules
soient vraies!!!
Dim Ra As Range, Ra1 As Range, Cel As Range
Set Ra = Worksheets("Feuil4").Range("A2,C2,D2")
With Worksheets("Feuil5")
Set Ra1 = .Range("A1:D1" & .Range("A65536").End(xlUp).Row)
End With
For Each Cel In Ra1
If Cel.Value = Ra.Value Then
Cel.Offset(, 4) = Position 'C.Value
End If
Next
Set Ra = Nothing: Set Ra1 = Nothing: Set Cel = Nothing
Bon j'ai cherché et en utilisant comme base la macro de MichDenis j'ai trouvé ceci ... Il doit y avoir plus simple...si quelqu'un a une solution...j'suis preneur ;) Dim ColA As Range, ColB As Range, ColD As Range Dim ColA4 As Range, ColB4 As Range, ColD4 As Range Dim position As String Dim message As String Dim a As Long, DerLig As Long With Worksheets("Feuil5") DerLig = .Range("A:D").Find(What:="*", LookIn:=xlFormulas, SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious).Row Set ColA = .Range("A2:A" & DerLig) Set ColB = .Range("B2:B" & DerLig) Set ColD = .Range("D2:D" & DerLig) End With With Worksheets("Feuil4") premrow = .Range("A:D").Find(What:="*", LookIn:=xlFormulas, SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious).Row Set ColA4 = .Range("A2") Set ColB4 = .Range("B2") Set ColD4 = .Range("D2") End With For a = 1 To DerLig If ColA(a) = ColA4 And ColB(a) = ColB4 And ColD(a) = ColD4 Then ColA(a).Offset(, 4) = Message End If Next
Set ColA = Nothing: Set ColB = Nothing: Set ColD = Nothing Set ColA4 = Nothing: Set ColB4 = Nothing: Set ColD4 = Nothing
End Sub
"fred" a écrit dans le message de news: 4356aa0c$0$21712$
Bonjour, J'ai des données à comparer sur 2 feuilles Si Sur feuil4 les cellules A2, B2 et D2 sont retrouvées en feuil5 en ColA, B et D je voudrais que la chaine de texte Message soit collée en ColE sur la même ligne trouvée sur cette feuil5. MichDenis m'a donné la solution qui fonctionne très bien pour une valeur en A2 sur Feuil4 Sub test() Dim Rg As Range, Rg1 As Range, C As Range Set Rg = Worksheets("Feuil4").Range("A2") With Worksheets("Feuil5") Set Rg1 = .Range("A1:A" & .Range("A65536").End(xlUp).Row) End With For Each C In Rg1 If C.Value = Rg.Value Then C.Offset(, 4) = C.Value End If Next Set Rg = Nothing: Set Rg1 = Nothing: Set C = Nothing End Sub Mais comment faire si les données à retrouver concernent A2 B2 et C2 J'ai tenté ceci mais ça ne fonctionne pas...il suffit qu'une cellule Comme A2 soit vrai pour que ça marche...mais en fait il faut que les 3 cellules soient vraies!!! Dim Ra As Range, Ra1 As Range, Cel As Range Set Ra = Worksheets("Feuil4").Range("A2,C2,D2") With Worksheets("Feuil5") Set Ra1 = .Range("A1:D1" & .Range("A65536").End(xlUp).Row) End With For Each Cel In Ra1 If Cel.Value = Ra.Value Then Cel.Offset(, 4) = Position 'C.Value End If Next Set Ra = Nothing: Set Ra1 = Nothing: Set Cel = Nothing
Merci de m'éclairer
michdenis
Bonjour Fred,
As-tu essayé quelque chose comme ceci :
'----------------------------------------- Sub test()
Dim RgA As Range, RgB As Range, RgC As Range Dim Rg1 As Range, C As Range
With Worksheets("Feuil4") Set RgA = .Range("A2") Set RgB = .Range("B2") Set RgC = .Range("C2") End With
With Worksheets("Feuil5") Set Rg1 = .Range("A1:A" & .Range("A65536").End(xlUp).Row) End With
For Each C In Rg1 If C.Value = Rg.Value And _ C.Offset(, 1) = RgB And _ C.Offset(, 2) = RgC Then C.Offset(, 4).Value = C.Value End If Next
Set RgA = Nothing: Set RgB = Nothing: Set RgC = Nothing: Set Rg1 = Nothing: Set C = Nothing
End Sub '-----------------------------------------
Salutations!
"fred" a écrit dans le message de news: 4356aa0c$0$21712$ Bonjour, J'ai des données à comparer sur 2 feuilles Si Sur feuil4 les cellules A2, B2 et D2 sont retrouvées en feuil5 en ColA, B et D je voudrais que la chaine de texte Message soit collée en ColE sur la même ligne trouvée sur cette feuil5. MichDenis m'a donné la solution qui fonctionne très bien pour une valeur en A2 sur Feuil4 Sub test() Dim Rg As Range, Rg1 As Range, C As Range Set Rg = Worksheets("Feuil4").Range("A2") With Worksheets("Feuil5") Set Rg1 = .Range("A1:A" & .Range("A65536").End(xlUp).Row) End With For Each C In Rg1 If C.Value = Rg.Value Then C.Offset(, 4) = C.Value End If Next Set Rg = Nothing: Set Rg1 = Nothing: Set C = Nothing End Sub Mais comment faire si les données à retrouver concernent A2 B2 et C2 J'ai tenté ceci mais ça ne fonctionne pas...il suffit qu'une cellule Comme A2 soit vrai pour que ça marche...mais en fait il faut que les 3 cellules soient vraies!!! Dim Ra As Range, Ra1 As Range, Cel As Range Set Ra = Worksheets("Feuil4").Range("A2,C2,D2") With Worksheets("Feuil5") Set Ra1 = .Range("A1:D1" & .Range("A65536").End(xlUp).Row) End With For Each Cel In Ra1 If Cel.Value = Ra.Value Then Cel.Offset(, 4) = Position 'C.Value End If Next Set Ra = Nothing: Set Ra1 = Nothing: Set Cel = Nothing
Merci de m'éclairer
Bonjour Fred,
As-tu essayé quelque chose comme ceci :
'-----------------------------------------
Sub test()
Dim RgA As Range, RgB As Range, RgC As Range
Dim Rg1 As Range, C As Range
With Worksheets("Feuil4")
Set RgA = .Range("A2")
Set RgB = .Range("B2")
Set RgC = .Range("C2")
End With
With Worksheets("Feuil5")
Set Rg1 = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
End With
For Each C In Rg1
If C.Value = Rg.Value And _
C.Offset(, 1) = RgB And _
C.Offset(, 2) = RgC Then
C.Offset(, 4).Value = C.Value
End If
Next
Set RgA = Nothing: Set RgB = Nothing: Set RgC = Nothing:
Set Rg1 = Nothing: Set C = Nothing
End Sub
'-----------------------------------------
Salutations!
"fred" <fredgarlon@free.fr> a écrit dans le message de news: 4356aa0c$0$21712$626a54ce@news.free.fr...
Bonjour,
J'ai des données à comparer sur 2 feuilles
Si Sur feuil4 les cellules A2, B2 et D2 sont retrouvées en feuil5 en ColA, B
et D je voudrais que la chaine de texte Message soit collée en ColE sur la
même ligne trouvée sur cette feuil5.
MichDenis m'a donné la solution qui fonctionne très bien pour une valeur en
A2 sur Feuil4
Sub test()
Dim Rg As Range, Rg1 As Range, C As Range
Set Rg = Worksheets("Feuil4").Range("A2")
With Worksheets("Feuil5")
Set Rg1 = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
End With
For Each C In Rg1
If C.Value = Rg.Value Then
C.Offset(, 4) = C.Value
End If
Next
Set Rg = Nothing: Set Rg1 = Nothing: Set C = Nothing
End Sub
Mais comment faire si les données à retrouver concernent A2 B2 et C2
J'ai tenté ceci mais ça ne fonctionne pas...il suffit qu'une cellule Comme
A2 soit vrai pour que ça marche...mais en fait il faut que les 3 cellules
soient vraies!!!
Dim Ra As Range, Ra1 As Range, Cel As Range
Set Ra = Worksheets("Feuil4").Range("A2,C2,D2")
With Worksheets("Feuil5")
Set Ra1 = .Range("A1:D1" & .Range("A65536").End(xlUp).Row)
End With
For Each Cel In Ra1
If Cel.Value = Ra.Value Then
Cel.Offset(, 4) = Position 'C.Value
End If
Next
Set Ra = Nothing: Set Ra1 = Nothing: Set Cel = Nothing
'----------------------------------------- Sub test()
Dim RgA As Range, RgB As Range, RgC As Range Dim Rg1 As Range, C As Range
With Worksheets("Feuil4") Set RgA = .Range("A2") Set RgB = .Range("B2") Set RgC = .Range("C2") End With
With Worksheets("Feuil5") Set Rg1 = .Range("A1:A" & .Range("A65536").End(xlUp).Row) End With
For Each C In Rg1 If C.Value = Rg.Value And _ C.Offset(, 1) = RgB And _ C.Offset(, 2) = RgC Then C.Offset(, 4).Value = C.Value End If Next
Set RgA = Nothing: Set RgB = Nothing: Set RgC = Nothing: Set Rg1 = Nothing: Set C = Nothing
End Sub '-----------------------------------------
Salutations!
"fred" a écrit dans le message de news: 4356aa0c$0$21712$ Bonjour, J'ai des données à comparer sur 2 feuilles Si Sur feuil4 les cellules A2, B2 et D2 sont retrouvées en feuil5 en ColA, B et D je voudrais que la chaine de texte Message soit collée en ColE sur la même ligne trouvée sur cette feuil5. MichDenis m'a donné la solution qui fonctionne très bien pour une valeur en A2 sur Feuil4 Sub test() Dim Rg As Range, Rg1 As Range, C As Range Set Rg = Worksheets("Feuil4").Range("A2") With Worksheets("Feuil5") Set Rg1 = .Range("A1:A" & .Range("A65536").End(xlUp).Row) End With For Each C In Rg1 If C.Value = Rg.Value Then C.Offset(, 4) = C.Value End If Next Set Rg = Nothing: Set Rg1 = Nothing: Set C = Nothing End Sub Mais comment faire si les données à retrouver concernent A2 B2 et C2 J'ai tenté ceci mais ça ne fonctionne pas...il suffit qu'une cellule Comme A2 soit vrai pour que ça marche...mais en fait il faut que les 3 cellules soient vraies!!! Dim Ra As Range, Ra1 As Range, Cel As Range Set Ra = Worksheets("Feuil4").Range("A2,C2,D2") With Worksheets("Feuil5") Set Ra1 = .Range("A1:D1" & .Range("A65536").End(xlUp).Row) End With For Each Cel In Ra1 If Cel.Value = Ra.Value Then Cel.Offset(, 4) = Position 'C.Value End If Next Set Ra = Nothing: Set Ra1 = Nothing: Set Cel = Nothing
Merci de m'éclairer
fred
Et oui...c'est nettement moins lourd et plus clair!!!! J'ai corrigé juste cette ligne..j'avais un message d'erreur For Each C In Rg1
If C.Value = Rg.Value par If C.Value = RgA.Value
Merci encore!!!
"michdenis" a écrit dans le message de news:
Bonjour Fred,
As-tu essayé quelque chose comme ceci :
'----------------------------------------- Sub test()
Dim RgA As Range, RgB As Range, RgC As Range Dim Rg1 As Range, C As Range
With Worksheets("Feuil4") Set RgA = .Range("A2") Set RgB = .Range("B2") Set RgC = .Range("C2") End With
With Worksheets("Feuil5") Set Rg1 = .Range("A1:A" & .Range("A65536").End(xlUp).Row) End With
For Each C In Rg1 If C.Value = Rg.Value And _ C.Offset(, 1) = RgB And _ C.Offset(, 2) = RgC Then C.Offset(, 4).Value = C.Value End If Next
Set RgA = Nothing: Set RgB = Nothing: Set RgC = Nothing: Set Rg1 = Nothing: Set C = Nothing
End Sub '-----------------------------------------
Salutations!
"fred" a écrit dans le message de news: 4356aa0c$0$21712$ Bonjour, J'ai des données à comparer sur 2 feuilles Si Sur feuil4 les cellules A2, B2 et D2 sont retrouvées en feuil5 en ColA, B et D je voudrais que la chaine de texte Message soit collée en ColE sur la même ligne trouvée sur cette feuil5. MichDenis m'a donné la solution qui fonctionne très bien pour une valeur en A2 sur Feuil4 Sub test() Dim Rg As Range, Rg1 As Range, C As Range Set Rg = Worksheets("Feuil4").Range("A2") With Worksheets("Feuil5") Set Rg1 = .Range("A1:A" & .Range("A65536").End(xlUp).Row) End With For Each C In Rg1 If C.Value = Rg.Value Then C.Offset(, 4) = C.Value End If Next Set Rg = Nothing: Set Rg1 = Nothing: Set C = Nothing End Sub Mais comment faire si les données à retrouver concernent A2 B2 et C2 J'ai tenté ceci mais ça ne fonctionne pas...il suffit qu'une cellule Comme A2 soit vrai pour que ça marche...mais en fait il faut que les 3 cellules soient vraies!!! Dim Ra As Range, Ra1 As Range, Cel As Range Set Ra = Worksheets("Feuil4").Range("A2,C2,D2") With Worksheets("Feuil5") Set Ra1 = .Range("A1:D1" & .Range("A65536").End(xlUp).Row) End With For Each Cel In Ra1 If Cel.Value = Ra.Value Then Cel.Offset(, 4) = Position 'C.Value End If Next Set Ra = Nothing: Set Ra1 = Nothing: Set Cel = Nothing
Merci de m'éclairer
Et oui...c'est nettement moins lourd et plus clair!!!!
J'ai corrigé juste cette ligne..j'avais un message d'erreur
For Each C In Rg1
If C.Value = Rg.Value par
If C.Value = RgA.Value
Merci encore!!!
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
evZYQnE2FHA.3864@TK2MSFTNGP12.phx.gbl...
Bonjour Fred,
As-tu essayé quelque chose comme ceci :
'-----------------------------------------
Sub test()
Dim RgA As Range, RgB As Range, RgC As Range
Dim Rg1 As Range, C As Range
With Worksheets("Feuil4")
Set RgA = .Range("A2")
Set RgB = .Range("B2")
Set RgC = .Range("C2")
End With
With Worksheets("Feuil5")
Set Rg1 = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
End With
For Each C In Rg1
If C.Value = Rg.Value And _
C.Offset(, 1) = RgB And _
C.Offset(, 2) = RgC Then
C.Offset(, 4).Value = C.Value
End If
Next
Set RgA = Nothing: Set RgB = Nothing: Set RgC = Nothing:
Set Rg1 = Nothing: Set C = Nothing
End Sub
'-----------------------------------------
Salutations!
"fred" <fredgarlon@free.fr> a écrit dans le message de news:
4356aa0c$0$21712$626a54ce@news.free.fr...
Bonjour,
J'ai des données à comparer sur 2 feuilles
Si Sur feuil4 les cellules A2, B2 et D2 sont retrouvées en feuil5 en ColA,
B
et D je voudrais que la chaine de texte Message soit collée en ColE sur la
même ligne trouvée sur cette feuil5.
MichDenis m'a donné la solution qui fonctionne très bien pour une valeur
en
A2 sur Feuil4
Sub test()
Dim Rg As Range, Rg1 As Range, C As Range
Set Rg = Worksheets("Feuil4").Range("A2")
With Worksheets("Feuil5")
Set Rg1 = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
End With
For Each C In Rg1
If C.Value = Rg.Value Then
C.Offset(, 4) = C.Value
End If
Next
Set Rg = Nothing: Set Rg1 = Nothing: Set C = Nothing
End Sub
Mais comment faire si les données à retrouver concernent A2 B2 et C2
J'ai tenté ceci mais ça ne fonctionne pas...il suffit qu'une cellule Comme
A2 soit vrai pour que ça marche...mais en fait il faut que les 3 cellules
soient vraies!!!
Dim Ra As Range, Ra1 As Range, Cel As Range
Set Ra = Worksheets("Feuil4").Range("A2,C2,D2")
With Worksheets("Feuil5")
Set Ra1 = .Range("A1:D1" & .Range("A65536").End(xlUp).Row)
End With
For Each Cel In Ra1
If Cel.Value = Ra.Value Then
Cel.Offset(, 4) = Position 'C.Value
End If
Next
Set Ra = Nothing: Set Ra1 = Nothing: Set Cel = Nothing
Et oui...c'est nettement moins lourd et plus clair!!!! J'ai corrigé juste cette ligne..j'avais un message d'erreur For Each C In Rg1
If C.Value = Rg.Value par If C.Value = RgA.Value
Merci encore!!!
"michdenis" a écrit dans le message de news:
Bonjour Fred,
As-tu essayé quelque chose comme ceci :
'----------------------------------------- Sub test()
Dim RgA As Range, RgB As Range, RgC As Range Dim Rg1 As Range, C As Range
With Worksheets("Feuil4") Set RgA = .Range("A2") Set RgB = .Range("B2") Set RgC = .Range("C2") End With
With Worksheets("Feuil5") Set Rg1 = .Range("A1:A" & .Range("A65536").End(xlUp).Row) End With
For Each C In Rg1 If C.Value = Rg.Value And _ C.Offset(, 1) = RgB And _ C.Offset(, 2) = RgC Then C.Offset(, 4).Value = C.Value End If Next
Set RgA = Nothing: Set RgB = Nothing: Set RgC = Nothing: Set Rg1 = Nothing: Set C = Nothing
End Sub '-----------------------------------------
Salutations!
"fred" a écrit dans le message de news: 4356aa0c$0$21712$ Bonjour, J'ai des données à comparer sur 2 feuilles Si Sur feuil4 les cellules A2, B2 et D2 sont retrouvées en feuil5 en ColA, B et D je voudrais que la chaine de texte Message soit collée en ColE sur la même ligne trouvée sur cette feuil5. MichDenis m'a donné la solution qui fonctionne très bien pour une valeur en A2 sur Feuil4 Sub test() Dim Rg As Range, Rg1 As Range, C As Range Set Rg = Worksheets("Feuil4").Range("A2") With Worksheets("Feuil5") Set Rg1 = .Range("A1:A" & .Range("A65536").End(xlUp).Row) End With For Each C In Rg1 If C.Value = Rg.Value Then C.Offset(, 4) = C.Value End If Next Set Rg = Nothing: Set Rg1 = Nothing: Set C = Nothing End Sub Mais comment faire si les données à retrouver concernent A2 B2 et C2 J'ai tenté ceci mais ça ne fonctionne pas...il suffit qu'une cellule Comme A2 soit vrai pour que ça marche...mais en fait il faut que les 3 cellules soient vraies!!! Dim Ra As Range, Ra1 As Range, Cel As Range Set Ra = Worksheets("Feuil4").Range("A2,C2,D2") With Worksheets("Feuil5") Set Ra1 = .Range("A1:D1" & .Range("A65536").End(xlUp).Row) End With For Each Cel In Ra1 If Cel.Value = Ra.Value Then Cel.Offset(, 4) = Position 'C.Value End If Next Set Ra = Nothing: Set Ra1 = Nothing: Set Cel = Nothing