Incrémentation automatique AnnéeMois+Numéro

ALPIJO

XLDnaute Nouveau
Bonjour à tous,

Je souhaiterais incrémenter un numéro de facture automatiquement et que ce numéro soit composer de l'année, du mois et d'un numéro qui sera réinitialiser à 0 tous les mois (exemple :201812-001 etc..)

J'avais créer un code vba me permettant d'enregistrer ce numéro dans un document Text (Compteur) et que l'on de l'ouverture la prochaine fois du fichier excel que le numéro sera augmenter de 1 dans la case D3.

Mon code marchais bien mais je n'arrive pas à le paramétrer pour ma nouvelle version.

Voici mon code d'enregistrement du nouveau numéro dans le fichier compteur.txt :

Sub numerotation()

Dim chemin_fichier As String: Dim Numero As Integer
Dim objet_fichier: Dim le_fichier

chemin_fichier = ThisWorkbook.Path & "\Compteur.txt"

Numero = Range("D3").Value

Set objet_fichier = CreateObject("scripting.filesystemobject")
Set le_fichier = objet_fichier.getfile(chemin_fichier)

le_fichier.Attributes = 0

Open chemin_fichier For Output As #1
Print #1, Replace(Numero, "", "") + 1
Close #1

le_fichier.Attributes = 3

End Sub


Voici mon code pour la récupération du numéro qui est dans le fichier compteur:

Private Sub worksheet_activate()
Dim chemin_fichier As String: Dim Numero As String

chemin_fichier = ThisWorkbook.Path & "\Compteur.txt"

Open chemin_fichier For Input As #1
Line Input #1, Numero
Close #1

Range("D3").Value = "" & Numero
End Sub

Ce code marche très bien si je ne souhaite que le numéro. Or maintenant, je voudrais qu'il y ai avant le numéro l'année et le mois que l'on va appeler "Date" et que le numéro se situant après la date se réinitialise à 0 tous les mois

Exemple : J'ai le numéro 201812-013 à l'ouverture de mon fichier Excel le 28/12/2018 et je voudrais que lorsque j'ai cliquer sur le bouton archiver qui correspond à mon 1er code (Sub Numérotation) que cela enregistre dans le fichier compteur 014.
De plus, je voudrais que la prochaine fois que j'ouvre le fichier que cela m'affiche dans la case D3 soit 201812-014 (ce qui correspond au fichier compteur) si je suis toujours en Décembre 2018 soit 201901-001 si j'ai attaqué un nouveau mois => qui sera representer dans mon code n°2

Je vous en remercie infiniment pour toute l'aide
 
Dernière édition:

Jacky67

XLDnaute Barbatruc
Bonjour,
Une proposition sans fichier annexe, mais avec un nom (LeNum)

VB:
Private Sub Workbook_Open()
On Error Resume Next  ' si pas de cr?ation de nom
If Month(Date) <> CLng(Mid([lenum], 5, 2)) Or Year(Date) <> CLng(Left([lenum], 4)) Then
  ActiveWorkbook.Names.Add Name:="LeNum", RefersTo:=Format(Date, "yyyymm-001")
Else
  ActiveWorkbook.Names.Add Name:="LeNum", RefersTo:=Format(Date, "yyyymm-") & Format((Right([lenum], 3) + 1), "000")
End If
Feuil1.[d3] = [lenum] ' adapter le CodeName de la feuille
End Sub

Ps: Attention toutefois
https://www.henrri.com/facture-word-excel-interdite-2018/
 
Dernière édition:

Discussions similaires

Réponses
12
Affichages
225

Statistiques des forums

Discussions
311 724
Messages
2 081 936
Membres
101 844
dernier inscrit
pktla