Procédure de sauvegarde avec vba
LinDouch42
-
ptitpanda Messages postés 67 Statut Membre -
ptitpanda Messages postés 67 Statut Membre -
Bonjour,
J'ai une procédure de sauvegarde dans une macro et je souhaiterai rajouter la création d'un sous dossier supplémentaire.
Cette procédure me donne une possibilité d'ajouter un sous dossier année s'il n'existe pas et je voudrais rajouter un autre sous dossier mois, certainement en utilisant Format([F1], "mmmm", pour que le fichier soit rangé dans le dossier Facture \AnnexeFactures\"Année"\"mois"
Merci pour votre aide
J'ai une procédure de sauvegarde dans une macro et je souhaiterai rajouter la création d'un sous dossier supplémentaire.
Cette procédure me donne une possibilité d'ajouter un sous dossier année s'il n'existe pas et je voudrais rajouter un autre sous dossier mois, certainement en utilisant Format([F1], "mmmm", pour que le fichier soit rangé dans le dossier Facture \AnnexeFactures\"Année"\"mois"
Merci pour votre aide
' Procédure de sauvegarde du nouveau Classeur -----------------------------------
Application.DisplayAlerts = False ' Désactive la confirmation de remplacement
On Error Resume Next
'Dossier = "C:\Users\linda\Documents\COLIS LOIRE EXPRESS\Gestion Clients\Factures\AnnexeFactures\"
Dossier = ThisWorkbook.Path & "\..\Factures\AnnexeFactures\"
' On ajoute le sous-dossier année
FileName = Dossier & Format([F1], "yyyy")
' On le crée s'il n'existe pas
If Dir(FileName, vbDirectory) = "" Then MkDir FileName
'FileName = FileName & "\" & "Annexe_1_Détail_Prestations_Spéciales_Facture_Mois_" & Format([F1], "mmm_yyyy")
FileName = FileName & "\" & "Annexe 2 - Facture " & Format([F1], "mmmm yyyy") & " - Récap prestations spéciales - Ciblex Mions"
' On va tenter de sauvegarder le nouveau Classeur avec le nom prévu
ActiveWorkbook.SaveAs FileName:=FileName
If Err > 0 Then
' le dossier n'existant probablement pas,
' l'utilisateur doit en choisir un
FileName = Application.GetSaveAsFilename( _
FileFilter:="Excel (*.xlsx),*.xlsx", _
InitialFileName:=FileName)
' On va tenter de sauvegarder avec le nom fourni
If FileName <> False _
Then ActiveWorkbook.SaveAs FileName:=FileName
End If
On Error GoTo 0
' Fermeture automatique du Classeur s'il a pu être sauvegardé
If ActiveWorkbook.Saved Then
ActiveWorkbook.Close
Else
Application.DisplayAlerts = True
End If
A voir également:
- Procédure de sauvegarde avec vba
- Logiciel de sauvegarde gratuit - Guide
- Sauvegarde facile - Télécharger - Sauvegarde
- Sauvegarde android - Guide
- Sauvegarde time machine - Guide
- Sauvegarde windows 10 - Guide
1 réponse
Bonjour,
Si j'ai bien compris qu'il faut rajouter le nom du mois il suffit de rajouter les lignes après que l'on ait créé le dossier de l'année:
Je pense que c'est ce que tu souhaitais
Bonne journée
Si j'ai bien compris qu'il faut rajouter le nom du mois il suffit de rajouter les lignes après que l'on ait créé le dossier de l'année:
' Procédure de sauvegarde du nouveau Classeur -----------------------------------
Application.DisplayAlerts = False ' Désactive la confirmation de remplacement
On Error Resume Next
'Dossier = "C:\Users\linda\Documents\COLIS LOIRE EXPRESS\Gestion Clients\Factures\AnnexeFactures\"
Dossier = ThisWorkbook.Path & "\..\Factures\AnnexeFactures\"
' On ajoute le sous-dossier année
Filename = Dossier & Format([F1], "yyyy")
' On le crée s'il n'existe pas
If Dir(Filename, vbDirectory) = "" Then MkDir Filename
' on rajoute le nom du mois
Filename = Filename & "\" & Format([F1], "mmmm")
' On le crée s'il n'existe pas
If Dir(Filename, vbDirectory) = "" Then MkDir Filename
'FileName = FileName & "\" & "Annexe_1_Détail_Prestations_Spéciales_Facture_Mois_" & Format([F1], "mmm_yyyy")
Filename = Filename & "\" & "Annexe 2 - Facture " & Format([F1], "mmmm yyyy") & " - Récap prestations spéciales - Ciblex Mions"
' On va tenter de sauvegarder le nouveau Classeur avec le nom prévu
ActiveWorkbook.SaveAs Filename:=Filename
If Err > 0 Then
' le dossier n'existant probablement pas,
' l'utilisateur doit en choisir un
Filename = Application.GetSaveAsFilename( _
FileFilter:="Excel (*.xlsx),*.xlsx", _
InitialFileName:=Filename)
' On va tenter de sauvegarder avec le nom fourni
If Filename <> False _
Then ActiveWorkbook.SaveAs Filename:=Filename
End If
On Error GoTo 0
' Fermeture automatique du Classeur s'il a pu être sauvegardé
If ActiveWorkbook.Saved Then
ActiveWorkbook.Close
Else
Application.DisplayAlerts = True
End If
Je pense que c'est ce que tu souhaitais
Bonne journée