Concatenation de cellules avec conditions

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

F

fcales

Guest
Je sais que le sujet est déjà sorti avec des solutions différentes mais après moultes recherches, je n'ai pas trouvé chaussure à mon pied.

L'objectif (très explicite dans mon exemple joint) :

Concatener avec des ";" entre les valeurs des cellules en fonction de valeurs présentes ou non dans d'autres cellules adjacentes.

Dans l'exemple, le résultat attendu (en dur ici) est en B6

Merci de votre aide
 

Pièces jointes

Dernière modification par un modérateur:
Re : Concatenation de cellules avec conditions

Bonjour Fcales,

avec cette formule:

=SI(D6="x";"PAPA ;";"")&SI(E6="x";"MAMAN ;";"")&SI(F6="x";"MAMIE ;";"")&SI(G6="x";"SOEUR ;";"")&SI(H6="x";"FRERE ;";"")&SI(I6="x";"COUSIN ;";"")

à+
Philippe
 
Re : Concatenation de cellules avec conditions

Merci et super rapide.

Cependant, il s'agissait là d'un tout petit exemple. A ce jour, mon fichier (le vrai) compte environ 95 colonnes. J'ai peur que la formule soit fastidieuse à dérouler et modifier à l'ajout de nouvelles colonnes.

Je pensais à une formule matricielle mais ne les maîtrise pas bien.
 
Re : Concatenation de cellules avec conditions

Bonjour,

Un essai avec ce code:
Code:
Sub Macro1()
With Sheets("Feuil1")
For i = 4 To .Range("D2").End(xlToRight).Column
    If UCase(.Cells(6, i)) = "X" Then
        res = res & .Cells(2, i).Value & ";"
    End If
Next i
.Range("B6") = Mid(res, 1, Len(res) - 1)
End With
End Sub

Bien à toi,

mth

Edit: Oups ... bonjour Philippe 🙂
désolée .. je n'avais pas rafraichi ....
 
Re : Concatenation de cellules avec conditions

Bonjour,

Un essai avec ce code:
Code:
Sub Macro1()
With Sheets("Feuil1")
For i = 4 To .Range("D2").End(xlToRight).Column
    If UCase(.Cells(6, i)) = "X" Then
        res = res & .Cells(2, i).Value & ";"
    End If
Next i
.Range("B6") = Mid(res, 1, Len(res) - 1)
End With
End Sub

Bien à toi,

mth

Edit: Oups ... bonjour Philippe 🙂
désolée .. je n'avais pas rafraichi ....
Merci encore.

Mais je n'ai pas été assez précis. Désolé, c'est ma première fois (!!!!).

En fait les lignes (avec le résultat en B6) vont se répéter vers le bas permettant ainsi plusieurs combinaisons de X. Faut-il une macro pour chaque ligne ? J'ai peur que ca ne fonctionne pas
 
Re : Concatenation de cellules avec conditions

Re,

un autre essai par macro
les lettres peuvent être remplacées


à+
Philippe

Edit: Bonjour mth ..........pas rafraîchi non-plus .......même solution mais je vois que la question s'étoffe
 

Pièces jointes

Dernière édition:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
242
Retour