OVH Cloud OVH Cloud

copier certains fichiers d'un répertoire à un autre

9 réponses
Avatar
Hervé
R=E9cup=E9rer =E0 l'aide d'une macro, tous les fichiers d'une=20
directorie commen=E7ant par la valeur d'une variable, pour=20
les copier dans une autre directorie
Merci =E0 tous
Herv=E9

9 réponses

Avatar
Jean-François Aubert
Bonsoir, (j'aime bien)

Cette proc copie les fichiers dont le nom commence par "truc"

'************************
Sub yy()
Dim fso As Object
Dim truc As String
Dim Source As String

x = "truc"
Source = "d:Mes Documents" & x & "*.xls"
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile Source, "d:Mes Documentstest"
Set fso = Nothing
End Sub
'*******************************

--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}


"Hervé" a écrit dans le message de
news:02da01c3b9ca$8dd53b40$
Récupérer à l'aide d'une macro, tous les fichiers d'une
directorie commençant par la valeur d'une variable, pour
les copier dans une autre directorie
Merci à tous
Hervé
Avatar
Philippe.R
Bonsoir Hervé,
En parallèle avec la réponse de Jean François,

http://perso.wanadoo.fr/frederic.sigonneau/code/Fichiers/CopieDossierSousDossiers1.txt

et plus généralement :

http://perso.wanadoo.fr/frederic.sigonneau/

devraient pouvoir faire l'affaire
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Hervé" a écrit dans le message de news:02da01c3b9ca$8dd53b40$
Récupérer à l'aide d'une macro, tous les fichiers d'une
directorie commençant par la valeur d'une variable, pour
les copier dans une autre directorie
Merci à tous
Hervé
Avatar
Match
Bonjour à tous,
est-il possible d'inclure dans cette procédure un "bout de code" qui
appliquerait (exécuter) une macro nommée "Macro1" a chaque classeur avant de
les copier dans un autre répertoire comme dans l'exemple ci-dessous.

Autrement dit :
ouvrir classeur1 du répertoire "d:Mes Documents"
appliquer la "Macro1"
sauvegarder dans ""d:Mes Documentstest"
fermer le classeur
répéter jusqu'à ce que tous les classeurs du répertoire "d:Mes Documents"
aient été traités.
Les classeurs (environ 500) portent tout des noms très différent.
Merci beaucoup

N.B. j'avais demandé le 22 nov. et Philippe R m'a répondu mais la solution
ne répond pas à mon besoin (Merci tout de même à Philippe)

Match


"Jean-François Aubert" <à a écrit dans le message de
news:3fce44ea$
Bonsoir, (j'aime bien)

Cette proc copie les fichiers dont le nom commence par "truc"

'************************
Sub yy()
Dim fso As Object
Dim truc As String
Dim Source As String

x = "truc"
Source = "d:Mes Documents" & x & "*.xls"
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile Source, "d:Mes Documentstest"
Set fso = Nothing
End Sub
'*******************************

--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}



