Incrémentation automatique de No de facture

Je travaille sur un projet,mais je suis collé depuis quelques jours.je veux incrémenter un No pour ma facture... ce qui dit apres avoir archiver la vente que le numero de facture change.je suis en VBA j’ai deja tout fait ce qui me retarde est le Numéro. J ai essayé de donner un numéro normal et j ai réussi a l ‘incrémenter mais ca ne me suffit pas je veux que ce No comprenne des lettres- numero-Mois exemple :FACT-001-OCT ce qui dois changer,c est le le numéro et le mois par exemple: si le mois change le no de facture devient 001-NOV et le numero lui incremente apres chaque Vente si c etait 001 apres une vente que cela devient 002 donc si vous savez une facon en VBA de le faire alors merci de bien vouloir m’aider

2 réponses

  1. Bonjour le fil, bonjour le forum,

    Comme tu ne précises rien sur l'emplacement des données il te faudra adapter le code ci-dessous. Il faudra aussi un premier numéro de facture. Les mois sont JAN / FÉV / MAR / AVR / MAI / JUN / JUL / AOÛ / SEP / OCT / NOV / DÉC mais tu pourras changer dans le code si ça ne te convient pas.
    Le code :
    Sub Macro1()
    Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
    Dim M As String 'déclare la variable M (Mois)
    Dim ANF As String 'déclare la variable ANF (Ancien Numéro de Facture)
    Dim NAF As Integer 'déclare la variable NAF (Numéro de l'Ancienne Facture)
    Dim MAF As String 'déclare la variable MAF (Mois de l'ancienne Facture)
    Dim NNF As String 'déclare la variable DL (Nouveau Numéro de Facture)
    
    DL = Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée Dl de la colonne A
    M = Choose(Month(CDate(Date)), "JAN", "FÉV", "MAR", "AVR", "MAI", "JUN", "JUL", "AOÛ", "SEP", "OCT", "NOV", "DEC") 'en fonction du mois en chiffre de la date, définit le mois M en lettres
    ANF = Cells(DL, "A").Value 'définit l'ancien numéro de facture ANF dans la cellule ligne DL colonne A
    NAF = CInt(Split(ANF, "-")(1)) 'définit le numéro de l'ancienne facture NAF
    MAF = Split(ANF, "-")(2) 'définit le mois de l'ancienne facture MAF
    'définit le numéro de la nouvelle facture NNF (si le mois de la date est inchangé par rapport à l'ancien munéro, rajoute 1 à l'ancien numéro, sinon repart de 0)
    NNF = IIf(MAF = M, "FACT-" & Format(NAF + 1, "000") & "-" & MAF, "FACT-000-" & M)
    Cells(DL + 1, "A").Value = NNF 'recvoie le nouveau numéro de facture NNF dans la cellule ligne LD+1 colonne A
    End Sub


    0
    1. Bonjour,j ai un petit problème,depuis plus de deux jour je travaille pour incrémenter un No de facture j’y suis parvenu mais cela ne me suffit pas puisque je veux que mon numéro comprenne Des lettres-numero-mois ex:FACT-001-OCT mon problème n est pas de le mettre dans une celule avec des formules j ai essayer et j’y suis parvenu,je compte utiliser cette facture pour effectuer des Ventes donc j ai fait une Macro et c est la que je n’arrive pas a incrémenter la facture après chaque Vente.j ai crée une fonction qui m’a permis de l’obtenir... function (numero,Date)
      Debut=‘’FACT-‘’
      Milieu=Format(Mid(numero,6,3)+1,’’000 ‘’)
      Fin=‘’-‘’&UCase(format(Date,’’MMM’’))
      Nouveaunum=Debut&Milieu&Fin
      Mais maintenant la mon problème c est de l’incrementer en VBA parce que cela me donne une erreur quand je fais ; sheets (‘’ventes’’).range(‘’b2’’).value=Sheets(‘’ventes ‘’).range(‘’b2).value +1
      0
    2. Heu... Et... Le code proposé ?
      Ça tombe bien je viens de m'acheter un violon et j'ai une furieuse envie d'uriner...
      0
    3. Sub Archive()
      Dim Debut as String:Dim Numero as Integer
      Dim Fin as String

      Debut=‘’FACT-‘’
      Numero=Int(Replace(Range(‘’B2’’).Value,’’FACT_’’,’’ ‘’))+1
      Fin=‘’_’’&UCase(Format(Range(‘’F2’’),’’MMM’’))

      Range(‘’B2’’).Value=Debut & Numero & Fin
      End Sub

      Ca apparait sur cette forme :FACT-1–NOV
      Mais pour pouvoir l’incrementer je dois aller a la cellule et retirer -NOV a la fin et cliquer sur le macro Archiver pour que ca devienne FACT-2-NOV
      Je peux pas voir ou est l’erreur.aidez moi svp
      NB:Sheets(‘’Vente’’).Range(‘’B2’’);c est la cellule ou je veux placer avoir mon numéro de Facture
      Sheet(’’Vente’’).Range(’’F2’’) c est la cellule ou il y a ma date.
      0
    4. @ThauThemeSub Archive()
      Dim Debut as String:Dim Numero as Integer
      Dim Fin as String

      Debut=‘’FACT-‘’
      Numero=Int(Replace(Range(‘’B2’’).Value,’’FACT_’’,’’ ‘’))+1
      Fin=‘’_’’&UCase(Format(Range(‘’F2’’),’’MMM’’))

      Range(‘’B2’’).Value=Debut & Numero & Fin
      End Sub

      Ca apparait sur cette forme :FACT-1–NOV
      Mais pour pouvoir l’incrementer je dois aller a la cellule et retirer -NOV a la fin et cliquer sur le macro Archiver pour que ca devienne FACT-2-NOV
      Je peux pas voir ou est l’erreur.aidez moi svp
      NB:Sheets(‘’Vente’’).Range(‘’B2’’);c est la cellule ou je veux placer avoir mon numéro de Facture
      Sheet(’’Vente’’).Range(’’F2’’) c est la cellule ou il y a ma date.
      0