Générer des lignes correspondant à une valeur

Bonjour,

J'espère que je vais réussir à être assez clair :

Sur ma première feuille j'ai renseigné à la main différentes informations (Nom d'entreprise, Date de commande, Date de livraison) qui correspondent à ma plage de donnée.

Je souhaiterais que lorsque je rentre dans une case le nom d'une des entreprises présente dans la plage de donnée j'obtienne de manière automatique toutes les lignes correspondant à l'entreprise.

Exemple : Entreprise X (case que je renseigne)

Entreprise X 27/03/2011 12/04/2011
Entreprise X 30/11/2014 02/01/2015
Entreprise X 02/02/2018 21/04/2018

Cela a pour but de pouvoir trouver de manière automatique tout l'historique de mes déclarations.

Merci pour vos futures réponses.

Paul

2 réponses

  1. Bonjour,
    qu'attends tu de ces lignes d'historique? c'est simplement une information temporaire de suivi? ça doit être inscrit sur la feuille que tu es entrain de remplir ?
    partage un fichier exemple avec ce tu attends précisément pour avoir une réponse adaptée à ton besoin
    1
    1. Bonjour, le but est de pouvoir jeter un coup d'oeuil sur une entreprise dans ma base de donnée.
      Voici l'exemple :





      Merci pour ta future réponse
      0
    2. pas de ligne, pas de colonne ni de nom de feuille... impossible de te donner de réponse..
      0
    3. @fabien25000Excuse moi voilà :




      Si tous est sur la même feuille cela ne me dérange pas du tout.

      Merci
      0
    4. si ça s'affiche dans une fenêtre de dialogue qui donne l'info et qui se referme quand tu l'as lue ça te va?
      0
  2. Private Sub Worksheet_Change(ByVal Target As Range)
        Dim derlig, i, j, tmpsuivi, tmpmsgbox As Integer
    'recherche de la derniere ligne colonne B
        derlig = Worksheets("feuil1").Range("B" & Rows.Count).End(xlUp).Row
    'défition de la colonne de commande
        tmpsuivi = "Historique de commandes passées par l'entreprise " & Target.Value & vbCrLf
    
        If Not Intersect(Target, Range("B:b")) Is Nothing Then
            For i = 3 To derlig
                If Worksheets("feuil1").Range("B" & i) = Target.Value Then
                    tmpsuivi = tmpsuivi & Worksheets("feuil1").Range("C" & i) & " " & Worksheets("feuil1").Range("D" & i) _
                    & " " & Worksheets("feuil1").Range("E" & i) & " " & Worksheets("feuil1").Range("F" & i) & vbCrLf
                Else
                End If
            Next i
            tmpmsgbox = MsgBox(tmpsuivi, vbInformation + vbOKOnly, "Information")
        End If
    
    End Sub

    clic droit sur l'onglet de ta feuille < afficher le code
    coller ça
    je suis parti du principe que tout est sur la même feuille et j'ai gardé les cellule que l'on voit sur tes captures... à adapter au besoin

    0
    1. Merci beaucoup, mon dernier message n’est pas partit à priori.
      Peu avant de manger j’ai trouvé la solution avec des formules matricielles
      Merci beaucoup je peux t’envoyer la formule si tu le souhaite.
      0
    2. poste t formule oui pour ceux qui auraient le m^me souci que toi !
      0