texte de plusieurs cellules dans une seule

Emmaines65

XLDnaute Nouveau
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

  • Classeur1.xls
    14.5 KB · Affichages: 32

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
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: 25
  • TabCroise.xls
    60 KB · Affichages: 23
Dernière édition:

job75

XLDnaute Barbatruc
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

  • Classeur(1).xls
    61 KB · Affichages: 17

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 206
Messages
2 086 219
Membres
103 158
dernier inscrit
laufin