Copier ou deplacer des fichiers

tomtom59450

XLDnaute Nouveau
Bonsoir tout le monde

Je cherche une macro qui pourrait copier et deplacer des fichiers . dans un classeur excel, dans la colonne A j' ai une liste de code , les fichiers excel sont composés de ces codes (Exemple: TBM_2_xxxx.xls).

J' arrive a faire une copie d un fichier mais pas pour tout les fichiers de la plage

Comment faire ??

Merci d' avance
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Copier ou deplacer des fichiers

Bonjour Tomtom, bonjour le forum,

Ça manque un peu de précision non ? Copier où ? Sous quel nom ? Déplacer où ? Le chemin de destination est-t-il toujours le même ? l'âge du capitaine ? Etc... Bref tout cela pourrait nous aider à t'aider.
 

tomtom59450

XLDnaute Nouveau
Re : Copier ou deplacer des fichiers

en fait ce je veut faire c deplacer une partie fichiers d un repertoire à un otre tout en conservant le même nom.

J' ai essayé avec copyfile pour un fichier (TBM_2_&a1&.xls) ca marche j' aimerais savoir comment l' appliquer à une plage de cellule (tbm_2_&a1&.xls , tbm_2_&a3&.xls,.........).

merci
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Copier ou deplacer des fichiers

Bonjour Tomtom, bonjour le forum,

Puisque tu as réussi pour un, pourquoi n'utilises-tu pas une boucle du style :

Code:
Sub Macro1()
Dim cel As Range
 
For Each cel In Range("A1:A" & Range("A65536").End(xlUp).Row)
    'ta macro
Next cel
 
End Sub

Sinon, fait un effort ! Envoies ton code ou ton fichier exemple et on essaiera d'adapter.

Pfff... Que c'est difficile parfois d'avoir des renseignements...
 

tomtom59450

XLDnaute Nouveau
Re : Copier ou deplacer des fichiers

j ai reussi a le reconstituer



Sub copiefichier()

Const rep1 As String = "c:\test\"
Const rep2 As String = "c:\test2\"

nom = Range("a1:a3")

c = nom

For Each c In nom


FileCopy rep1 & "tbm_" & c & ".xls", rep2 & "tbm_" & c & ".xls"


Next



End Sub


le probleme c ke si j' élargie la plage et k ' il a des cellule vide ca bloke . comment faire pour qd la cellule vide ca ne bloke plus

merci

ps le code a été constitué de morceaux recupérer un peu partt
 

Bebere

XLDnaute Barbatruc
Re : Copier ou deplacer des fichiers

bonjour Tomtom,Robert
essaye le code suivant

Sub copiefichier()
Const Rep1 As String = "c:\test\"
Const Rep2 As String = "c:\test2\"
Dim C As Range

For Each C In Range("a1:a" & Range("a65536").End(xlUp).Row)
If C <> "" Then FileCopy Rep1 & "tbm_" & C & ".xls", Rep2 & "tbm_" & C & ".xls"
Next C

End Sub
à bientôt
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Copier ou deplacer des fichiers

Bonjour Tomtom, bonjour le forum,

Essaie comme ça avec une condition qui interdit une cellule vide :
Code:
Sub copiefichier()
Dim nom As Range
Dim c As Range
Const rep1 As String = "c:\test\"
Const rep2 As String = "c:\test2\"
 
Set nom = Range("a1:a3")
 
For Each c In nom
    [COLOR=red]If c.Value <> "" Then[/COLOR] FileCopy rep1 & "tbm_" & c & ".xls", rep2 & "tbm_" & c & ".xls"
Next
 
End Sub

Édition :
Salut Bebère ! Même combat, lol...
 

tomtom59450

XLDnaute Nouveau
Re : Copier ou deplacer des fichiers

merci ca marche

par contre j ai une otre question a poser je v qd meme la poser la on verra bien

j' aimerais aussi pouvoir créer une liste des fichiers qui sont dans un reportoire , parce que moi j utilise une vieille methode ( avec la commande dos ==> dir>list.xls puis apres dans le fichier excel je met un formule gauche droite pour a la fin ne conserver que le numéro du fichier par exemple tbm_2_1220.xls deviens 1220)

est ce possible en vba ?

merci encore pour la réponse
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Copier ou deplacer des fichiers

Bonsoir Tomtom, Bebère, bonsoir le forum,

Oui en VBA c'est :
Left(string,x) = affiche les x caractères de gauche de la chaine de caractères
Right(string,x) = affiche les x caractères de doite de la chaine de caractères
ou
Mid(string,x,y) = affiche les y caractères, à partir du xième

Si tes fichiers ont exactement la même structure au niveau du nom, tu peux obtenir 1120 avec (imaginons tbm_2_1220.xls en A1)

Mid(Range("A1"),7,4)
 

Discussions similaires

Réponses
0
Affichages
264

Statistiques des forums

Discussions
312 755
Messages
2 091 705
Membres
105 052
dernier inscrit
HAMOUD