déplacer fichiers

drisou

XLDnaute Occasionnel
bonsoir le forum ,
en parcourant le forum a la recherche d'une macro pour déplcer des fichiers d'un repertoir a un autre , je suis tomber sur une macro de yeahoo, qui fonctionne tre bien chez moi , sauf que moi je souhaiterais déplacer uniquement des fichiers ayant une longeur de 11 caractères ou plus.
Merci pour votre aide.
la macro de yeahoo:

Sub Sauve_Fichiers()
Dim Nom_Fichier As String, Rep_Travail As String, Rep_Sauve As String
Rep_Travail = "c:\\mes fichiers\\"
Rep_Sauve = "c:\\Sauvegarde\\"
Do
Nom_Fichier = Dir(Rep_Travail & "*.*", vbNormal)
If Not (Nom_Fichier = "") Then Name Rep_Travail & Nom_Fichier As Rep_Sauve & Nom_Fichier
Loop Until Nom_Fichier = ""
End Sub
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
Re : déplacer fichiers

bonsoir

à essayer !? à savoir 11 octets ne signifie pas 11 caractères dedans !
car il y a parfois les caractères de fin de fichier ! voir 13 !? je ne sais plus bien !?

Code:
Sub Sauve_Fichiers()
Dim Nom_Fichier As String, Rep_Travail As String, Rep_Sauve As String
Rep_Travail = "c:\mes fichiers\"
Rep_Sauve = "c:\Sauvegarde\"
Do
Nom_Fichier = Dir(Rep_Travail & "*.txt", vbNormal) ' ici .txt ou .doc ou *.* ou autre ! à voir !?
If Not (Nom_Fichier = "") Then
   SizeFile = FileLen(Rep_Travail & Nom_Fichier) ' ici la taille avec Test If > 11
   If SizeFile > 11 Then Name Rep_Travail & Nom_Fichier As Rep_Sauve & Nom_Fichier
End If
Loop Until Nom_Fichier = ""
End Sub

Roland
 
Dernière édition:

kjin

XLDnaute Barbatruc
Re : déplacer fichiers

Bonsoir,
Je comprends, mais sans certitude
...sauf que moi je souhaiterai déplacer uniquement des fichiers ayant un nom de 11 caractères ou plus.
A tester
Sub Sauve_Fichiers()
Dim Nom_Fichier As String, Rep_Travail As String, Rep_Sauve As String
Rep_Travail = "c:\\mes fichiers\\"
Rep_Sauve = "c:\\Sauvegarde\\"
Do
Nom_Fichier = Dir(Rep_Travail & "*.*", vbNormal)
If Not (Nom_Fichier = "") And Len(Nom_Fichier)>=15 Then Name Rep_Travail & Nom_Fichier As _
Rep_Sauve & Nom_Fichier
Loop Until Nom_Fichier = ""
End Sub
A+
kjin
 
Dernière édition:

drisou

XLDnaute Occasionnel
Re : déplacer fichiers

bonsoir Roland_M,kjin, le forum
Merci pour vos réponses rapides Roland_M et kjin,
kjin c'est bien le nom du fichier qui comporte plus de 11 caracteres. par contre quand je lance la macro , excel reste figé avec le sablier et quand je veux le fermer ca répond pas .
les fichiers ne sont pas déplacés.
 

Roland_M

XLDnaute Barbatruc
Re : déplacer fichiers

re: bonjour
essaies comme ceci
sans les \\ en double Rep_Travail = "c:\\mes fichiers\\"
ensuite If Len(Nom_Fichier) >= 15 est suffisant

Code:
Sub Sauve_Fichiers()
Dim Nom_Fichier As String, Rep_Travail As String, Rep_Sauve As String
Rep_Travail = "c:\mes fichiers\": Rep_Sauve = "c:\Sauvegarde\"
Do
 Nom_Fichier = Dir(Rep_Travail & "*.*", vbNormal)
 If Len(Nom_Fichier) >= 15 Then Name Rep_Travail & Nom_Fichier As Rep_Sauve & Nom_Fichier
Loop Until Nom_Fichier = ""
End Sub

Roland
 

Roland_M

XLDnaute Barbatruc
Re : déplacer fichiers

re

il y a une grosse erreur dans la routine !?
1' ceci devait être en dehors de la boucle
> Nom_Fichier = Dir(Rep_Travail & "*.*", vbNormal)
2' suite fichier comme ceci
Nom_Fichier = Dir()

celle-ci fonctionne correctement !

Code:
Sub Sauve_Fichiers()
Dim Nom_Fichier As String, Rep_Travail As String, Rep_Sauve As String
Rep_Travail = "c:\mes fichiers\": Rep_Sauve = "c:\Sauvegarde\"
Nom_Fichier = Dir(Rep_Travail & "*.*", vbNormal)
Do While Nom_Fichier > ""
 If Len(Nom_Fichier) >= 15 Then Name Rep_Travail & Nom_Fichier As Rep_Sauve & Nom_Fichier
 Nom_Fichier = Dir()
Loop
End Sub

Roland
 

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 088
Membres
103 116
dernier inscrit
kutobi87