Incrémentation du n° de facture

  • Initiateur de la discussion Initiateur de la discussion ClaudeC
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

ClaudeC

Guest
Bonsoir à tous les forumeurs,

J'ai déjà élaboré un modèle de facture, mais chaque fois que je crée une nouvelle facture (au départ de ce modèle), je dois :
1° modifier son numéro (sans me tromper) et
2° l'enregistrer sous ce même numéro, dans un répertoire bien précis.

Ne serait-il pas possible d'automatiser ces 2 tâches ?

J'apporte ci-après quelques précisions et reflexions :

1/ Dans mon modèle, le numéro de facture est 0. Alors, à chaque fois que j'éditerai une nouvelle facture, elle portera le n° 1 ? Non ?

2/ Ne serait-il pas imaginable de créer un fichier reprenant la liste de toutes les factures déjà créées. Ainsi, le code se réfèrerait à la dernière créée pour incrémenter la nouvelle.

3/ Ou alors, créer un compteur du nombre de fichier existant dans le répertoire "D:\FacturierOut\2004\" où sont enregistrées toutes les factures. Ce nombre augmenté d'1, sera le n° de la nouvelle facture.

Aussi, pour tout simplifier, apprenez que mes n° de facture (et nom de fichier) ont le format suivant : 2004-01-000(.xls), où 2004 est l'année en cours (qui l'eu cru 🙂 ); 01, le trimestre; et 000, le numéro de la facture.
Ce format est obtenu par concaténation, et je ne sais pas si j'arriverrai à faire écrire "001" pour "1".

Déjà merci à celles et ceux qui pourront me donner un coup de main.

A+,
Claude
 
Voici un bout de code qui pourrait faire l'affaire,pensez à le modifier selon vos besoins.

apellez cette fonction au moment de la création de votre facture

Dim l As Integer 'l recupere le numero de la derniere ligne
Dim dernier_num As Integer 'le dernier numéro
Dim num As Integer 'ici le num facture nouveau

Sub increment()

l = Workbooks(1).Worksheets(1).Range("A1").CurrentRegion.Rows.Count

num = Workbooks(1).Worksheets(1).Cells(l, 1).Value

dernier_num = num + 1

Workbooks(1).Worksheets(1).Cells(dernier_num, 1).Value = dernier_num

End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
11
Affichages
537
Réponses
59
Affichages
5 K
Retour