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

XL 2021 (RESOLU) Concaténation et Remplacement des Prénoms par Noms en ordre alpha

yannlion

XLDnaute Junior
Bonjour le forum !

J'ai un double soucis sur une macro.
J'aimerais remplacer les 2 prénoms des duos par les deux noms en ordre alphabétique séparés par " / " (voir le fichier exemple).

Autant j'arriverais à me dépatouiller sur une ligne autant sur deux, cela dépasse mes compétences ...

Merci d'avance pour votre aide
Yann

PS : l'ordre alpha est facultatif
 

Pièces jointes

  • clASSEUR.xlsx
    10.7 KB · Affichages: 12
Dernière édition:

R@chid

XLDnaute Barbatruc
Bonjour,
Sous réserve d'avoir compris, en C17 :
VB:
=SUBSTITUE(C2;JOINDRE.TEXTE(" - ";1;SI(B$2:B$8=B2;F$2:F$8;""));JOINDRE.TEXTE(" / ";1;SI(B$2:B$8=B2;E$2:E$8;"")))
@ tirer vers le bas

Cordialement
 

merinos

XLDnaute Accro
C'est gentil... mais il n'y a pas de nom de club...

En plus si Elisabeth Taylor et Elisabeth Tatcher jouent a l'AC Milan....

Il me semble qu'il n'y a pas assez d'info pour faire les remplacement de données.


 

yannlion

XLDnaute Junior
C'est gentil... mais il n'y a pas de nom de club...

En plus si Elisabeth Taylor et Elisabeth Tatcher jouent a l'AC Milan....

Il me semble qu'il n'y a pas assez d'info pour faire les remplacement de données.


Regarde la pièce jointe 1181037
En fait les duos apparaissent sur deux lignes identiques en colonne C et les prénoms sont ceux en colonne F sur ces deux lignes.
L'idée est juste de remplacer les prénoms que l'on retrouve en colonne C par les noms en colonne E quand il y a écrit Duo en colonne A
 

yannlion

XLDnaute Junior
Je crois que j'ai solutionné avec cette macro :

VB:
 For i = 2 To Cells(Rows.Count, 3).End(xlUp).Row
    If Range("C" & i).Value = "Duo" Then
        If Range("G" & i).Value = Range("G" & i + 1).Value Then
            Range("G" & i).Value = Replace(Range("G" & i).Value, Range("J" & i).Value, Range("I" & i).Value)
            Range("G" & i).Value = Replace(Range("G" & i).Value, Range("J" & i + 1).Value, Range("I" & i + 1).Value)
        Else
            Range("G" & i).Value = Range("G" & i - 1).Value
        End If
    End If
Next

Peut être pas très propre mais fonctionnel
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…