Enregistrer un fichier sur deux emplacement différent

RONIBO

XLDnaute Impliqué
Bonsoir à tous,

J'aimerais enregistrer un fichier sur deux endroit différent en même temps, je pense qu'on devrait faire ceci grâce à un code vba :)

L'emplacement principal est : F:\Documents\Gestion du Compte.xlsm

et le second est : E:\Mes Documents\Duplicata\Banque\Perlot Kevin\Gestion du Compte\Gestion du Compte.xlsm

La seule condition c'est que le deuxième emplacement est un chemin d'un disque dur externe, et il est pas tout le temps branché sur le pc

Donc lorsque le disque dur est connecté sur le pc, pas de problème enregistrer le fichier sur les deux emplacements différents

Lorsque le disque dur est pas connecté, enregistrer le fichier seulement que sur l'emplacement principal,
je sais pas si c'est possible ou utile de mettre un p'tit message comme

/!\ Le fichier ne sera pas enregistré sur le disque dur externe

Est ce que je dois mettre un fichier ci joint?

Merci à vous

a+
 

RONIBO

XLDnaute Impliqué
Re : Enregistrer un fichier sur deux emplacement différent

Bonjour mapomme

Merci pour ta réponse,

Ton code fonctionne bien mise à part que je suis obligé, d'exécuter la macro manuellement,

Est ce possible d'enregistrer les fichier en cliquant seulement sur l'icône enregistrer?
Puis on peut éviter qu'il me pose la question lorsque j'enregistre les fichiers "le nom nommé existe déjà sur cette emplacement. Voulez vous le remplacer ?

Merci
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Enregistrer un fichier sur deux emplacement différent

Bonsoir RONOBO,

Il faut oublier la précédente version (illogique) et utiliser celle du fichier joint.

Le principe:
Dans le code, on trouve deux constantes chemin1 et chemin2.
chemin1 est le chemin du fichier original (terminé par "\")
chemin2 est le chemin du fichier archive (terminé par "\")

Quand on ouvre un fichier ( n'importe lequel des deux ), un clique sur l'icône 'Enregistrer' provoque la sauvegarde du fichier sur les deux emplacements.

Il ne devrait plus apparaître d'alerte.

Le code dans le module de ThisWorkbook:
VB:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
' terminer les constantes avec un anti-slash \
Const Chemin1 = "D:\EXCEL\@EXCEL-DOWNLOADS\"       ' emplacement 1 du fichier ex: fichier source
Const Chemin2 = "M:\test\"                         ' emplacement 2 du fichier ex: fichier archive

Dim chemin As String, QuelChemin As String

Application.EnableEvents = False
Application.DisplayAlerts = True

' 1- le fichier actif est sauvegardé sur lui-même
On Error GoTo Error001
chemin = ThisWorkbook.Path
QuelChemin = chemin
If Right(chemin, 1) <> "\" Then chemin = chemin & "\"
ThisWorkbook.Save

' 2- le fichier actif est copié sur Chemin1
'    si différent de Thisworkbook.fullname (idem pour chemin2)
QuelChemin = Chemin1
If LCase(chemin) <> LCase(Chemin1) Then ActiveWorkbook.SaveCopyAs Chemin1 & ThisWorkbook.Name
QuelChemin = Chemin2
If LCase(chemin) <> LCase(Chemin2) Then ActiveWorkbook.SaveCopyAs Chemin2 & ThisWorkbook.Name

Application.DisplayAlerts = True
Application.EnableEvents = True
Exit Sub

Error001:
  MsgBox "ATENTION " & vbCrLf & vbCrLf & "Le fichier actif n'a pas été sauvegardé sur : " & _
  vbLf & chemin & "" & vbCrLf & vbCrLf & "Veuillez vérifier que le support " & _
        "externe ou réseau est accessible ou bien que le chemin existe"
  Application.DisplayAlerts = True
  Application.EnableEvents = True
  Exit Sub
End Sub
 

Pièces jointes

  • Save2times v2.xlsm
    16.3 KB · Affichages: 211

RONIBO

XLDnaute Impliqué
Re : Enregistrer un fichier sur deux emplacement différent

Bonsoir mapomme,

C'est parfait ! Elle fonctionne à la perfection et surtout comme je le veux, MERCI ;)

J'ai pu constater un petit beug
J'ai réglé le source par rapport à mes emplacement comme ceci :

Chemin1 = "F:\Documents\"
Chemin2 = "E:\Mes Documents\Duplicata\Banque\*****\Gestion des Comptes\"

Lorsque que déconnecte le disque dur externe (chemin2), dans le message le chemin ne correspond pas, je te mets une capture ci joint pour que tu puisse mieux comprendre.

Comment je fais pour régler ce petit problème

a+
 

Pièces jointes

  • Capture.JPG
    Capture.JPG
    19.4 KB · Affichages: 191
  • Capture.JPG
    Capture.JPG
    19.4 KB · Affichages: 179
  • Capture.JPG
    Capture.JPG
    19.4 KB · Affichages: 184

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Enregistrer un fichier sur deux emplacement différent

(re)Bonsoir RONOBO,
Lorsque que déconnecte le disque dur externe (chemin2), dans le message le chemin ne correspond pas
C'est exact. Il suffit de remplacer dans l'instruction "MsgBox" situé à la fin après l'étiquette "Error001:"; le terme "& chemin" par le terme "& QuelChemin".
 

Pièces jointes

  • Save2times v3.xlsm
    16.4 KB · Affichages: 104

RONIBO

XLDnaute Impliqué
Re : Enregistrer un fichier sur deux emplacement différent

Bonjour,

Merci pour la correction ;)

Par contre j'ai toujours le problème de signe monétaire qu'il se met à gauche systématiquement lorsque j'utilise le macro que tu m'a proposé :(

On peut éviter ce problème avec un petit macro pour la mise en forme que je veux?

a+
 

RONIBO

XLDnaute Impliqué
Re : Enregistrer un fichier sur deux emplacement différent

Re, Je viens de constater que ça me fait ça lorsque que j'ouvre le deuxième fichier (archive), des que je le sauvegarde, bas il me reporte la même problème dans le fichier (source)

Essaie de créer un fichier simple avec le format de cellule "monétaire" montant négatif en rouge, puis test le dans les deux sens

a+
 
Dernière édition:

Discussions similaires

Réponses
8
Affichages
240

Statistiques des forums

Discussions
312 201
Messages
2 086 175
Membres
103 152
dernier inscrit
Karibu