bonjour les ami(e)s
je fais des recherches mais en vain
je recherche a faire sur ma fiche Excel que je joint un numéro de facture qui lorsque j'ouvre une nouvelle feuille vierge un nouveau numéro de facture sera automatiquement inscrit .
j'aimerais que dans ce numéro de facture on y retrouve la date du jour. exemple ; j'ouvre une nouvelle facture et par exemple in est inscrit 140620140001 lorsque j'ouvre une nouvelle le même jour elle inscrira par exemple 140620140002
si par exemple 2 jour passe et Jai une nouvelle facture a crée j'ouvre ma nouvelle page et il sera inscrit 160620140003 .
je veux que la date du jour change mais aussi le numéro a la fin 0001 augmente de 1 a chaque nouvelle ouverture d'une nouvelle facture .
je veut par exemple que lorsque l'année change le numéro 0001 par exemple recommence a 0001
mais....
je veux que lorsque jais enregistrer ma facture dans une fiche client je veux que la date et le numéro ne change plus a chaque jour ou chaque ouverture .
Re : comment crée un numéro de fascture automatique
bonjour et merci Denis 123
j'aimerais qu'il n'y ais pas de bouton je veux que Excel gère ca de lui même si possible et que a la fil de l'année il recommence a 0
et de plus comment faire pour que la date ne change plus un cout que jais enregistrer une facture client .
merci
Re : comment crée un numéro de fascture automatique
Bonjour DoubleZéro, Denis, Patrick et le Forum
Déjà bravo pour le fichier Excel joint, estétiquement la facture / Devis est claire.
Aprés les couleurs , tous le monde a ses préférences ....
Techniquement j'ai constaté des cellules fusionnées contenant et l'entête du critére et le critére lui même ,
pas top ppour les traitements futurs
A oui Courriel prend 2 R, ce sera toujours plus sérieux
Je pense que nous avons tous le même processus en tête,
Déjà quelques exemples très bien correspondant techniquement à ta demande
Un premier problème majeur
Pour traiter le changement de facture ...
HTML:
je recherche a faire sur ma fiche Excel que je joint un numéro de facture qui lorsque
j'ouvre une nouvelle feuille vierge un nouveau numéro de facture sera automatiquement inscrit .
Ce que tu ne veux pas :
HTML:
j'aimerais qu'il n'y ais pas de bouton je veux que Excel gère ca de lui même si possible et que a la fil de l'année il recommence a 0
et de plus comment faire pour que la date ne change plus un cout que jais enregistrer une facture client .
alors expliques nous ton mode opératoire lorsque tu crées une nouvelle facture ?
Peut être :
Copier coller un onglet modele
ou
effacer les champs de l'onglet Facture et commencer une nouvelle saisie
Comment procédes tu pour enregistrer ta facture,
Je crois comprendre que tu enregistres la facture dans un fichier Excel individuel , c'est bien cela
Bon en début d'année l'on reprends pas à zéro mais à 1 en fait , non
Le format de facture selon DoubleZéro me parait trés clair, préféres tu quand même celui que tu proposes toi
HTML:
140620140001
Le suivi ou Chrono pourrait être beaucoup plus utile si tu enregistrais les infos facture principales
car l'on à déjà le mécanisque de copie de l'information pour ne pas réutiliser le même numéro ,
pour les recherches , la compta ou autre, tu n'aurais pas à te battre avec des factures papier ou des fichiers individuels.
Voilà , pour le coup , la balle est dans ton camps .
je recherche a faire sur ma fiche Excel que je joint un numéro de facture qui lorsque j'ouvre une nouvelle feuille vierge un nouveau numéro de facture sera automatiquement inscrit .
Alors dans le fichier joint insérez des feuilles vierges (clic droit sur un onglet et Insérer).
La macro se trouve dans ThisWorkbook :
Code:
Private Sub Workbook_NewSheet(ByVal Sh As Object)
Dim nom$
nom = Sh.Name
Application.DisplayAlerts = False
Sh.Delete
Sheets("Facture de service").Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = nom
If CStr(Year(Date)) <> Mid(CStr([NF]), 5, 4) Then Me.Names.Add "NF", 111111110
[F4] = "'" & Format(Date, "ddmmyyyy") & Format(Mid([NF], 9) + 1, "0000")
Me.Names.Add "NF", "=""" & [F4] & """" 'mémorisation du dernier numéro de facture
End Sub
Le dernier numéro de facture est mémorisé dans le nom définiNF.
Edit : le temps de faire la macro du monde est arrivé, bonjour DoubleZero, camarchepas.
Re : comment crée un numéro de fascture automatique
Re,
Avec ce fichier (2) :
- on peut masquer la feuille modèle Facture de service
- le nom NF est masqué.
Code:
Private Sub Workbook_NewSheet(ByVal Sh As Object)
Dim nom$, vis As Integer
nom = Sh.Name
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Sh.Delete
With Sheets("Facture de service")
vis = .Visible
.Visible = True
.Copy After:=Sheets(Sheets.Count)
.Visible = vis
End With
ActiveSheet.Name = nom
If CStr(Year(Date)) <> Mid(CStr([NF]), 5, 4) Then Me.Names.Add "NF", 111111110
[F4] = "'" & Format(Date, "ddmmyyyy") & Format(Mid([NF], 9) + 1, "0000")
Me.Names.Add "NF", "=""" & [F4] & """", Visible:=False 'nom masqué
End Sub
Re : comment crée un numéro de fascture automatique
Bonjour @ tous,
J'ai vu ce post hier, et j'en ai fait un abonnement j'ai beaucoup apprécié dès la lecture du titre, même si je sais très bien que je ne peux pas aider sur ce coup là.
Pour la numérotation de factures comme ils ont dit les amis, il vaut mieux que ce soit "AAMMJJ00000" pour problème de tri chronologique, car avec ce que tu demandes un jour tu vas avoir un problème comme 220320140001 et 010420140002 pour faire un tri croissant on va se trouver avec la facture 2 en premier.
Tu n'es pas obligé de faire "AAAAMMJJ00000", tu peux enlever le 20 puisque je suis sûr que tu ne vas pas utiliser le fichier jusqu'à 2100..
Je préfère un nouveau fichier à la place d'un nouvel onglet, pour les onglets on est toujours limité on peut faire 400 ou 600 mais le problème c'est que le fichier deviendras trop lent avec.
@ Job75 :
Pour la date de facturation, je préfère éviter la fonction AUJOURDHUI() vous savez très bien pourquoi, les macros peuvent insérer la date du système automatiquement ce sera mieux, sinon il peut le faire manuellement par Ctrl+;.
Re : comment crée un numéro de fascture automatique
bonjour a tous et merci pour vos nombreuse réponse
oui pour ce qui est de la date le 20 nais pas oublier au début
et oui je peu mettre l'année en premier ...
mais je ne comprend pas le fichier cacher etc de job 75
moi en fais je veut juste ouvrir ma feuille de facture model vierge que je joint et chaque foie que jouvre cette feuille vierge elle agrémente un numéro automatiquement sans bouton.
ensuite moi inscrit les donner client les prix etc et j'enregistre la facture dans un fichier au nom du client en changent le nom du fichier par le numéro de facture et le nom du client .
donc en bref je veut que exemple je vous fais une facture bon
j'ouvre ma feuille model de facture
un numéro de facture s'inscrit seul
j'entre les donner de votre facture
ensuite j'enregistre le tous en changent le non de la fiche et l'enregistre dans une fiche client que jais crée
donc mon model vierge reste intacte
merci
Re : comment crée un numéro de fascture automatique
Re,
Maintenant voici comme vous le souhaitez une solution qui crée un fichier pour chaque facture.
Elle est nettement plus difficile à comprendre, voyez les macros dans ThisWorkbook :
Code:
Private Sub Workbook_Open()
Dim chemin$, nomfich$, n&, num&
Sheets("Facture de service").Activate 'au cas où...
'---date du jour---
[F5] = Date
'---numéro de facture---
chemin = Me.Path 'chemin du dossier à adapter
nomfich = Dir(chemin & "\*xls*") '1er fichier du dossier
While nomfich <> ""
If nomfich Like "############*" Then '12 chiffres
If Left(nomfich, 4) = CStr(Year(Date)) Then
n = Val(Mid(nomfich, 9, 4))
If n > num Then num = n 'le numéro le plus grand
End If
End If
nomfich = Dir 'fichier suivant du dossier
Wend
[F4] = "'" & Format(Date, "yyyymmdd") & Format(num + 1, "0000")
Me.Saved = True 'évite l'invite à la fermeture
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUi As Boolean, Cancel As Boolean)
Dim nom$, chemin$, wb As Workbook
Cancel = True 'rend impossible l'enregistrement manuel
With Sheets("Facture de service")
nom = Application.Trim(Mid(.[C10].Value, 5)) 'à partir du 5ème caractère...
If nom = "" Then
MsgBox "Le nom n'a pas été entré..."
.[C10].Select
Else
Application.ScreenUpdating = False
Application.DisplayAlerts = False
chemin = Me.Path 'chemin du dossier à adapter
Set wb = Workbooks.Add(xlWBATWorksheet) 'nouveau document
.Copy After:=wb.Sheets(1)
wb.Sheets(1).Delete
wb.Sheets(1).Name = .[F4]
On Error Resume Next
wb.SaveAs chemin & "\" & .[F4] & " " & nom 'enregistrement
wb.Close
End If
End With
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Me.Saved = True 'évite l'invite
End Sub
Le nouveau fichier est créé :
- si le nom en C10 (attention, après "Nom:") existe
- quand on utilise la commande normale d'enregistrement du fichier.
Fichier joint.
Edit 1 : vous êtes sur Excel 2007, alors je joins aussi le fichier en .xlsm.
Edit 2 : si vous devez modifier le fichier, il faut d'abord désactiver les macros.
J'ai bien compris et bien étudié ta solution, j'ai juste proposé au demandeur de faire un fichier par facture comme sur le fil dont ton aide était précieuse.. Fil en question