texte de plusieurs cellules dans une seule

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

E

Emmaines65

Guest
Bonjour
je cherche une formule me permettant de récupérer le texte de plusieurs cellule dans une seule , si une autre cellule est égale à une date et une autre à un texte, voir fichier en PJ.
Merci d'avance pour votre aide.
 

Pièces jointes

Bonjour,

Construit totalement le tableau à partir de la BD.

Code:
Private Sub Worksheet_Activate()
  Set f = Sheets("BD")
  Set Rng = f.Range("A2:E" & f.[A65000].End(xlUp).Row)
  TblBD = Rng.Value                                         ' Array pour rapidité
  Colcrit1 = 4: Colcrit2 = 1: colOper = 5                   ' Colonnes analyse
  Set Result = Range("A1")                                  ' Adresse résultat
  Set d1 = CreateObject("Scripting.Dictionary")             ' Dictionnaire index pour rapidité
  Set d2 = CreateObject("Scripting.Dictionary")
  Dim TblTot(): ReDim TblTot(1 To UBound(TblBD), 1 To UBound(TblBD, 2))
  For i = LBound(TblBD) To UBound(TblBD)
    clé1 = TblBD(i, Colcrit1): If d1.exists(clé1) Then lig = d1(clé1) Else d1(clé1) = d1.Count + 1: lig = d1.Count
    clé2 = TblBD(i, Colcrit2): If d2.exists(clé2) Then col = d2(clé2) Else d2(clé2) = d2.Count + 1: col = d2.Count
    TblTot(lig, col) = TblTot(lig, col) & TblBD(i, colOper) & vbCrLf
  Next i
  Result.Offset(1).Resize(d1.Count, 1) = Application.Transpose(d1.keys)   ' titre lignes
  Result.Offset(, 1).Resize(1, d2.Count) = d2.keys                        ' titres colonnes
  Result.Offset(1, 1).Resize(d1.Count, d2.Count) = TblTot                 ' stat 2D
End Sub

http://boisgontierjacques.free.fr/pages_site/Dictionnaire.htm#regroupeligne


Boisgontier
 

Pièces jointes

  • Sans titre.png
    Sans titre.png
    10 KB · Affichages: 29
  • TabCroise.xls
    TabCroise.xls
    60 KB · Affichages: 23
Dernière édition:
Bonsoir,

Bien sûr en VBA on fait ce qu'on veut.

Mais ici on peut s'en passer en utilisant une formule pour concaténer les cellules.

Voyez le fichier joint et cette formule matricielle en C2 de la feuille "Etude" :
Code:
=SI(SOMME((Base!$A$1:$A$10000=C$1)*(Base!$D$1:$D$10000=$B2));INDEX(Base!$E1:$E10000;PETITE.VALEUR(SI((Base!$A$1:$A$10000=C$1)*(Base!$D$1:$D$10000=$B2);LIGNE(Base!$A$1:$A$10000));1));"")&SI(SOMME((Base!$A$1:$A$10000=C$1)*(Base!$D$1:$D$10000=$B2))>1;CAR(10)&INDEX(Base!$E1:$E10000;PETITE.VALEUR(SI((Base!$A$1:$A$10000=C$1)*(Base!$D$1:$D$10000=$B2);LIGNE(Base!$A$1:$A$10000));2));"")&SI(SOMME((Base!$A$1:$A$10000=C$1)*(Base!$D$1:$D$10000=$B2))>2;CAR(10)&INDEX(Base!$E1:$E10000;PETITE.VALEUR(SI((Base!$A$1:$A$10000=C$1)*(Base!$D$1:$D$10000=$B2);LIGNE(Base!$A$1:$A$10000));3));"")&SI(SOMME((Base!$A$1:$A$10000=C$1)*(Base!$D$1:$D$10000=$B2))>3;CAR(10)&INDEX(Base!$E1:$E10000;PETITE.VALEUR(SI((Base!$A$1:$A$10000=C$1)*(Base!$D$1:$D$10000=$B2);LIGNE(Base!$A$1:$A$10000));4));"")&SI(SOMME((Base!$A$1:$A$10000=C$1)*(Base!$D$1:$D$10000=$B2))>4;CAR(10)&INDEX(Base!$E1:$E10000;PETITE.VALEUR(SI((Base!$A$1:$A$10000=C$1)*(Base!$D$1:$D$10000=$B2);LIGNE(Base!$A$1:$A$10000));5));"")
A+
 

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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
129
Retour