XL 2013 Gestion de sauvegarde de fichiers

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

PDP33

XLDnaute Nouveau
Bonjour à toute la communauté

En premier lieu bonne année à toutes et tous.

J’ai commencé à développer une série de commande en VBA pour me faciliter la vie pour gérer la sauvegarde de beaucoup de fichiers.

J’arrive à maitriser la commande Filecopy (Source Destination)

Elle fonctionne parfaitement pour les petits fichiers, sauf que pour les fichiers vidéos beaucoup plus volumineux j’ai d’abord un message m’informant qu’excel ne répond pas. Il faut laisser le temps pour que la copie se fasse.

En plus je souhaiterai que le code appelle les fenêtres windows ci-dessous (cela doit être possible car j’ai réussi à trouver pour la suppression de fichiers – affichage de la fenêtre de confirmation de demande de mise à la corbeille avec la commande RecycleFile – merci à son auteur)

Merci d’avance pour votre aide
1768573049250.png
1768573142993.png


C'est la première fois que je demande de l'aide, désolé si ce n'est pas la bonne façon de faire
 
Merci n’importe quoi

Ta réponse est excellente. Par contre, sauf erreur de ma part, cette commande ne renvoie aucune valeur, ce qui est dommage, car en fonction de l’option choisie si j’annule ou si je décide d’écraser le fichier existant je pourrais ajouter une annotation dans une cellule comme quoi la sauvegarde a été effectuée ou reste à faire

Si tu as une idée…

De mon côté je recherche aussi
 
cette commande ne renvoie aucune valeur
ben c'est normal, on sort d'Excel (du VBA) pour passer le contrôle à Windows
Si vous voulez savoir si le fichier à été copié vous pouvez utilisez la commende Dir(), mais attention, Excel ayant passé la main à Windows, il ne pourra pas savoir quand la commande sera effectivement terminé.
Exemple : vous lancez la commande de copie d'un fichier de 2 To et afficher un msgbox juste après la commande, le message s'affichera immédiatement alors que Windows n'aura pas encore commencé.

Question : pourquoi ne voulez vous pas que ça soit Excel qui gère la copie ?
 
ben c'est normal, on sort d'Excel (du VBA) pour passer le contrôle à Windows
Si vous voulez savoir si le fichier à été copié vous pouvez utilisez la commende Dir(), mais attention, Excel ayant passé la main à Windows, il ne pourra pas savoir quand la commande sera effectivement terminé.
Exemple : vous lancez la commande de copie d'un fichier de 2 To et afficher un msgbox juste après la commande, le message s'affichera immédiatement alors que Windows n'aura pas encore commencé.

Question : pourquoi ne voulez vous pas que ça soit Excel qui gère la copie ?
parce que je travaille avec un vieux PC sous W7 et comme indiqué dans ma question la commande filecopy le fait "ramer'. On n' pas le choix de lancer ou non la copie n'y la progression de la copie d fichier.. Une fois l'instruction filecopy lue, j'ai le message comme quoi excel ne répond pas puis on ne sait combien de temps après le fichier commence à être copié. L'option SellApp me convenait sauf ce petit détail
 
Je partage entièrement cet avis sur le fait qu’excel reprendra la main alors que le fichier de sauvegarde ne sera pas entièrement copié
Pour le moment je vais adopter la solution, qui n’est pas entièrement satisfaisante, de vérifier l’espace disponible par rapport à la taille du fichier à sauvegarder, ce qui devrait limiter les problèmes.

Dim d As Object, Fs As Object, Fichier As Object
Dim Size_Fichier As Long
Dim SourceFile As String, DestinationFile As String, Nom_Racine_Sauv As String
SourceFile = "M:\xxxxx\yyyyy\essai.mp4"
DestinationFile = "L:\xxxxx\yyyyy"
Set Fs = CreateObject("Scripting.FileSystemObject")
Set Fichier = Fs.GetFile(SourceFile)
Size_Fichier = Fichier.Size
Set d = Fs.GetDrive(Fs.GetDriveName(DestinationFile))
If Size_Fichier > d.FreeSpace Then
MsgBox "La place sur le disque de destination n'est pas suffisante"
Else
Dim Shellapp As Shell32.shell
Set Shellapp = CreateObject("Shell.Application")
Shellapp.Namespace(DestinationFile).CopyHere SourceFile
End If
Set d = Nothing
Set Fs = Nothing
Set Fichier = Nothing
Set Shellapp = Nothing
 
bonjour,
voilà ce que j'utilise personnellement pour mes sauvegarde.

 
Hello,

quelques uns ici, y'a plus qu'a choisir
et là les 4 meilleurs gratuits selon le crabe

Je sais que c'est toujours tentant de vouloir se créer son propre programme, mais bon, quand des bons programmes existent, pourquoi les réinventer
 
Hello,

quelques uns ici, y'a plus qu'a choisir
et là les 4 meilleurs gratuits selon le crabe

Je sais que c'est toujours tentant de vouloir se créer son propre programme, mais bon, quand des bons programmes existent, pourquoi les réinventer
Ok merci pour l'info Je vais regarder
 
bonjour,
voilà ce que j'utilise personnellement pour mes sauvegarde.

Je ne connaissais pas du tout, c'est la première fois que j'en entend parler
 
Bonjour,
tu as qu'un seule projet sur ton disque dur et toutes tes mis sur le serveur git
ce qui dispose d'un pastille verte sont synchronisés sur le serveur GITLAB les rouges ont été modifiés et pas encor envoyé sur le serveur.

clique droit pour faire apparaitre le menu .

1768731987233.png


voila sur GUTLAB
1768732318779.png



tu peux récupérer tes anciennes version quand tu veux j'ais écris MAJ mais tu peux inscrire ce que tu veux genre ajout d'utilisateurs par exemlpe
1768732604189.png
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
37
Affichages
1 K
Réponses
32
Affichages
1 K
Réponses
1
Affichages
434
Retour