Incrémentation automatique de No de facture

- - Dernière réponse : Whismeril
Messages postés
13952
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 novembre 2019
- 2 nov. 2019 à 08:59
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
Afficher la suite 

2 réponses

Messages postés
13952
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 novembre 2019
417
0
Merci
Bonjour

Dans un fichier à part tu stockes le dernier numéro et le moi. (Ça peut être un fichier texte)
Quand tu crées une nouvelle facture tu ouvres ce fichier, tu regarde si on est le même moi que celui stocké
  • oui tu incrémentes le numéro
  • non, tu changes le moi et remets le numéro à 1

Ensuite dans les 2 cas, tu copies le numéro , tu enregistres et fermes le fichier
Quand j'étais petit, la mer Morte n'était que malade.
George Burns
Commenter la réponse de Whismeril
Messages postés
4604
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
12 novembre 2019
118
0
Merci
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


À plus,
ThauTheme
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
ThauTheme
Messages postés
4604
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
12 novembre 2019
118 -
Heu... Et... Le code proposé ?
Ça tombe bien je viens de m'acheter un violon et j'ai une furieuse envie d'uriner...
> ThauTheme
Messages postés
4604
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
12 novembre 2019
-
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.
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.
Whismeril
Messages postés
13952
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 novembre 2019
417 -
Bonjour jsch19
Thautheme que je salue, a fait l’effort de poster un code convenablement présenté.
Merci d’en faire autant, voir ce petit tutoriel https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Commenter la réponse de ThauTheme