Incrémentation N° de facture

condors.s

XLDnaute Occasionnel
Bonjour à tous,
Je souhaiterais faire une petite macro pour incrémenter automatiquement un numéro de facture.
A partir de ce que j'ai trouvé sur le web, j'ai compris qu'il fallait créer un fichier txt reprenant le dernier num donné pour pouvoir appliqué le num suivant à la prochaine facture.

J'ai donc un peu modifié les codes trouvés pour aboutir à ceci

Code:
Sub CommandButton1_Click()
fichier = ThisWorkbook.Name
Dim nf As String
deb = Right(Year(Now), 2) & Right(Month(Now) + 100, 2)
chemin = ThisWorkbook.Path
On Error Resume Next
canal = FreeFile
Open chemin & "\N°facture.txt" For Input As #canal
Input #canal, nf
Close #canal
If Left(nf, 4) = deb Then
nf = CStr(deb & Right(nf + 1001, 3))
Else
nf = CStr(deb & "001")
End If
Open chemin & "\N°facture.txt" For Output As #canal
Copy #canal
Close #canal
Paste [Facture N°!D5]
End Sub

Il y a un bug dans la fin de la macro, au niveau du copié/collé du doc txt.
Quelqu'un aurait il un tuyau.

Merci à tous
 

kllmoon

XLDnaute Occasionnel
Re : Incrémentation N° de facture

Pourquoi te compliquer la vie ainsi? Assigne le # de facture à une cellule hors zone d'impression et incrémente la à l'impression ou au double clic ou à l'ouverture ou à la fermeture ou......
 

condors.s

XLDnaute Occasionnel
Re : Incrémentation N° de facture

Merci kllmoon,
mais je ne vois pas ce que tu veux dire!
Je cherche a pouvoir créer un numéro de facture unique et chronologique à chaque création de facture.

A titre d'exemple, le fichier joint.
Je veux qu'en remplissant les champs non protégé puis en cliquant sur le bouton :
- un num de facture soit généré en D5 à partir de cette macro (car je ne suis pas satisfait de la formule actuelle)
- la facture soit imprimée en pdf et stockée à l'endroit de mon choix (ok ca marche)
- le détail de la facture soit reporté dans l'onglet BD pouvant me servir à faire une intégration dans la compta ou à faire des stats (a finaliser)

Pour le moment je bloque pas mal sur la 1ere partie.

Merci a tous

PS: pour info, les feuilles sont protégées sans mot de passe.
 

Pièces jointes

  • Factures test.zip
    40.5 KB · Affichages: 327
  • Factures test.zip
    40.5 KB · Affichages: 318
  • Factures test.zip
    40.5 KB · Affichages: 309
Dernière édition:

kllmoon

XLDnaute Occasionnel
Re : Incrémentation N° de facture

Essais ceci, En G5 inscris un chiffre. La formule pour ta facture inscris
Code:
="F"&ANNEE(D4) & "-" & G5 + 1

Dans ton bouton Générer à la dernière ligne, tu ajoute la commande G5.value = G5.value + 1

Ceci aura pour effet d'incrémenter ton numéro de facture à chaque fois que tu en génère une nouvelle.
 

condors.s

XLDnaute Occasionnel
Re : Incrémentation N° de facture

Merci kllmoon,
Je vois bien ou tu veux aller...

J'ai mis le code en début de la macro car je veux affecter un num avant l'impression, mais ca ne marche pas!

Si tu sais pourquoi ca me depannerait pas mal.

Un autre point dans le chemin d'enregistrement du pdf, je voudrais enlever tout le baratin "c:/documents&setting...../..." pour pourvoir enregistrer automatiquement dans un sous dossier "factures" situé dans le répertoire ou est le fichier de base.

Merci pour tout
 

Pièces jointes

  • Factures test.zip
    40.6 KB · Affichages: 217
  • Factures test.zip
    40.6 KB · Affichages: 213
  • Factures test.zip
    40.6 KB · Affichages: 233

kllmoon

XLDnaute Occasionnel
Re : Incrémentation N° de facture

Salut, pour l'incrémentation utilise le format suivant
Code:
Sheets("Facture N°").Range("G5").Value = Sheets("Facture N°").Range("G5").Value + 1

Pour la sauvegarde, utilise
Code:
ActiveWorkbook.path & "\factures"
Ceci fera la sauvegarde dans un sous répertoire à celui de ton fichier de base.

Rajout :

donc ceci devrait marcher pour toi

Code:
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        ActiveWorkbook.path & "\factures" & Sheets("Facture N°").Range("D5") & Sheets("Facture N°").Range("A9") & ".pdf" _
        , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
        :=False, OpenAfterPublish:=True
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 230
Messages
2 086 428
Membres
103 207
dernier inscrit
Michel67