Recherchev avec plusieurs résultats à afficher en ligne

Bonjour,

J’ai un tableau avec des ID client et des contrats. un ID client peut avoir plusieurs contrat et je voudrais faire un tableau pour afficher les contrat en ligne par ID client.

ID Client Contrat 1 Contrat 2 Contrat 3

Merci !

1 J'aime

Bonjour @AugustinJ,

Concernant ta demande d’aide ( Compte le nombre de ligne unique avec tel critère ), tu ne l’as toujours pas validé par :white_check_mark:

Je me rappelle aussi d’avoir écrit "Un fichier est toujours le bienvenu, plutôt que d’être obligé de le reconstituer." :wink:

Pour cette nouvelle demande d’aide, peux-tu nous fournir un fichier en le rendant anonyme si besoin.

@+
Cordialement.

Bonsoir @AugustinJ,

Dans l’attente de ton fichier est-ce ceci conviendrait:

Cordialement.

1 J'aime

Hello Merci,

J’ai pensé à la même solution finalement !!

encore merci

1 J'aime

Bonjour,

Je recherche également à retourner plusieurs résultats avec recherchev mais je ne comprends pas le fichier avec les anotations en rouge. Comment arriver au résultat d’une répartition des contrats en colonne?
mdo100 j’espère que tu pourras me répondre.

Bonsoir @Leaurens,

L’auteur de la demande ( AugustinJ ) n’ayant jamais validé une précédente demande d’aide et n’ayant jamais réclamé le fichier, que j’avais mis en image. :face_with_raised_eyebrow: du coup je ne l’avait pas mis sur le forum.

Mais comme je suis de bonne humeur ce soir, je veux bien te le proposer si cela convient bien sûr.

Fichier ICI==> Leaurens.xlsx (15,2 Ko)

Cordialement.

1 J'aime

Re @Leaurens,

J’avais préparé aussi à l’époque une version en VBA.

Option Explicit

Sub GO()
Dim J As Long
Dim I As Integer
Dim K As Long
Dim Indice As Long
Dim Tablo
Dim Nb As Integer

  Application.ScreenUpdating = False
  ReDim Tablo(1 To Range("A" & Rows.Count).End(xlUp).Row - 2, 1 To 2)
  Tablo(1, 1) = Range("A2")
  Tablo(1, 2) = Range("B2")
  Nb = 1
  For J = 3 To Range("A" & Rows.Count).End(xlUp).Row
    For K = 1 To UBound(Tablo)
      If Range("A" & J) = Tablo(K, 1) Then
        For I = 1 To UBound(Tablo, 2)
          If Tablo(K, I) = "" Then
            Tablo(K, I) = Range("B" & J)
            Exit For
          End If
        Next I
        If I > UBound(Tablo, 2) Then
          ReDim Preserve Tablo(1 To UBound(Tablo), 1 To UBound(Tablo, 2) + 1)
          Tablo(K, UBound(Tablo, 2)) = Range("B" & J)
        End If
        Exit For
      ElseIf Tablo(K, 1) = "" Then
        Nb = Nb + 1
        Tablo(K, 1) = Range("A" & J)
        Tablo(K, 2) = Range("B" & J)
        Exit For
      End If
    Next K
  Next J
  With Sheets("R?sultat")
    .Cells.ClearContents
    .Range("A2").Resize(Nb, UBound(Tablo, 2)) = Tablo
    .Range("A1") = "ID client"
    .Range("B1") = "Contrat N?1"
    .Range("B1").AutoFill .Range("B1").Resize(, UBound(Tablo, 2) - 1), xlFillSeries
    .Select
    Rows(1).Font.Bold = True
  End With
End Sub

Fichier ICI==> Leaurens V1.xlsm (20,2 Ko)

Cdlt.

1 J'aime

Bonjour mdo100
Possible qu’il y a une petite erreur dans la Colonne I & J dans l’onglet Résultats le contrat est répéter 02 fois et compter deux fois, j’ai bien vu la formule et je n’ai pas trouver l’erreur
et si vous ajouter par exemple client 7 tu aura la même erreur.
Je sais que tu est très fort aux Formules Excel.
Merci mdo100

Bonsoir mdo100
Bravo votre code vba marche a merveille,
et si c’est possible je veux savoir ou est l’erreur de la formule

Merci mdo100

Salut @sadi58,

Exacte erreur de ma part, c’est corrigé dans le fichier joint:
Fichier corrigé ICI==> sadi58.xlsx (15,6 Ko)

Cordialement.

Salut mdo100

Bravo ça marche très bien
Bonne soirée mdo100

Salut

Merci beaucoup je vais étudier tout ça !

Bon alors dans un premier temps j’ai essayé d’adapter les formules du premier fichier : échec total, mes connaissances sont trop limitées ! j’ai donc essayé la version VBA, j’ai transposé mes données et cela marche à merveille.
Merci beaucoup pour ton aide.