OVH Cloud OVH Cloud

Incrémenter les noms de fichiers

2 réponses
Avatar
STEFY
Bonsoir.

Une âme charitable ;-)serait-elle prête à m'expliquer commet je pourrais
enregistrer mes fichiers en incrémentant leur nom...
En clair, j'ai créé un formulaire de facturation que j'ai appelé...
"facture"... Oui, je sais, ça ne s'invente pas !! :-))
J'aimerais beaucoup qu'à l'enregistrement, chacunes de mes factures aient le
nom de facture-n.xls, où "n" est un chiffre (ou nombre) automatiquement gnéré
supérieur au précédent...

Merci !!

STEFY

2 réponses

Avatar
Jacques93
Bonjour STEFY,

Si toutes tes factures sont dans le même répertoire (à adapter au code),
tu peux essayer ceci (à coller dans le code de ThisWorkbook) :

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean,_
Cancel As Boolean)
ActiveWorkbook.SaveAs GetName()
End Sub

Private Function GetName() As String
Dim fName As String
Dim i As Integer

fName = Dir("facture-*.xls")
i = GetNumber(fName)
While Len(fName) > 0
fName = Dir()
If Len(fName) > 0 Then
If GetNumber(fName) > i Then
i = GetNumber(fName)
End If
End If
Wend
i = i + 1
GetName = "facture-" & Format(i) & ".xls"
End Function

Private Function GetNumber(fName As String) As Integer
GetNumber = Val(Mid(fName, 9, InStr(fName, ".") - 9))
End Function


Bonsoir.

Une âme charitable ;-)serait-elle prête à m'expliquer commet je pourrais
enregistrer mes fichiers en incrémentant leur nom...
En clair, j'ai créé un formulaire de facturation que j'ai appelé...
"facture"... Oui, je sais, ça ne s'invente pas !! :-))
J'aimerais beaucoup qu'à l'enregistrement, chacunes de mes factures aient le
nom de facture-n.xls, où "n" est un chiffre (ou nombre) automatiquement gnéré
supérieur au précédent...

Merci !!

STEFY



--
Cordialement,

Jacques.

Avatar
JB
Bonjour,

PJ http://cjoint.com/?blwQh7MuCs

Classeur à enregistrer comme modèle

-Le compteur se trouve dans un classeur Compteur.xls
-La macro affecte un numéro à la sauvegarde et incrémente le
compteur de 1
-Le classeur est enregistré avec le nom Nt_Fraisxxxx
-Le bouton est caché après exécution pour que la macro ne puisse pas
être exécutée 2 fois

Le compteur peut être initialisé (en début d'année par ex)

Sub sauve()
ChDir ActiveWorkbook.Path
Application.ScreenUpdating = False
Workbooks.Open Filename:="compteur.xls"
compteur = Sheets("compteur").Range("a1")
Sheets("compteur").Range("a1") = compteur + 1
ActiveWorkbook.Save
ActiveWorkbook.Close
Range("E1") = Chr(39) & Format(compteur, "0000")
ActiveWorkbook.SaveAs Filename:="nt_frais" & Format(compteur, "000")
ActiveSheet.Buttons("bouton1").Visible = False
End Sub

Pour un fonctionnement qui n'est pas en réseau, le compteur peut être
placé dans un onglet.

Cordialement JB