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
Bonjour à tous 1° 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
2° 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
3° 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
Bonjour à tous 1° 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
2° 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
3° 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