Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

comparaison de deux colonnes

  • Initiateur de la discussion Initiateur de la discussion flo2002
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

flo2002

XLDnaute Impliqué
Bonjour tout le monde,

j'ai une macro pour comparer deux colonnes dans deux feuilles differentes et me coller l'information dans une troisieme:
ws2.Select
Dim derligne1%, derligne2%
Dim i1%, i2%

derligne1 = ws3.Range("D65536").End(xlUp).Row
derligne2 = ws2.Range("p65536").End(xlUp).Row
For i2 = 1 To derligne2
For i1 = 14 To derligne1
If ws3.Range("D" & i1) = ws2.Range("p" & i2) Then
Exist = 1
GoTo Suivant
End If
Next
If Exist = 1 Then GoTo Suivant
ws3.Range("D" & derligne1 + 1) = ws2.Range("p" & i2)
derligne1 = ws3.Range("D65536").End(xlUp).Row
Suivant:
Exist = 0
Next

cette macro fonctionne tres bien, cependant elle compare de cellule identique hors j'aimerais qu'elle puisse considérer que si la cellule contient une partie de l'autre cellule c'est pareil.

Par exemple,
aujourd'hui il me fait

En col A en col B

AAA AAA
AAA1 AAA
AAA1 AAA
AAA2

donc en C il me met
AAA
AAA1
AAA2

je voudrais qu'il ne me mettent que AAA en C.
Est ce possible en faite de lui dire si B est dans A ou un truc comme ca.

Merci de vos lumieres
 
Re : comparaison de deux colonnes

Bonjour Flo2002 et le forum,

Je te propose d'essayer la fonction Find :

Tu changes la ligne de code :

If ws3.Range("D" & i1) = ws2.Range("P" & i2) Then

Par :

If ws3.Range("D" & i1).Find(ws2.Range("P" & i2), LookAt:=xlPart) <> "" Then

Cordialement

Bernard
 
Re : comparaison de deux colonnes

Merci Bernard,
je me suis debrouiller autrement mais je note ta fonction pour une autre fois.

par contre, j'ai une incompatibilité de type sur :

For i2 = 1 To derligne2
For i1 = 14 To derligne1
If Sheets("Conso_Dpt").Range("F" & i1) = ws2.Range("D" & i2) Then

derligne2 = 133
derligne1 = 356
i1 = 356
i2 = 1 ????

je ne comprends pas.
Une idée?
merci
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
0
Affichages
747
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…