Incrémenter des numéros de factures

Fermé
flobat - 4 juil. 2005 à 11:13
choum33 Messages postés 1 Date d'inscription mercredi 5 décembre 2012 Statut Membre Dernière intervention 5 décembre 2012 - 5 déc. 2012 à 22:27
Bonjour,

J'ai un problème avec Excel. Je travaille régulièrement sur des factures et j'aimerais incrémenter les numéros de factures automatiquement après chaque enregistrement (ancien numéro + 1). Comment faire ?

Merci d'avance pour votre aide.

8 réponses

Erucia Messages postés 1057 Date d'inscription jeudi 2 décembre 2004 Statut Membre Dernière intervention 16 juin 2014 151
4 juil. 2005 à 14:53
Bonjour,

ça me rappelle un exercice que j'avais fait à l'école, malheureusement c'est bien loin tout ça, je pencherais pour l'option faire du code en vba..

à creuser..
2
Merci quand même pour ta réponse.
Je suis de ton avis, je pense qu'il faut utiliser une macro VBA. J'ai fait un essai non concluant, mais je ne désespère pas.
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
5 juil. 2005 à 22:38
bonjour

je ne sais pas si tu as trouvé ta solution mais je te propose celle-ci :

dans ta feuille, tu nommes la cellule qui contient le numéro de facture :
"no_facture" pour mon exemple mais tu peux choisir un autre nom.


avec ALT + F11 tu ouvres VBA et dans thisworkbook tu copies cette macro :

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Range("no_facture").Value = Range("no_facture").Value + 1
End Sub


à chaque fois que tu va sauver ton classeur, ton numéro de facture
est automatiquement incrémenté.

il me semble que c'était bien ce que tu voulais ?
1
C'est génial, ça marche !!!

Je n'avais pas encore trouvé la solution, mais grâce à toi, c'est fait.
Merci beaucoup pour ton aide, c'est exactement ce que je voulais.
0
Bonjour, je suis désolée de m'interposer de la sorte dans la discussion mais j'ai trouvé presque'exactement ce que je voulais dans ton énoncé. Sauf que mon numéro de facture comporte au début 4 lettres, du genre ABEF20080001. Je devrais donc extraire les quatres derniers chiffres auxquels je devrais rajouter 1. Est-ce que tu peux m'aider. merci et bonne journée
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684 > Émilie
22 mai 2008 à 20:22
bonjour

Il suffit de mettre ce code et cela fonctionnera comme tu le souhaites.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Range("no_facture").Value = Left(Range("no_facture").Value, 8) _
        & Format(Right(Range("no_facture").Value, 4) + 1, "0000")
End Sub
0
hello,
franchement super ton vba !
est il possible de faire pareil pour incrément les onglets, exemple : j'ai un onglet qui s'appelle facture 1 en la copiant j'aimerais que l'onglet (nom de la feuille) s'incrémente automatiquement.
Merci d'avance,
must
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
27 déc. 2007 à 23:17
bonjour

Pourrais-tu détailler un peu la procédure que tu utilises.

Si tu crées une nouvelle feuille il est possible de lui donner un nom particulier en VBA et éventuellement de copier une feuille.

Si tu fais une copie de feuille ce n'est pas un événement.
0
Bonjour

J'ai un petit souci, la macro faite par un internaute via ce forum fonctionne mais lorsque je souhaite incrémenter un nouveau numéro en repartant sur une nouvelle facture à paritr de mon modèle et en appuyant sur le bouton "incrmenter numéro" il me déclanche un numéro suivant : 10.09.01.1900 sachant que je souhaite que ma numérotation commence toujours par le n°.j.m.a par exemple n° 51.2.03.09 et ainsi de suite en tenant bien compte du jour et du mois. Je pense qu'en principe excel peu tenir compte de jour en question même si il y a une ou plusieurs factures dans la même journée ou si nous changeons de journée, par exemple : 51.2.03.09 puis
52.2.03.09 par contre 53.3.03.09.

D'autre part j'ai créé un bouton "nouvelle facture" afin qu'en cliquant sur ce bouton j'arrive directement sur mon modèle.

Pouvez-vous m'aider car je bloque complètement, ci-joint le fichier excel : https://www.cjoint.com/?ddlSsqfOIh

Par avance je vous remercie.
KIKI53
0
choum33 Messages postés 1 Date d'inscription mercredi 5 décembre 2012 Statut Membre Dernière intervention 5 décembre 2012
5 déc. 2012 à 22:27
Bonjour, es ce possible d'avoir ton fichier Excel pour voir comment cela fonction, merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
merci d'avance deme permettre de poser la question
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
1 mars 2009 à 15:55
bonjour

Ta codification est presque correcte et si tu changes cette ligne, cela devrait mieux te convenir.
    nFact = Num & "." & Format(Date, "dd.mm.yyyy")

En fait, pour obtenir le formatage du jour de facture, il faut que tu utilises la date du jour et non ton numéro car lui ne contient en aucune façon la date.
0
shoune34 Messages postés 1 Date d'inscription vendredi 17 juillet 2009 Statut Membre Dernière intervention 17 juillet 2009
17 juil. 2009 à 11:04
Bonjour,
J'ai trouvé pour incrementer un n° auto pour chaque facture dans un nouveau classeur mais ils commencent par 1
Comment je pourrai faire pour incrementer un n° de facture commençant par 2000 en VBA

Merci beaucoup pour votre aide .
0
electra85 Messages postés 3 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 10 février 2010
10 févr. 2010 à 10:29
en access 2007 j'ai fait Une table tblFacture qui regroupe les factures établies par le service commercial.
• Les factures seront numérotées : FAYYMMXXX de telle sorte que pour chaque mois (MM) de
l'année (YY) un compteur (XXX) soit incrémenté à partir de 1 à chaque nouveau mois, la valeur du champ Indice redémarre à 1. La mise en forme du numéro de facture peut alors être obtenu à l'aide de l'expression suivante :

="FA" & Format([DateFacture];"yymm") & Format([Indice];"000")

mon code VBA est le suivant tt marche bien sauf que le résultat obtenu n'affiche pas l'année par exemple ds le mois 01 de l'année 2010 j'obtient "FAyy01001" pouvez me donner une rep!!! il est ou le prob.???

CODE EN VBA:

Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim oRst As DAO.Recordset
If Me.NewRecord Then
Set oRst = CurrentDb.OpenRecordset( _
"SELECT Max(Indice) FROM tblFacture_ac2007 WHERE Format(DateFacture,""yymm"")=" & _
Chr(34) & Format(Me.DateFacture, "yymm") & Chr(34))
With oRst
If Not .EOF Then
Me![Indice].Value = Nz(.Fields(0).Value, 0) + 1
Else
Me![Indice].Value = 1
End If
.Close
End With
End If
End Sub
0