comment crée un numéro de fascture automatique

patrick965

XLDnaute Impliqué
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 .


merci beaucoup...
 

Pièces jointes

  • FACTURATION LA SOLUTIONPAT HABITATION TEST.xlsx
    50.6 KB · Affichages: 74

patrick965

XLDnaute Impliqué
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
 

camarchepas

XLDnaute Barbatruc
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 .

Cordialement
 

job75

XLDnaute Barbatruc
Re : comment crée un numéro de fascture automatique

Bonjour patrick965, Denis132,

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éfini NF.

Edit : le temps de faire la macro du monde est arrivé, bonjour DoubleZero, camarchepas.

A+
 

Pièces jointes

  • FACTURATION(1).xls
    104.5 KB · Affichages: 75
  • FACTURATION(1).xls
    104.5 KB · Affichages: 94
  • FACTURATION(1).xls
    104.5 KB · Affichages: 74
Dernière édition:

job75

XLDnaute Barbatruc
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
A+
 

Pièces jointes

  • FACTURATION(2).xls
    118 KB · Affichages: 68
  • FACTURATION(2).xls
    118 KB · Affichages: 68
  • FACTURATION(2).xls
    118 KB · Affichages: 63
Dernière édition:

job75

XLDnaute Barbatruc
Re : comment crée un numéro de fascture automatique

Re,

Vous ne dites pas comment vous voulez nommer la feuille créée, on peut utiliser le numéro de facture :

Code:
ActiveSheet.Name = [F4]
Fichier (3).

A+
 

Pièces jointes

  • FACTURATION(3).xls
    118 KB · Affichages: 54
Dernière édition:

job75

XLDnaute Barbatruc
Re : comment crée un numéro de fascture automatique

Re,

Encore un p'tit truc.

L'insertion d'une feuille vierge peut de faire en lançant cette macro, par exemple par Ctrl+N :

Code:
Sub NouvelleFeuille()
'se lance par Ctrl+N
Sheets.Add
End Sub
Fichier (4).

A+
 

Pièces jointes

  • FACTURATION(4).xls
    121 KB · Affichages: 71

R@chid

XLDnaute Barbatruc
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+;.

Mes amis que je remercie beaucoup m'ont beaucoup aidé sur ce fichier, tu vas trouver utile.
https://www.excel-downloads.com/thr...-nouveau-fichier-et-pas-nouvel-onglet.216118/

@ + +
 

patrick965

XLDnaute Impliqué
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
 

job75

XLDnaute Barbatruc
Re : comment crée un numéro de fascture automatique

Re,

Vous avez tord de ne pas étudier sérieusement la solution que j'ai donnée.

Créer une feuille nouvelle pour chaque facture c'est une bonne chose, et facile à gérer.

A+
 

job75

XLDnaute Barbatruc
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.

A+
 

Pièces jointes

  • Facture modèle(1).xlsm
    55.4 KB · Affichages: 68
  • Facture modèle(1).xls
    106 KB · Affichages: 67
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa