XL 2013 Filtre automatique sur une base de donnée par rapport à une celulle

psc

XLDnaute Nouveau
Bonjour,

Je suis en train de créer une base de donnée que je vais renseigner manuellement au fur et a mesure,
J'aimerai créer à partir de cette base de donnée des factures qui se génèrent automatiquement en fonction du numéro de devis renseigné.
Pour faire simple, en fonction de la celulle M3 de ma feuille FACTURE, j'aimerai que ma macro aille chercher toutes les infos sur ma feuille Base de donnée qui sont en rapport avec cette celulle M3 et quelle remplisse mon tableau sur la feuille facture.
La revision, la quantité, prix etc et que ces données soit collées automatiquement en fonction de mon numéro de devis, puis changé si je saisi un autre numéro de devis.

J'ai essayé tout ce que j'ai pu avec mes connaisances en VBA mais rien n'y fait....
Merci pour votre aide¨!!

Bonne journée
 

Pièces jointes

  • Tracking table.xlsx
    14.2 KB · Affichages: 10

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Psc, JHA,
Un essai en PJ avec :
VB:
Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [M3]) Is Nothing Then      ' Si M3 modifié alors
        Dim F, Lecr, L
        Application.EnableEvents = False                ' Invalidation événementielle
        [A8:I25].ClearContents                          ' Effacement devis
        Application.ScreenUpdating = False              ' Ecran figé
        Set F = Sheets("Base de données")
        Lecr = 8                                        ' Première ligne écriture
        For L = 2 To F.Range("A65500").End(xlUp).Row    ' Pour toutes les lignes de BDD
            If F.Cells(L, "E") = Target Then            ' Si le ligne a bien le bon N° de devis
                Cells(Lecr, "A") = Lecr - 7             ' N° ligne devis
                Cells(Lecr, "B") = F.Cells(L, "B")      ' Identification
                Cells(Lecr, "E") = F.Cells(L, "C")      ' Revision
                Cells(Lecr, "F") = F.Cells(L, "D")      ' Quantité
                Cells(Lecr, "G") = F.Cells(L, "F")      ' Prix
                Lecr = Lecr + 1                         ' Ligne suivante
            End If
        Next L
    End If
    Application.ScreenUpdating = True                   ' Ecran réactivé
    Application.EnableEvents = True                     ' Events réactivés
End Sub
L'actualisation du devis se fait lorsqu'on change le N° de devis en M3.
 

Pièces jointes

  • Tracking table.xlsm
    21.7 KB · Affichages: 6

Discussions similaires

Réponses
27
Affichages
1 K

Statistiques des forums

Discussions
314 771
Messages
2 112 769
Membres
111 653
dernier inscrit
Vanie0082