Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

ouverture de classeurs dans des sous répertoires

3 réponses
Avatar
Bidou
Bonjour,

Je voudrais en vba écrire une macro qui me permette d'ouvrir un à un des
classeurs qui se trouvent dans des sous répertoires d'un répertoire dans
lequel est situé le classeur où se trouve ma macro.
Le but est de recopier les valeurs de la plage a1 à a10 de la feuil1 de
chaque classeur dans la feuil2 colonne a:a du classeur contenant la macro.
( appelé par ex synthèse.xls) j'ai donc l'arborescence suivante

c:\répertoire1
il contient le classeur où se trouve la macro.Je l'appelle par ex
synthèse.xls
ensuite à l'intérieur du répertoire1 j'ai les sous-répertoires qui
contiennent les classeurs dont je veux recopier les valeurs
c:\répertoire1
sous-répertoire1
classr1.xls
classr2.xls
classr3.xls
sous-répertoire2
classr4.xls
classr5.xls
etc

J'utilise le pack office 97
Merci pour votre aide

3 réponses

Avatar
Daniel.C
Bonjour.
Essaie :

Sub test()
Dim Fich As String
With Application.FileSearch
.NewSearch
.Filename = "*.xls"
.LookIn = ThisWorkbook.Path
.SearchSubFolders = True
.Execute
For i = 1 To .FoundFiles.Count
Workbooks.Open .FoundFiles(i)

Sheets("Feuil1").Range("A1:A10").Copy _
ThisWorkbook.Sheets("Feuil2").Range("A65536").End(xlUp).Offset(1)
ActiveWorkbook.Close False
Next i
End With
End Sub

Cordialement.
Daniel
"Bidou" a écrit dans le message de news:
4788f38b$0$877$
Bonjour,

Je voudrais en vba écrire une macro qui me permette d'ouvrir un à un des
classeurs qui se trouvent dans des sous répertoires d'un répertoire dans
lequel est situé le classeur où se trouve ma macro.
Le but est de recopier les valeurs de la plage a1 à a10 de la feuil1 de
chaque classeur dans la feuil2 colonne a:a du classeur contenant la macro.
( appelé par ex synthèse.xls) j'ai donc l'arborescence suivante

c:répertoire1
il contient le classeur où se trouve la macro.Je l'appelle par ex
synthèse.xls
ensuite à l'intérieur du répertoire1 j'ai les sous-répertoires qui
contiennent les classeurs dont je veux recopier les valeurs
c:répertoire1
sous-répertoire1
classr1.xls
classr2.xls
classr3.xls
sous-répertoire2
classr4.xls
classr5.xls
etc

J'utilise le pack office 97
Merci pour votre aide







Avatar
Bidou
Merci DanielC

J'ai essayé ta macro mais j'ai du raté qq chose un message d'erreur "
argument ou appel de procédure incorrect' s'affiche
et thisworkbook path=<variable objet ou variable de bloc with non définie>
merci quand même pour ton aide


"Daniel.C" a écrit dans le message de news:
%23%
Bonjour.
Essaie :

Sub test()
Dim Fich As String
With Application.FileSearch
.NewSearch
.Filename = "*.xls"
.LookIn = ThisWorkbook.Path
.SearchSubFolders = True
.Execute
For i = 1 To .FoundFiles.Count
Workbooks.Open .FoundFiles(i)

Sheets("Feuil1").Range("A1:A10").Copy _

ThisWorkbook.Sheets("Feuil2").Range("A65536").End(xlUp).Offset(1)
ActiveWorkbook.Close False
Next i
End With
End Sub

Cordialement.
Daniel
"Bidou" a écrit dans le message de news:
4788f38b$0$877$
Bonjour,

Je voudrais en vba écrire une macro qui me permette d'ouvrir un à un des
classeurs qui se trouvent dans des sous répertoires d'un répertoire dans
lequel est situé le classeur où se trouve ma macro.
Le but est de recopier les valeurs de la plage a1 à a10 de la feuil1 de
chaque classeur dans la feuil2 colonne a:a du classeur contenant la
macro. ( appelé par ex synthèse.xls) j'ai donc l'arborescence suivante

c:répertoire1
il contient le classeur où se trouve la macro.Je l'appelle par ex
synthèse.xls
ensuite à l'intérieur du répertoire1 j'ai les sous-répertoires qui
contiennent les classeurs dont je veux recopier les valeurs
c:répertoire1
sous-répertoire1
classr1.xls
classr2.xls
classr3.xls
sous-répertoire2
classr4.xls
classr5.xls
etc

J'utilise le pack office 97
Merci pour votre aide











Avatar
isabelle
bonjour bidou,

je crois que tu dois mettre une référence à
Microsoft Visual Basic For Applications Extensibility 5.3

isabelle

Merci DanielC

J'ai essayé ta macro mais j'ai du raté qq chose un message d'erreur "
argument ou appel de procédure incorrect' s'affiche
et thisworkbook path=<variable objet ou variable de bloc with non définie>
merci quand même pour ton aide


"Daniel.C" a écrit dans le message de news:
%23%
Bonjour.
Essaie :

Sub test()
Dim Fich As String
With Application.FileSearch
.NewSearch
.Filename = "*.xls"
.LookIn = ThisWorkbook.Path
.SearchSubFolders = True
.Execute
For i = 1 To .FoundFiles.Count
Workbooks.Open .FoundFiles(i)

Sheets("Feuil1").Range("A1:A10").Copy _

ThisWorkbook.Sheets("Feuil2").Range("A65536").End(xlUp).Offset(1)
ActiveWorkbook.Close False
Next i
End With
End Sub

Cordialement.
Daniel
"Bidou" a écrit dans le message de news:
4788f38b$0$877$
Bonjour,

Je voudrais en vba écrire une macro qui me permette d'ouvrir un à un des
classeurs qui se trouvent dans des sous répertoires d'un répertoire dans
lequel est situé le classeur où se trouve ma macro.
Le but est de recopier les valeurs de la plage a1 à a10 de la feuil1 de
chaque classeur dans la feuil2 colonne a:a du classeur contenant la
macro. ( appelé par ex synthèse.xls) j'ai donc l'arborescence suivante

c:répertoire1
il contient le classeur où se trouve la macro.Je l'appelle par ex
synthèse.xls
ensuite à l'intérieur du répertoire1 j'ai les sous-répertoires qui
contiennent les classeurs dont je veux recopier les valeurs
c:répertoire1
sous-répertoire1
classr1.xls
classr2.xls
classr3.xls
sous-répertoire2
classr4.xls
classr5.xls
etc

J'utilise le pack office 97
Merci pour votre aide