Générer numéro de facture avec années+mois

Qbosc Messages postés 1 Statut Membre -  
Gyrus Messages postés 3360 Statut Membre -
Bonjour chère communauté de trouveurs de solution !

Mon problème est le suivant :

Dans l'optique de générer un numéro unique à chaque nouvelle facture que nous produisons, mon ami et moi tentons des macros sur Exel sans succès.
En effet, nous voudrions par souci de cohérence avec nos précédentes facture (sans macros) que le numéro soit toujours de ce modèle "201507-03". C'est à dire l'année, puis le mois, sans slash, puis tiret, puis le numéro de facture du mois courant, de 01 à 99. De cette manière les factures seront toujours rangées dans un dossier dans l'ordre de l'année, puis du mois, puis du numéro de facture.

Après pléthore essais pour récupérer juste l'année sur la fonction AUJOURDHUI(), puis juste le mois etc.., sans succès, je m'en remets à vous. J'espère sincèrement que quelqu'un ici aura la solution à laquelle nous n'aurions pas pensé.

Merci d'avance pour votre aide !

Quentin

Suppression des majuscules dans le titre. La modération.

2 réponses

  1. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonsoir

    Macro générant le numéro et stockant dans une cellule le dernier quantième (ici en A1 de la 1ere feuille; à adapter à ta guise)
    Sub numero()
    If Month(Date) < 10 Then m = "0" & Month(Date) Else m = Month(Date)
    num = Year(Date) & m & "-" & Sheets(1).Range("A1") + 1
    Sheets(1).Range("A1") = Sheets(1).Range("A1") + 1
    End Sub

    0
  2. Gyrus Messages postés 3360 Statut Membre 526
     
    Bonjour Qbosc,
    bonjour via55,

    Une proposition prenant en compte le changement de mois ou d'année :
    Sub Test()
    Dim Num_Facture As Integer
    With Worksheets("Feuil1")
    If CInt(Left(.Range("A1"), 4)) <> Year(Date) Or CInt(Mid(.Range("A1"), 5, 2)) <> Month(Date) Then
    Num_Facture = 1
    Else
    Num_Facture = CInt(Right(.Range("A1"), Len(.Range("A1")) - 7)) + 1
    End If
    .Range("A1") = Year(Date) & Format(Month(Date), "00") & "-" & Format(Num_Facture, "00")
    End With
    End Sub

    Rq : la cellule A1 doit avoir été initialisée avec un numerode facture du type "201507-03".

    A+
    0