Bonjour,
Malgré de très nombreuses recherches sur des forums, je ne parviens toujours pas à résoudre mon problème ...
Je souhaite effectuer des sauvegardes successives d'un fichier dans un dossier de sauvegarde, mais je souhaite seulement avoir 2 fichiers de sauvegarde. Ainsi, j'ai défini la règle comme suit:
Si le jour de la sauvegarde est impair, le fichier s’appellera : XX_1. Sinon, ce sera : XXX_2.
Voici mon code :
"Argument ou appel de procédure incorrect" est le message qui s'affiche après l'exécution de ce code. La ligne surlignée en jaune est celle-ci :
Je ne comprends pas où est le problème : j'ai vu sur d'autres forums que certains avec des problèmes avec la fonctions Dir qui était appelée deux fois, mais ici ce n'est pas le cas pour Fichier1...
Pouvez-vous m'aider s'il vous plaît ?
J'ai placé le document en pièce jointe, si ça peut aider ..
Merci par avance
Malgré de très nombreuses recherches sur des forums, je ne parviens toujours pas à résoudre mon problème ...
Je souhaite effectuer des sauvegardes successives d'un fichier dans un dossier de sauvegarde, mais je souhaite seulement avoir 2 fichiers de sauvegarde. Ainsi, j'ai défini la règle comme suit:
Si le jour de la sauvegarde est impair, le fichier s’appellera : XX_1. Sinon, ce sera : XXX_2.
Voici mon code :
VB:
Sub Sauvegarde()
'Sauvegardes automatiques du fichier
Dim CheminSauvegarde As String, CheminCommun As String, Fichier As String, Fichier1 As String, Fichier2 As String
Dim DateJour As Date
CheminSauvegarde = "XXXX"
CheminCommun = "XXXX"
Fichier = Dir(CheminCommun & ActiveWorkbook.Name)
Fichier1 = Dir(CheminSauvegarde & Left(Fichier, Len(Fichier) - 4) & "_1.xlsm") 'Sauvegarde 1
Fichier2 = Dir(CheminSauvegarde & Left(Fichier, Len(Fichier) - 4) & "_2.xlsm") 'Sauvegarde 2
DateJour = Left(Date, 2) 'Jour du mois
Do While Len(Fichier) > 0 'le nom de fichier n'est pas vide
If DateJour Mod 2 <> 0 Then 'Si aujourd'hui est un jour impair, on enregistre sous le format 1
Application.DisplayAlerts = False 'Arrêt des messages pour écraser fichier
ActiveWorkbook.SaveCopyAs CheminSauvegarde & Fichier1 'Enregistrement sous le nom de la sauvegarde 1
Application.DisplayAlerts = True 'Alertes qui apparaissent de nouveau
ElseIf DateJour Mod 2 = 0 Then 'Si aujourd'hui est un jour pair, on enregistre sous le format 2
Application.DisplayAlerts = False 'Arrêt des messages pour écraser fichier
ActiveWorkbook.SaveCopyAs CheminSauvegarde & Fichier2 'Enregistrement sous le nom de la sauvegarde 2
Application.DisplayAlerts = True 'Alertes qui apparaissent de nouveau
End If
Fichier = Dir() 'passe au nom de fichier Excel suivant
Loop
ActiveWorkbook.Save 'sauvegarde du fichier actuel
MsgBox ("Sauvegarde du fichier effectuée !")
End Sub
"Argument ou appel de procédure incorrect" est le message qui s'affiche après l'exécution de ce code. La ligne surlignée en jaune est celle-ci :
Code:
Fichier1 = Dir(CheminSauvegarde & Left(Fichier, Len(Fichier) - 4) & "_1.xlsm") 'Sauvegarde 1
Je ne comprends pas où est le problème : j'ai vu sur d'autres forums que certains avec des problèmes avec la fonctions Dir qui était appelée deux fois, mais ici ce n'est pas le cas pour Fichier1...
Pouvez-vous m'aider s'il vous plaît ?
J'ai placé le document en pièce jointe, si ça peut aider ..
Merci par avance