Saisie automatique dans un facturier

Bonjour a tous les lecteurs, dans mon classeur essaie facturier je ne parvient pas a automatiser la colonne Référence en A 22 de la page FACTURE.

Merci pour votre aide.

20essaie-facturier.zip (143.16 Ko)
19essaie-facturier.zip (143.05 Ko)

le 2ème model est le bon

Bonjour,

Je viens de finir une facture entreprise automatisé par formulaire qui se rapproche dans l'idée au votre, je pourrai peut être vous aider

Mais j'ai rien compris à la demande, a quoi corresponds A22 de la feuille facture ??

Peut être que d'autres membres auront mieux compris :)

Bonjour, alors an A22 (Réf) doit apparaitre la réf de l'article que le client a commandé qui apparait dans la feuille Base facturation a partir de la ligne 10 (Quantité et modèle de chaussure) dans la ligne 2 apparait le numéro de facture.

Bonsoir,

Un essaie, mais je ne suis pas très satisfait c'est un peu lent niveau boucle, vu le nombre de colonne que tu as et de ligne :

Si quelqu'un passe pour l'améliorer ou proposer mieux et apprendre :)

Code a coller dans la feuille

J'ai préferer partir sur des tableaux, donc j'ai insérer un tableau dans facture et base facturation et observe le résultat

Private Sub Worksheet_Change(ByVal Target As Range)

    Application.ScreenUpdating = False

    Dim Ligne As Long, Dl As Long, LigneFac As long, Colonne As Integer

    If Not Intersect(Target, Range("H2")) Is Nothing Then

        Dl = Sheets("Base facturation").[A10].End(xlDown).Row

        'Vider la facture
        With Sheets("Facture")
            On Error Resume Next
            .ListObjects(1).DataBodyRange.Delete
            On Error GoTo 0
        End With

        For Ligne = 11 To Dl
            For Colonne = 3 To 1002
                If Sheets("Base facturation").Cells(2, Colonne) = Sheets("Facture").Range("H2") Then
                    If Sheets("Base facturation").Cells(Ligne, Colonne) > 0 Then

                        If Sheets("Facture").Range("C21") <> Empty Then
                        Sheets("Facture").ListObjects(1).ListRows.Add
                        LigneFac = Sheets("Facture").Range("C20").End(xlDown).Row + 1
                        Else
                        LigneFac = 21
                        End If

                        'Placer les infos des articles
                        Range("C" & LigneFac) = Mid(Sheets("Base facturation").Range("A" & Ligne), 5, 5)

                    End If
                End If
            Next Colonne
        Next Ligne

    End If

    Application.ScreenUpdating = True

End Sub

Bon courage

16essaie-facturier.zip (199.27 Ko)
Rechercher des sujets similaires à "saisie automatique facturier"