Avatar
FxM
Bonsoir Charles, (le vrai pas l'autre)

A tester sur des copies !!!
Sub test()
Dim awb, i, total, chemin, nom
awb = ActiveWorkbook.Name
With Application.FileSearch
.NewSearch
.Filename = "*.*"
.LookIn = "D:MES DOCUMENTS"
.SearchSubFolders = False
.Execute
With .FoundFiles
For i = 1 To .Count
total = .Item(i)
Workbook.Open (total)
chemin = ActiveWorkbook.Path
nom = ActiveWorkbook.Name
Call macro1
ActiveWorkbook.SaveAs (chemin & "test" & nom)
ActiveWorkbook.Close False
Next i
End With
End With
End Sub

@+
FxM



Match wrote:

Bonjour à tous,
est-il possible d'inclure dans cette procédure un "bout de code" qui
appliquerait (exécuter) une macro nommée "Macro1" a chaque classeur avant de
les copier dans un autre répertoire comme dans l'exemple ci-dessous.

Autrement dit :
ouvrir classeur1 du répertoire "d:Mes Documents"
appliquer la "Macro1"
sauvegarder dans ""d:Mes Documentstest"
fermer le classeur
répéter jusqu'à ce que tous les classeurs du répertoire "d:Mes Documents"
aient été traités.
Les classeurs (environ 500) portent tout des noms très différent.
Merci beaucoup

N.B. j'avais demandé le 22 nov. et Philippe R m'a répondu mais la solution
ne répond pas à mon besoin (Merci tout de même à Philippe)

Match


"Jean-François Aubert" <à a écrit dans le message de
news:3fce44ea$

Bonsoir, (j'aime bien)

Cette proc copie les fichiers dont le nom commence par "truc"

'************************
Sub yy()
Dim fso As Object
Dim truc As String
Dim Source As String

x = "truc"
Source = "d:Mes Documents" & x & "*.xls"
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile Source, "d:Mes Documentstest"
Set fso = Nothing
End Sub
'*******************************

--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}








Avatar
Match
Salut,
ça plante sur
--> Workbook.Open (total)
erreur d'exec 424
objet requis

merci beaucoup

Match (qui n'ose signer Charles ;-)


"FxM" a écrit dans le message de
news:
Bonsoir Charles, (le vrai pas l'autre)

A tester sur des copies !!!
Sub test()
Dim awb, i, total, chemin, nom
awb = ActiveWorkbook.Name
With Application.FileSearch
.NewSearch
.Filename = "*.*"
.LookIn = "D:MES DOCUMENTS"
.SearchSubFolders = False
.Execute
With .FoundFiles
For i = 1 To .Count
total = .Item(i)
Workbook.Open (total)
chemin = ActiveWorkbook.Path
nom = ActiveWorkbook.Name
Call macro1
ActiveWorkbook.SaveAs (chemin & "test" & nom)
ActiveWorkbook.Close False
Next i
End With
End With
End Sub

@+
FxM



Match wrote:

Bonjour à tous,
est-il possible d'inclure dans cette procédure un "bout de code" qui
appliquerait (exécuter) une macro nommée "Macro1" a chaque classeur
avant de


les copier dans un autre répertoire comme dans l'exemple ci-dessous.

Autrement dit :
ouvrir classeur1 du répertoire "d:Mes Documents"
appliquer la "Macro1"
sauvegarder dans ""d:Mes Documentstest"
fermer le classeur
répéter jusqu'à ce que tous les classeurs du répertoire "d:Mes
Documents"


aient été traités.
Les classeurs (environ 500) portent tout des noms très différent.
Merci beaucoup

N.B. j'avais demandé le 22 nov. et Philippe R m'a répondu mais la
solution


ne répond pas à mon besoin (Merci tout de même à Philippe)

Match


"Jean-François Aubert" <à a écrit dans le
message de


news:3fce44ea$

Bonsoir, (j'aime bien)

Cette proc copie les fichiers dont le nom commence par "truc"

'************************
Sub yy()
Dim fso As Object
Dim truc As String
Dim Source As String

x = "truc"
Source = "d:Mes Documents" & x & "*.xls"
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile Source, "d:Mes Documentstest"
Set fso = Nothing
End Sub
'*******************************

--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}











Avatar
FxM
Bonsoir Charles,

Match wrote:
Salut,
ça plante sur
--> Workbook.Open (total)
erreur d'exec 424
objet requis


Ben, chez moi aussi :o| z'ai oublié un s à workbookS.open(...)

Il y a un autre point à vérifier : dans quel classeur es-tu à la fin de
macro1. Un simple msgbox "Macro1" en guise de macro ne pose pas de
problème mais ...

@+
FxM

Avatar
Match
Re-salut François-Xavier,
aux premiers essais, ça semble bien fonctionner.
Merci beaucoup pour tes efforts et ta patience
merci aussi à tous ceux et celles qui animent ce forum qui est une source
intarissable d'expérience, connaissance, partage, humour, etc...

Match


"FxM" a écrit dans le message de
news:
Bonsoir Charles,

Match wrote:
Salut,
ça plante sur
--> Workbook.Open (total)
erreur d'exec 424
objet requis


Ben, chez moi aussi :o| z'ai oublié un s à workbookS.open(...)

Il y a un autre point à vérifier : dans quel classeur es-tu à la fin de
macro1. Un simple msgbox "Macro1" en guise de macro ne pose pas de
problème mais ...

@+
FxM




Avatar
FxM
Match wrote:
Re-salut François-Xavier,
aux premiers essais, ça semble bien fonctionner.
Ouuffff ;o)


Merci beaucoup pour tes efforts et ta patience
merci aussi à tous ceux et celles qui animent ce forum qui est une source
intarissable d'expérience, connaissance, partage, humour, etc...
C'est transmis


@+
FxM

Avatar
Match
Et bonne fête de ma part aussi
( trop concentré sur mon problème pour réagir avant)

Match