ITSkillsCenter
Bureautique & Productivité

Excel VBA : script de facturation avec numérotation auto

3 دقائق للقراءة
Miniature - Excel VBA : script de facturation avec numérotation auto

Automatiser la facturation sans investir dans un logiciel

Une TPE qui émet 20 à 100 factures par mois peut gagner un temps considérable avec une macro VBA qui génère automatiquement chaque facture, attribue un numéro séquentiel, l’archive et l’envoie par email. Cette solution remplace des outils à 30 euros par mois pendant plusieurs années.

Architecture du classeur

Quatre feuilles : Clients (base clients), Produits (catalogue), Facture (modèle vierge), Historique (journal des factures émises).

Feuille Facture : modèle

En-tête : nom entreprise, NINEA, adresse, téléphone, email. Encart Facturé à avec formules RECHERCHEV sur Clients. Cellule J5 : numéro de facture. Tableau de lignes : Référence, Désignation, Quantité, Prix unitaire, Total. Totaux : HT, TVA 18 pour cent, TTC.

Étape 1 : VBA de numérotation

Sub NouvelleFacture()
    Dim derniere As Long
    derniere = Application.WorksheetFunction.Max(Sheets("Historique").Range("A:A"))
    Sheets("Facture").Range("J5").Value = derniere + 1
    Sheets("Facture").Range("J7").Value = Date
    MsgBox "Nouvelle facture : " & derniere + 1
End Sub

Étape 2 : saisie client via formulaire

Insérer un bouton qui ouvre un UserForm avec liste déroulante Clients. À la sélection, les coordonnées remplissent automatiquement la facture :

Private Sub cmbClient_Change()
    Dim c As Range
    Set c = Sheets("Clients").Columns("A").Find(cmbClient.Value)
    If Not c Is Nothing Then
        Sheets("Facture").Range("B10").Value = c.Offset(0,1).Value 'Nom
        Sheets("Facture").Range("B11").Value = c.Offset(0,2).Value 'Adresse
        Sheets("Facture").Range("B12").Value = c.Offset(0,3).Value 'Ville
        Sheets("Facture").Range("B13").Value = c.Offset(0,4).Value 'NINEA
    End If
End Sub

Étape 3 : archivage automatique

Sub ArchiverFacture()
    Dim lig As Long
    lig = Sheets("Historique").Cells(Rows.Count, 1).End(xlUp).Row + 1
    Sheets("Historique").Cells(lig, 1).Value = Sheets("Facture").Range("J5").Value
    Sheets("Historique").Cells(lig, 2).Value = Sheets("Facture").Range("J7").Value
    Sheets("Historique").Cells(lig, 3).Value = Sheets("Facture").Range("B10").Value
    Sheets("Historique").Cells(lig, 4).Value = Sheets("Facture").Range("TotalTTC").Value
    Sheets("Historique").Cells(lig, 5).Value = "Émise"
End Sub

Étape 4 : export PDF

Sub ExporterPDF()
    Dim nom As String
    nom = "FA" & Sheets("Facture").Range("J5").Value & "_" & _
          Replace(Sheets("Facture").Range("B10").Value," ","_") & ".pdf"
    Sheets("Facture").ExportAsFixedFormat xlTypePDF, _
        "C:\Factures\" & nom, Quality:=xlQualityStandard
    MsgBox "Facture exportée : " & nom
End Sub

Étape 5 : envoi par email via Outlook

Sub EnvoyerFacture()
    Dim ol As Object, mail As Object
    Set ol = CreateObject("Outlook.Application")
    Set mail = ol.CreateItem(0)
    mail.To = Sheets("Facture").Range("EmailClient").Value
    mail.Subject = "Facture " & Sheets("Facture").Range("J5").Value
    mail.Body = "Bonjour, veuillez trouver ci-joint votre facture. Cordialement."
    mail.Attachments.Add "C:\Factures\FA" & Sheets("Facture").Range("J5").Value & ".pdf"
    mail.Send
End Sub

Étape 6 : suivi des paiements

Sur Historique, colonne Statut avec liste déroulante (Émise, Payée, Relancée, Contentieux). Colonne DateEcheance. Mise en forme conditionnelle : rouge si DateEcheance dépassée et Statut différent de Payée.

Étape 7 : rapport mensuel

TCD sur Historique : CA émis par mois, taux d’impayés, délai moyen de paiement. Exportable en PDF pour l’expert-comptable.

Considérations légales

Au Sénégal, les factures doivent être émises en numérotation continue (pas de saut), conservées 10 ans, mentionner NINEA et TVA séparément. Le code VBA ci-dessus respecte ces exigences.

Conclusion

Une journée d’investissement VBA peut remplacer des années d’abonnement SaaS. Solution idéale pour freelances, artisans et petites PME. Pour évoluer : un passage à QuickBooks ou Odoo devient pertinent dès 300 factures par mois.

Besoin d'un site web ?

Confiez-nous la Création de Votre Site Web

Site vitrine, e-commerce ou application web — nous transformons votre vision en réalité digitale. Accompagnement personnalisé de A à Z.

À partir de 250.000 FCFA
Parlons de Votre Projet
Publicité