Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…