Synchronisation de fichiers / dossiers (vba-friendly)

Fermé
CMad - 18 avril 2023 à 17:38
Willzac Messages postés 266 Date d'inscription mercredi 27 septembre 2017 Statut Membre Dernière intervention 20 juin 2024 - 20 avril 2023 à 13:53

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

A voir également:

2 réponses

Willzac Messages postés 266 Date d'inscription mercredi 27 septembre 2017 Statut Membre Dernière intervention 20 juin 2024 14
Modifié le 19 avril 2023 à 16:53

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


0

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 Sub

et :

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 Sub

Pas encore pu tester en conditions réelles mais débuts prometteurs.

Pourquoi devrais-je désactiver l'alerte avant enregistrement ?

0
Willzac Messages postés 266 Date d'inscription mercredi 27 septembre 2017 Statut Membre Dernière intervention 20 juin 2024 14
20 avril 2023 à 13:53

Pour éviter d'avoir un message du genre : 

Cordialement

0