Synchronisation de fichiers / dossiers (vba-friendly)
Willzac Messages postés 281 Statut Membre -
Bonjour à tous,
Je dois faire en sorte de me retrouver avec les mêmes fichiers sur un DD et une clef USB. 2 cas :
- 1 fichier modifié au fur et à mesure dans les 2 supports,
- des fichiers n1, n2, n3... que je veux retrouver dans les 2 supports (crées à partir d'un fichier n0).
(j'espère être clair, ça n'est pas toujours le cas).
De façon générale, dans les grandes lignes, comment procéderiez-vous ?
Merci de me pas me mettre du code tout fait, j'ai besoin de réfléchir un peu (quand-même).
Par contre, je suis légèrement allergique aux smartphones. Eventuellement en tout dernier recours...
Merci d'avance pour vos différentes suggestions.
CMad
2 réponses
-
Bonjour,
Donc si j'ai bien compris,
Quand vous enregistrez un classeur (Excel), vous avez deux enregistrements :
Un dans votre clé et un autre dans votre disque dur ?
Si c'est l'cas, voici les étapes a suivre :
Etape 1:
- Tapez les codes dans ThisWorkbook mais pas dans les modules
- Choisissez un évènement de la fermeture de votre classeur
Etape 2 (saisie des codes):
- Désactiver l'alerte avant l'enregistrement
- Enregistrer sur l'emplacement HDD (sans oublier le nom et l'extension du fichier)
- Enregistrer sur l'emplacement USB (sans oublier le nom et l'extension du fichier)
- Fermer le classeur actif
Il vous reste juste à l'traduire
Cordialement
Willzac
-
Bonjour et merci Willzac,
En attendant une réponse et le retour d'internet, j'ai fait :
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) dossier = Dir("D:\MaClé\", vbDirectory) 'cherche clé usb If ThisWorkbook.Saved = True Then 'si pas de modif depuis dernier enregistrement, ne fait rien Else 'sinon, cherche si la clé est là If dossier = "" Then 'si non... If MsgBox("La clé USB n'est pas installée." & Chr(10) & _ "Souhaites-tu continuer quand-même ?", vbYesNo) = vbYes Then Else MsgBox "Insère la clé USB avant de faire OK" dossier = Dir("D:\MaClé\") If dossier = "" Then MsgBox "Clé pas installée" & Chr(10) & "Procédure annulée" Else EnregSurUsb 'lance proc End If End If Else EnregSurUsb 'lance proc End If End If End Subet :
Sub EnregSurUsb() 'procédure appelée par Private Sub Workbook_BeforeSave 'pour enregistrer une copie à jour sur USB dossier = Dir("D:\MaClé\", vbDirectory) If dossier = "" Then Else ActiveWorkbook.SaveAs Filename:= _ "D:\MaClé\" & ThisWorkbook.Name, FileFormat:= _ xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False End If End SubPas encore pu tester en conditions réelles mais débuts prometteurs.
Pourquoi devrais-je désactiver l'alerte avant enregistrement ?