Sauvegarde sur disque dur exterieur
Résolu/Fermé
A voir également:
- Sauvegarde sur disque dur exterieur
- Cloner disque dur - Guide
- Defragmenter disque dur - Guide
- Chkdsk disque dur externe - Guide
- Remplacer disque dur par ssd - Guide
- Nettoyage disque dur - Guide
14 réponses
Bonjour,
Dans ton précédent post du 8 mai, tu disais que tu avait fait, en VB6, une sauvegarde sur disquette et que tu cherchais comment faire la même chose sur CD.
Sur CD c'est pas possible parce qu'un CD est en lecture seule.
Mais sur un DD externe, c'est comme sur une disquette, sauf que la disquette (floppy) est toujours associée à l'unité A: et que le DD peut être associé à une unité disponible allant de D: à Z:
Dans ton programme VB6, il n'y a qu'une lettre à changer.
Assures toi que ton DD soit toujours monté sur la même unité (par exemple toujours sur S:) et le tour est joué.
;)
Dans ton précédent post du 8 mai, tu disais que tu avait fait, en VB6, une sauvegarde sur disquette et que tu cherchais comment faire la même chose sur CD.
Sur CD c'est pas possible parce qu'un CD est en lecture seule.
Mais sur un DD externe, c'est comme sur une disquette, sauf que la disquette (floppy) est toujours associée à l'unité A: et que le DD peut être associé à une unité disponible allant de D: à Z:
Dans ton programme VB6, il n'y a qu'une lettre à changer.
Assures toi que ton DD soit toujours monté sur la même unité (par exemple toujours sur S:) et le tour est joué.
;)
Yoda, merci pour ta réponse du 9 mai 2012.
Mes sauvegardes sur disquettes font appel,entre autre, à des fichiers .bat qui lancent un backup sur A:
Je ne voie pas comment en vb6 faire la sélection sur le disque H (extérieur) et
écrire le fichier sélectionné.
Peux-tu m'aider pour l'écriture de ce programme.
Merci.
Mes sauvegardes sur disquettes font appel,entre autre, à des fichiers .bat qui lancent un backup sur A:
Je ne voie pas comment en vb6 faire la sélection sur le disque H (extérieur) et
écrire le fichier sélectionné.
Peux-tu m'aider pour l'écriture de ce programme.
Merci.
je recopie le fichier c:\SauveDep.bat
cd c:\
cd dos5
cls
echo off
cls
echo. Effacement disquette
cd c:\
del a:\backup.*
cd c:\
color 2c
verify on
cls
cd dos5
backup.com d:\DépMalAs\DépAnAct.xls a:
cls
Le dos5 est le seul à avoir la commande backup.com permettant de sauver
sur plusieurs disquettes si le fichier est >1 400 000 octets
Merci pour ton aide
cd c:\
cd dos5
cls
echo off
cls
echo. Effacement disquette
cd c:\
del a:\backup.*
cd c:\
color 2c
verify on
cls
cd dos5
backup.com d:\DépMalAs\DépAnAct.xls a:
cls
Le dos5 est le seul à avoir la commande backup.com permettant de sauver
sur plusieurs disquettes si le fichier est >1 400 000 octets
Merci pour ton aide
Bonjour,
Pour une sauveguarde sur disque dur externe, on n'aura pas de problème de place, alors pas la peine d'utiliser Backup.com, un simple copy suffira.
Assures-toi quand même de temps en temps de le DD externe n'est pas plein.
De plus, le DD externe pourra servir à stocker d'autres documents que ton fichier DépAnAct.xls. Alors tu créeras un dossier H:\Backup qui sera utilisé pour ta sauvegarde. Du coup, voilà à quoi ressemblerait le fichier c:\SauveDep.bat
A+
Pour une sauveguarde sur disque dur externe, on n'aura pas de problème de place, alors pas la peine d'utiliser Backup.com, un simple copy suffira.
Assures-toi quand même de temps en temps de le DD externe n'est pas plein.
De plus, le DD externe pourra servir à stocker d'autres documents que ton fichier DépAnAct.xls. Alors tu créeras un dossier H:\Backup qui sera utilisé pour ta sauvegarde. Du coup, voilà à quoi ressemblerait le fichier c:\SauveDep.bat
@echo off cls if exist H:\Backup goto CONTINUE echo. Le dossier H:\Backup n'existe pas echo. Sauvegarde annulee goto FIN :CONTINUE echo. Effacement de H:\Backup del H:\Backup\DépAnAct.xls color 2c verify on copy d:\DépMalAs\DépAnAct.xls H:\Backup\ echo. Sauvegarde terminee :FIN pause cls
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
yoda, je t'envoie une macro que je ne réussi pas à faire fonctionner.
peux-tu regarder avec cette macro la sauvegarde sur disque serait résolue.
je ne réussi pas à faire fonctionner le fichier Bat
Sub CopieClasseurXPMimi
'enregistre le classeur
Application.StatusBar = Space(15) & "ENREGISTREMENT CLASSEUR EN COURS"
Application.EnableEvents = False
ActiveWorbook.Save
Application.EnableEvents = True
LigneDébut:
MsgBox "Veuillez mettre un disque",vbOKOnly + vbExclamation,
On Error Resume Next
ChDir "H:\"
If Err.Number <> 0 Then
MsgBox "Pas de disque" , vbOKOnly
Goto LigneDébut
ElseIf Err.Number = 0 Then
MonFichier = Dir("h:\*.*)
End If
'sauve sur disque extérieur H
SaveCopyAs "d:\DépMalAs\DépMimi.xls"
FileCopy "d:\DépMalAs\DépMimi.xls, "h:\DépMimi.xls"
Call Auto_Close
ActiveSheet.Protect
Application.Quit
End Sub
peux-tu regarder avec cette macro la sauvegarde sur disque serait résolue.
je ne réussi pas à faire fonctionner le fichier Bat
Sub CopieClasseurXPMimi
'enregistre le classeur
Application.StatusBar = Space(15) & "ENREGISTREMENT CLASSEUR EN COURS"
Application.EnableEvents = False
ActiveWorbook.Save
Application.EnableEvents = True
LigneDébut:
MsgBox "Veuillez mettre un disque",vbOKOnly + vbExclamation,
On Error Resume Next
ChDir "H:\"
If Err.Number <> 0 Then
MsgBox "Pas de disque" , vbOKOnly
Goto LigneDébut
ElseIf Err.Number = 0 Then
MonFichier = Dir("h:\*.*)
End If
'sauve sur disque extérieur H
SaveCopyAs "d:\DépMalAs\DépMimi.xls"
FileCopy "d:\DépMalAs\DépMimi.xls, "h:\DépMimi.xls"
Call Auto_Close
ActiveSheet.Protect
Application.Quit
End Sub
Bonjour,
Essaies avec ce code, dis moi si ça va.
Edit: j'ai supprimé SaveCopyAs "d:\DépMalAs\DépMimi.xls"
je ne sais pas pourquoi tu as mis cette ligne, au besoin rajoutes la.
Essaies avec ce code, dis moi si ça va.
Sub CopieClasseurXPMimi() 'enregistre le classeur Application.StatusBar = Space(15) & "ENREGISTREMENT CLASSEUR EN COURS" Application.EnableEvents = False ActiveWorbook.Save Application.EnableEvents = True 'sauve sur disque extérieur H DEBUT: Rep = MsgBox("Veuillez monter le disque sur le lecteur H:", vbOKCancel + vbExclamation) If Rep = vbOK Then On Error GoTo ERR1 FileCopy "d:\DépMalAs\DépMimi.xls", "h:\DépMimi.xls" On Error GoTo 0 MsgBox "Sauvegarde effectuée avec succès" Else MsgBox "Sauvegarde annulée" End If Call Auto_Close ActiveSheet.Protect Application.Quit Exit Sub ERR1: MsgBox "Erreur d'écriture sur le lecteur H:", vbCritical Resume DEBUT End Sub
Edit: j'ai supprimé SaveCopyAs "d:\DépMalAs\DépMimi.xls"
je ne sais pas pourquoi tu as mis cette ligne, au besoin rajoutes la.
Bonjour Yoda,
Je viens d'écrire le code reçu.
fonctionne jusqu'à "veuillez monter le disque sur le lecteur H:"
se termine avec le message"Erreur d'écriture sur le lecteur H:"
si je supprime On Error GoTo ERR1
j'ai le message Erreur 70 Permission refusée
Je viens d'écrire le code reçu.
fonctionne jusqu'à "veuillez monter le disque sur le lecteur H:"
se termine avec le message"Erreur d'écriture sur le lecteur H:"
si je supprime On Error GoTo ERR1
j'ai le message Erreur 70 Permission refusée
Bonjour Yoda,
Je viens de faire l'essai de copier coller sur le disque H,sans problème
A+
Je viens de faire l'essai de copier coller sur le disque H,sans problème
A+
Bonjour,
J'ai fait le test chez moi, la macro marche bien.
Vérifies le nom complet de ton fichier d:\DépMalAs\DépMimi.xls
Par contre regarde aussi si le fichier existe déjà sur le DD externe (lecteur H:), s'il est protéjé en écriture. (Clic droit sur le fichier -> Propriétés -> décocher lecture seule.)
Si c'est le cas tu ne pourras pas le remplacer par la dernière version.
Essaies cette procédure, j'ai enlevé ce qui n'est pas utile, pour éviter de quitter excel.
J'ai fait le test chez moi, la macro marche bien.
Vérifies le nom complet de ton fichier d:\DépMalAs\DépMimi.xls
Par contre regarde aussi si le fichier existe déjà sur le DD externe (lecteur H:), s'il est protéjé en écriture. (Clic droit sur le fichier -> Propriétés -> décocher lecture seule.)
Si c'est le cas tu ne pourras pas le remplacer par la dernière version.
Essaies cette procédure, j'ai enlevé ce qui n'est pas utile, pour éviter de quitter excel.
Sub TestCopieClasseurXPMimi() 'sauve sur disque extérieur H DEBUT: Rep = MsgBox("Veuillez monter le disque sur le lecteur H:", vbOKCancel + vbExclamation) If Rep = vbOK Then On Error GoTo ERR1 FileCopy "d:\DépMalAs\DépMimi.xls", "h:\DépMimi.xls" On Error GoTo 0 MsgBox "Sauvegarde effectuée avec succès" Else MsgBox "Sauvegarde annulée" End If Exit Sub ERR1: MsgBox "Erreur d'écriture sur le lecteur H:", vbCritical Resume DEBUT End Sub
Yoda, je suis désolé mais lorsque je lance la macro j'ai " Veuillez monter le disque sur le lecteur H:"et lorsque je clic sur OK j'ai toujours "Erreur d'écriture sur le lecteur H:"
Je viens de mettre un autre disque dur de 350go, idem.
Mes 2 disques dur sont des disques normaux, mais pas multimédia.Ils sont branchés en USB.
Le visual basic est celui de Office 2003.
Je viens de mettre un autre disque dur de 350go, idem.
Mes 2 disques dur sont des disques normaux, mais pas multimédia.Ils sont branchés en USB.
Le visual basic est celui de Office 2003.
Fais cette manip
Menu démarrer -> Executer...
dans la fenêtre tapes cmd puis OK
la fenêtre de commande DOS doit s'ouvrir
tapes cette commande:
copy d:\DépMalAs\DépMimi.xls h:\DépMimi.xls
normalement tu dois voir: 1 fichier copié
Si c'est pas le cas c'est que:
1) le fichier d:\DépMalAs\DépMimi.xls n'existe pas
2) le lecteur H: n'existe pas ou en lecture seule (lecteur CD)
3) le lecteur H: est plein
4) dis-moi l'erreur retournée par la commande.
Menu démarrer -> Executer...
dans la fenêtre tapes cmd puis OK
la fenêtre de commande DOS doit s'ouvrir
tapes cette commande:
copy d:\DépMalAs\DépMimi.xls h:\DépMimi.xls
normalement tu dois voir: 1 fichier copié
Si c'est pas le cas c'est que:
1) le fichier d:\DépMalAs\DépMimi.xls n'existe pas
2) le lecteur H: n'existe pas ou en lecture seule (lecteur CD)
3) le lecteur H: est plein
4) dis-moi l'erreur retournée par la commande.
la commande copy...me donne 1 fichier copié
A+
A+
Alors ça doit marcher avec la macro parce que c'est exactement pareil.
Mets toi dans les même conditions. Fait d'abord le test avec la commande DOS
copy d:\DépMalAs\DépMimi.xls h:\DépMimi.xls
comme indiqué plus haut.
Si pas de problème, fais le test avec cette macro toute simple.
Exécute la macro. Si ça c'est bien passé tu auras seulement le message "Fin de Procédure" qui prouve qu'il n'y a pas eu d'erreur.
Sinon tu aurras un message d'erreur.
C'est important de faire les test dans les même conditions, avec le même DD externe, sans le débrancher puis rebrancher.
Mets toi dans les même conditions. Fait d'abord le test avec la commande DOS
copy d:\DépMalAs\DépMimi.xls h:\DépMimi.xls
comme indiqué plus haut.
Si pas de problème, fais le test avec cette macro toute simple.
Sub test() FileCopy "d:\DépMalAs\DépMimi.xls", "h:\DépMimi.xls" Msgbox "Fin de Procédure" End Sub
Exécute la macro. Si ça c'est bien passé tu auras seulement le message "Fin de Procédure" qui prouve qu'il n'y a pas eu d'erreur.
Sinon tu aurras un message d'erreur.
C'est important de faire les test dans les même conditions, avec le même DD externe, sans le débrancher puis rebrancher.
Yoda, l'exécution de la macro donne : erreur76 chemin accès introuvable.
J'ai fait un fichier bat avec la commande copy d:\DépMalAs\DépMimi.xls, h:\DépMimi.xls
Je lance cette ligne en VB et la sauvegarde est effectuée sans problème.
A+
J'ai fait un fichier bat avec la commande copy d:\DépMalAs\DépMimi.xls, h:\DépMimi.xls
Je lance cette ligne en VB et la sauvegarde est effectuée sans problème.
A+
Je crois avoir compris en tatonnant. La commande FileCopy ne marche pas si le fichier source est ouvert. Alors on va utiliser la commande Shell qui permet de lancer une commande DOS.
Voilà la procedure et dis moi si ça marche.
Voilà la procedure et dis moi si ça marche.
Sub CopieClasseurXPMimi() 'enregistre le classeur Application.StatusBar = Space(15) & "ENREGISTREMENT CLASSEUR EN COURS" Application.EnableEvents = False ActiveWorbook.Save Application.EnableEvents = True 'sauve sur disque extérieur H DEBUT: Rep = MsgBox("Sauvegarde du Fichier" & vbCrLf _ & "Veuillez monter le disque sur le lecteur H:", vbOKCancel + vbExclamation) If Rep = vbOK Then On Error GoTo ERR1 'FileCopy "d:\DépMalAs\DépMimi.xls", "h:\DépMimi.xls" Shell ("cmd /c copy d:\DépMalAs\DépMimi.xls h:\DépMimi.xls") On Error GoTo 0 MsgBox "Sauvegarde effectuée avec succès" Else MsgBox "Sauvegarde annulée" End If Call Auto_Close ActiveSheet.Protect Application.Quit Exit Sub ERR1: MsgBox "Erreur d'écriture sur le lecteur H:", vbCritical Resume DEBUT End Sub
Bonjour Yoda,
La procedure donne aucune erreur, sauvegarde effectuée avec succès, mais
lorsque j'ouvre le disque H :je n'ai pas d'écriture.
A+
La procedure donne aucune erreur, sauvegarde effectuée avec succès, mais
lorsque j'ouvre le disque H :je n'ai pas d'écriture.
A+
GRRR...C'est une malédiction!
Je nabandonne pas, nouvel essai. J'ai rajouté un test d'accès au lecteur H:\, si celui-ci n'est pas valide, ça provoquera une erreur. Si c'est le cas vérifie que le disque est bien branché sur la lettre H:
La seule partie que tu peux éventuellement adapter sont les noms des fichiers Orig (origine) et Dest (destination). Dis moi si ça marche .
Je nabandonne pas, nouvel essai. J'ai rajouté un test d'accès au lecteur H:\, si celui-ci n'est pas valide, ça provoquera une erreur. Si c'est le cas vérifie que le disque est bien branché sur la lettre H:
La seule partie que tu peux éventuellement adapter sont les noms des fichiers Orig (origine) et Dest (destination). Dis moi si ça marche .
Sub CopieClasseurXPMimi() 'enregistre le classeur Application.StatusBar = Space(15) & "ENREGISTREMENT CLASSEUR EN COURS" Application.EnableEvents = False ActiveWorbook.Save Application.EnableEvents = True 'sauve sur disque extérieur H DEBUT: Rep = MsgBox("Sauvegarde du Fichier" & vbCrLf _ & "Veuillez monter le disque sur le lecteur H:", vbOKCancel + vbExclamation) If Rep = vbOK Then On Error GoTo ERR1 'test si le lecteur H:\ est prêt ChDir ("H:\") 'revenir au point de départ ChDir (ActiveWorkbook.Path) 'Nom des fichiers origine et destination Orig = "D:\DépMalAs\DépMimi.xls" Dest = "H:\DépMimi.xls" 'ne pas modifier ces 2 lignes commandeDOS = "cmd /c copy " & Chr(34) & Orig & Chr(34) & " " & Chr(34) & Dest & Chr(34) Shell (commandeDOS) On Error GoTo 0 MsgBox "Sauvegarde effectuée avec succès" Else MsgBox "Sauvegarde annulée" End If Call Auto_Close ActiveSheet.Protect Application.Quit Exit Sub ERR1: MsgBox "Erreur: le lecteur H:\ n'est pas prêt", vbCritical Resume DEBUT End Sub
Bravo Yoda
La macro fonctionne après suppression de:On Error GoTo ERR1 et
ChDir (ActiveWorkbook.Path)
Maitenant est-il possible en changeant de jour de ne pas écraser le fichier
existant.
Merci
A+
La macro fonctionne après suppression de:On Error GoTo ERR1 et
ChDir (ActiveWorkbook.Path)
Maitenant est-il possible en changeant de jour de ne pas écraser le fichier
existant.
Merci
A+
Enfin!!
La ligne ChDir (ActiveWorkbook.Path) tu peux l'enlever.
Mais n'enlève pas la ligne On Error GoTo ERR1, sinon tu ne sauras pas si le disque H: est prêt, et comme la commande Shell ne retourne pas d'erreur, ça passera inaperçu.
En effet, quand tu enlève un dique dur exterieur après utilisation, puis tu le rebranche à un autre moment, il n'est pas sur que Windows lui attritue la même lettre que la fois précédente. Encore plus vrai si c'est un deuxième disque exterieur. Comme la macro est faite pour une connexion au lecteur H: , si la lettre n'est plus la même, pas de suavegarde.
Alors il vaut nieux être au courant.
Moi je mettrais les sauvegardes dans un dossier spécial, et non directement sur la racine comme tu le fait.
Sinon pour ne pas écraser le fichier existant, il faut lui changer de nom en lui ajoutant la date et l'heure automatiquement.
Remplace le ligne Dest = "H:\DépMimi.xls" par
Et remets On Error GoTo ERR1.
A+
La ligne ChDir (ActiveWorkbook.Path) tu peux l'enlever.
Mais n'enlève pas la ligne On Error GoTo ERR1, sinon tu ne sauras pas si le disque H: est prêt, et comme la commande Shell ne retourne pas d'erreur, ça passera inaperçu.
En effet, quand tu enlève un dique dur exterieur après utilisation, puis tu le rebranche à un autre moment, il n'est pas sur que Windows lui attritue la même lettre que la fois précédente. Encore plus vrai si c'est un deuxième disque exterieur. Comme la macro est faite pour une connexion au lecteur H: , si la lettre n'est plus la même, pas de suavegarde.
Alors il vaut nieux être au courant.
Moi je mettrais les sauvegardes dans un dossier spécial, et non directement sur la racine comme tu le fait.
Sinon pour ne pas écraser le fichier existant, il faut lui changer de nom en lui ajoutant la date et l'heure automatiquement.
Remplace le ligne Dest = "H:\DépMimi.xls" par
Dest = "H:\DépMimi.xls_" & Format(Date, "yyyy-mm-dd") & "_" & Format(Time, "hh\Hmm")
Et remets On Error GoTo ERR1.
A+