Concaténer plusieurs cellules?

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

C

CLAUDEF

Guest
Bonsoir à tous,

Je souhaiterais concaténer dans une cellule, des entetes de colonnes à partir de criteres. Exemple ce petit tableau joint, je souhaiterais que dans les cellules de la colonne 2008, je puisse cocaténer tous les noms ayant un repère 2008 et ceci par ligne.

Comment puis je faire

Merci à vous
 

Pièces jointes

Re : Concaténer plusieurs cellules?

Bonsoir CLAUDEF,

Un solution par macro, par formule j'en suis incapable.

Code:
Sub concat()
Dim i As Long, k As Byte
Dim T As String

For i = 2 To Range("B65536").End(xlUp).Row
    For k = 2 To 5
      If Cells(i, k) = 2008 Then
        T = T & Cells(1, k) & ";"
        Cells(i, 6) = Left(T, Len(T) - 1)
      End If
    Next
  T = ""
Next

End Sub

Bonne soirée
 

Pièces jointes

Re : Concaténer plusieurs cellules?

Je viens de m'apercevoir que la solution en langage vba ne fonctionne pas si l'on modifie les dates, de plus il me faudrait quelques explications pour que je l'adapte à mon tableau.
Est ce que cela est trop demandé, d'avance merci
 
Re : Concaténer plusieurs cellules?

Bonsoir

Désolé bqtr j'ai cru que tu étais absent


Code:
Sub concat()
Dim i As Long, k As Byte
Dim T As String

For i = 2 To Range("B65536").End(xlUp).Row    ' De la ligne 2 jusqu'à la dernière ligne écrite
    For k = 2 To 5                            ' De la colonne 2 (A) à la colonne 5 (E)
      If Cells(i, k) = 2008 Then              ' Si le contenu de la cellule est égal à 2008
        T = T & Cells(1, k) & ";"             ' On rajoute le nom situé ligne 1 colonne K
        Cells(i, 6) = Left(T, Len(T) - 1)     ' On écrit ce que l'on a trouvé en ôtant le dernier ;
      End If
    Next
  T = ""                                       ' Réinitialise la variable
Next

End Sub
 
Dernière édition:
Re : Concaténer plusieurs cellules?

Re,

Voici le code un peu modifié avec les explications.

Code:
Sub concat()
Dim i As Long, k As Byte
Dim T As String
'effacement de la colonne F
Range("F2:F" & Range("A65536").End(xlUp).Row).ClearContents
'boucle de la ligne 2 à la dernière linge non vide de la colonne B
For i = 2 To Range("B65536").End(xlUp).Row
    'boucle de la colonne B à D
    For k = 2 To 5
      'si la cellule est égale à la cellule F1 alors
      If Cells(i, k) = Cells(1, 6) Then
        'concaténation des valeurs
        T = T & Cells(1, k) & ";"
        ' suppression du dernier ;
        Cells(i, 6) = Left(T, Len(T) - 1)
      'fin du test
      End If
    'colonne suivante
    Next
  'remise à zéro de la variable T
  T = ""
'ligne suivante
Next

End Sub
Tu entres une année en F1 et tu lances la macro.

Cells(1,1) correspond à la cellule A1, Cells(1,2) à B1, Cells(1,3) à C1 .../...

Dans l'exemple Cells(i,k) prendra comme valeurs B2,C2,D2,E2 puis B3,C3,D3,E3 et ainsi de suite jusqu'à B7,C7,D7,E7.
I aura donc comme valeur 2 puis 3,4,5,6 et 7 (ligne de 2 à 7).
K aura comme valeur 2 puis 3,4 et 5 (colonne B à D).
La variable T (qui sert à concaténer les noms ) se remet à zéro à chaque changement de ligne.

A+

Salut Banzai64, y pas de soucis, l'union fait la force 🙂
 
Dernière édition:
Re : Concaténer plusieurs cellules?

Je suis scotché, je vais essayer sur mon tableau, j'avoue qu'il va falloir que je m'interesse de plus prés au vba, pourtant cela me semble trés compliqué. Qu'elle la meilleure façon de s'initier si ce n'est de venir sur ce forum, qui m'est bien utile je l'avoue
 
- 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
3
Affichages
315
Réponses
2
Affichages
282
Réponses
10
Affichages
619
Retour