concatener de cellules avec filtres

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

O

oz2007

Guest
Bonjour,

Etant débutante sur VBA j'ai besoin d'un petit coup de pouce 🙂
Je cherche à concatener plusieurs cellules (en séparant les données par un point virgule) après l'application d'un filtre. Dans mon exemple, je dois intégrer dans l'onglet "report ctr" des données provenant de l'onglet "prestataire" de la façon suivante:

- dans l'onglet prestataire filtrer colonne D sur station 1 et colonne E sur activité 1
- dans l'onglet report ctr en B3 (station 1 & activité 1) je dois avoir la liste des numéro de prestataires indiqués dans l'onglet "prestataire" séparé par un point virgule
- et ainsi de suite

J'ai mis les résultats attendu dans l'onglet "report ctr" au cas où ce n'est pas très clair

Merci 🙂
ps: vba ou formules excel les deux me conviennent, je ne suis pas difficile!
 

Pièces jointes

Dernière modification par un modérateur:
Re : concatener de cellules avec filtres

Bonjour,
Je crois comprendre ton besoin, mais...
il va me falloir une précision pour t'aider :
- souhaite tu repercuter en "REPORT CTR" le resultat d'un seul filtre sur le tableau de "PRESTATAIRES" ou
- souhaite tu automatiquement traiter tous le tableau de "PRESTATAIRES" dans "REPORT CTR" lorsque tu fais une modif dans "PRESTATAIRES"? (à ce moment là, plus besoin de filtrer pour avoir un resultat sachant qu'il te faudrait filtrer une à une chaque possibilité pour obtenir un resultat pour l'ensemble du tableau......

dans l'attente de ton retour
Cdt
Frédéric
 
Re : concatener de cellules avec filtres

Coucou Frédéric,

Plutôt la deuxième solution. Les étapes que je souhaite traduire en macro sont:

1er étape:

- onglet prestataire/ appliquer un filtre sur station 1 (colonne D) et activité 1 (colonne E)
- onglet report ctr/ concatener en B3 (donc au croissement entre station 1 et activité 1) les deux numéros de prestataires des lignes filtrés (avec point virgule)

2ème étape:

- onglet prestataire/ appliquer un filtre sur station 1 (colonne D) et activité 2 (colonne E)
- onglet report ctr/ concatener en B4 (donc au croissement entre station 1 et activité 2) les trois numéros de prestataires des lignes filtrés.

Etc...

Est-ce plus clair? 😉
 
Re : concatener de cellules avec filtres

parfait non. mais ça dépanne peut être mais ...

je ne comprends pas moi même pourquoi les résultats sont à l'envers dans les cellules (10001,10000 au lieu de 10000;10001), je ne sais pas comment trier avant de coller les données 🙁
et à la fin du tableau il ajoute des ";" inutiles que je ne sais pas éviter
Si qq un a les réponses 🙂
 
Re : concatener de cellules avec filtres

Petite modif après m'être creusé la tête....

Sub TableauInverse() ' inspiré d'un code de J. Boisgontier !!!
' Formation Excel VBA JB
'
Set d1 = CreateObject("Scripting.Dictionary")
Set d2 = CreateObject("Scripting.Dictionary")
Set ws2 = Sheets("report ctr")
Set ws1 = Sheets("prestataires")
ws2.Range("E1:k10").ClearContents
nblignes = ws1.[e65000].End(xlUp).Row
Dim a(1 To 5, 1 To 5)
Dim Last As Long
lig = 1: col = 1
Mlig = lig: Mcol = col
Last = ws1.Range("E65000").End(xlUp).Row
For Each c In Sheets("prestataires").Range("e2:e" & Last)
If d1.exists(c.Value) Then lig = d1(c.Value) Else d1(c.Value) = Mlig: lig = Mlig: Mlig = Mlig + 1
tmp = c.Offset(, -1)
If d2.exists(tmp) Then col = d2(tmp) Else d2(tmp) = Mcol: col = Mcol: Mcol = Mcol + 1
a(lig, col) = IIf(IsEmpty(a(lig, col)), c.Offset(, -4) & ";", a(lig, col) & c.Offset(, -4))
Debug.Print a(lig, col), c.Row, c
Next c
' tri
ws2.[f2].Resize(d1.Count, 1) = Application.Transpose(d1.keys)
ws2.[g1].Resize(1, d2.Count) = d2.keys
ws2.[G2].Resize(d1.Count, d2.Count) = a
ws2.Select
End Sub
 
- 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

L
Réponses
8
Affichages
2 K
LauLauR
L
L
Réponses
7
Affichages
1 K
LEWISBEGIN
L
N
Réponses
3
Affichages
1 K
K
Réponses
3
Affichages
822
Réponses
7
Affichages
943
Retour