XL 2013 Comparaison entre 2 colonnes Excel VBA macro

  • Initiateur de la discussion Initiateur de la discussion JdW
  • 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 !

JdW

XLDnaute Nouveau
Bonjour à tous !
Voilà je débute avec VBA Excel
J’ai un petit souci je souhaite comparer 2 colonne Excel dans une boucle for

Dans la première colonne j'ai : '' colonne A avec des ID " et dans la deuxième " colonne C j'ai des Name ".
la seule chose que je peux savoir que ce Name ("Prénom") appartien a cette ID c'est une colonne E qui se nomme "Party"
Je souhaite avoir une macro avec une boucle for qui lorsqu'il trouve deux termes équivalents dans les deux colonnes me renvoie l'ID et le Name dans une autre colonne exemple AB
Je veux faire une comparaison en ciblant l'ID et le Name , je souhaite une macro dynamique
voici mon fichier excel

Merci d'avance pour votre Aide !!
 

Pièces jointes

Re,

Voir ci-joint.

Bonne continuation

Re
Merci beaucoup pour ta réponse ! 🙂
Je reformule ma question

Enfaite je veux crée une boucle qui parcour la colonne A "ID" et la colonne E "Party" pour comparer les ID au name dans la colonne C et si elle trouve un ID qui correspond au name de la colonne C elle l'affiche dans la colonne F
et si elle ne trouve pas elle ne l'affiche pas et passe au suivant ID aini de suite sans crée de bouton

sachant que la j'ai que 2 ID je peux en avoir 1000 ID c'est pour cela je cherche une boucle dynamique

je vous remercie d'avance !!

en piéce jointe un autre excel plus clair.
 

Pièces jointes

Re,

Je ne comprends pas ta demande. En gros pour chaque ID dans la colonne A tu parcours toute la colonne C et tu regardes si il existe une cellule de C telle que A + C = E ?

Je ne sais pas ce que tu entends par "dynamique", mais si c'est simplement le fait que la boucle parcoure tous les termes, peu importe leur nombre, alors ma macro est "dynamique".

Bonne continuation
 
Re,

Plutot ça ?
Je prends A et E d'une ligne, je les compare : si le terme entre parenthèses en E est le même que A alors je regarde si il existe un terme de C qui corresponde à ce qu'on a en E et je renvoie la ligne a laquelle il a été trouvé.

Est-ce que c'est ce que tu voulais ?

Bonne continuation
 

Pièces jointes

Bonjour,

Ce que j'ai compris

VB:
Sub essai()
  Set Rng = Range("a2:a" & [A65000].End(xlUp).Row)
  Set Rng2 = Range("c2:c" & [A65000].End(xlUp).Row)
  Set Rng3 = Range("e2:e" & [e65000].End(xlUp).Row)
  Set d = CreateObject("scripting.dictionary")
  For i = 1 To Rng.Count
    x = CStr(Rng(i))
    d(x) = Rng2(i)
  Next i
  For i = 1 To Rng3.Count
    x = Rng3(i)
    p = InStr(x, "(")
    code = Mid(x, p + 1)
    code = Left(code, Len(code) - 1)
    y = Left(x, p - 1)
    d(code) = d(code) & " " & y
  Next i
  [g2].Resize(d.Count) = Application.Transpose(d.keys)
  [H2].Resize(d.Count) = Application.Transpose(d.items)
End Sub

Boisgontier
 

Pièces jointes

- 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
22
Affichages
661
Réponses
8
Affichages
469
Retour