XL 2019 numerotation et nommination automatique facture

bauerjackob

XLDnaute Junior
bonjour mes amis
J'ai un petit soucis sur la "renommination automatique " de mes facture deja transformé en format PDF. j'ai deja fait le transformation en PDF mais la renomination suivant le numero de facrure en excel n'aboutit pas. (Proforma N°:FPAG-2024-001)
Je voudrais auusii solliciter votre aide, quand je clique sur le bouton nouvelle facture, qu'excel me donne un fichier vierge sans effacer les donnéés en haut du fichier, mais avec une nouvelle numerotaion ( voir fichier d'exemple)
merci beaucoup
 

Pièces jointes

  • trav XLM 1.xlsm
    23.8 KB · Affichages: 16
  • Proforma_.pdf
    410.8 KB · Affichages: 12

patricktoulon

XLDnaute Barbatruc
Bonjour à tous
tout d'abords on ne fait pas une numérotation avec du string
même si en bidouillant un peu du vba on y arrive (une numérotation c'est 1,2,3,etc...)
pour formater avec un texte on appliquera un format forcé sur un nombre avec les guillemets dans le numberformat
ici en l’occurrence le 1 va se transformer en "N°_FPAG-2024-001"
voir capture ci dessous
on voit la vrai valeur dans la barre de formule et ce qui est affiché dans la cellule

1711542544810.png


il nous reste donc plus qu'a incrémenter la cellule E5 de +1
sauf qu'une incrémentation simple comme ça (avec un +1)peut induire un cafoutch dans ton dossier de facture
en effet une facture annulée ou supprimée ,etc...
il faut donc boucler sur les fichiers pour trouver le dernier "N°_FPAG-2024-00X"
a fin d'avoir une continuité ordonné de numéro de facture
pour éviter les nom interdit avec DIR j'ai remplacé les deux point par le grand tiret


de ce fait dans la recherche on ne cherchera pas la [E5].value dans le dossier mais la [E5].text
perso j'ai formaté a 4 chiffres en plus de la chaine devant 9999 facture possibles
on va donc boucler avec un dir sur 9999 nom de fichier
et on sortira avec la variable "q" si ça dépasse les 150 factures non trouvées

çà permet un grande marge dans tes factures au cas ou tu en supprime quelques unes
pour le coup j'attache donc cette macro a ton bouton
VB:
Sub BtNewFacture_Cliquer()
   Dim a&, i&, nomfichier$
   For i = 1 To 9999
         nomfichier = ThisWorkbook.Path & "\Proforma_" & Format(i, """N°_FPAG-2024-""0000"".""pdf")
         DoEvents
          If Dir(nomfichier) <> "" Then a = i:  Else q = q + 1
    If q > 150 Then Exit For
    Next
[E5].Value = a + 1
End Sub
et voila là tu est paré pour 9999 factures
il n'y a pas d'erreur ou confusion possible même si entre temps tu en supprime quelques unes dans ton dossier

;)
 

Pièces jointes

  • 1711542684580.png
    1711542684580.png
    92.1 KB · Affichages: 9
  • trav XLM 1.xlsm
    23.8 KB · Affichages: 9

bauerjackob

XLDnaute Junior
Bonjour à tous
tout d'abords on ne fait pas une numérotation avec du string
même si en bidouillant un peu du vba on y arrive (une numérotation c'est 1,2,3,etc...)
pour formater avec un texte on appliquera un format forcé sur un nombre avec les guillemets dans le numberformat
ici en l’occurrence le 1 va se transformer en "N°_FPAG-2024-001"
voir capture ci dessous
on voit la vrai valeur dans la barre de formule et ce qui est affiché dans la cellule

Regarde la pièce jointe 1193630

il nous reste donc plus qu'a incrémenter la cellule E5 de +1
sauf qu'une incrémentation simple comme ça (avec un +1)peut induire un cafoutch dans ton dossier de facture
en effet une facture annulée ou supprimée ,etc...
il faut donc boucler sur les fichiers pour trouver le dernier "N°_FPAG-2024-00X"
a fin d'avoir une continuité ordonné de numéro de facture
pour éviter les nom interdit avec DIR j'ai remplacé les deux point par le grand tiret


de ce fait dans la recherche on ne cherchera pas la [E5].value dans le dossier mais la [E5].text
perso j'ai formaté a 4 chiffres en plus de la chaine devant 9999 facture possibles
on va donc boucler avec un dir sur 9999 nom de fichier
et on sortira avec la variable "q" si ça dépasse les 150 factures non trouvées

çà permet un grande marge dans tes factures au cas ou tu en supprime quelques unes
pour le coup j'attache donc cette macro a ton bouton
VB:
Sub BtNewFacture_Cliquer()
   Dim a&, i&, nomfichier$
   For i = 1 To 9999
         nomfichier = ThisWorkbook.Path & "\Proforma_" & Format(i, """N°_FPAG-2024-""0000"".""pdf")
         DoEvents
          If Dir(nomfichier) <> "" Then a = i:  Else q = q + 1
    If q > 150 Then Exit For
    Next
[E5].Value = a + 1
End Sub
et voila là tu est paré pour 9999 factures
il n'y a pas d'erreur ou confusion possible même si entre temps tu en supprime quelques unes dans ton dossier

;)
Merci mon ami
 

Discussions similaires

Statistiques des forums

Discussions
313 281
Messages
2 096 785
Membres
106 748
dernier inscrit
Abdel93