Problème avec macro consolidant les feuilles de classeurs
1 réponse
lus
Bonjour,
J'essaie d'appliquer la macro VBA excel ci-dessous.
Toutefois, elle ne rappatrie les données que d'un fichier au lieu de rappatrier toutes les plages de données de tous mes répertoires.
Voici le code utilisé:
Sub syntèseClasseursBD2()
sousRépertoire = "BD"
[A2].CurrentRegion.Offset(1, 0).Clear
Set maitre = ActiveWorkbook
Repertoire = ThisWorkbook.Path
nf = Dir(Repertoire & "\" & sousRépertoire & "\*.xls") ' premier fichier
Do While nf <> ""
Workbooks.Open Filename:=Repertoire & "\" & sousRépertoire & "\" & nf
n = [A1].CurrentRegion.Rows.Count - 1
[A1].CurrentRegion.Offset(1, 0).Copy _
maitre.Sheets(1).[A65000].End(xlUp).Offset(1, 0)
ActiveWorkbook.Close False
'-- nom onglet
[A1].End(xlDown).End(xlToRight).Offset(-n + 1, 1).Resize(n, 1) = Left(nf, Len(nf) - 4)
nf = Dir ' fichier suivant
Loop
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
LSteph
Bonjour,
Dir a faculté à passer au suivant qd on le rappelle s'agissant ici des fichiers Ca ne balaye pas les sous-répertoires, je pense qu'il ne faudrait pas remettre le nom du répertoire dans le dir essaye ton code en réadaptant cette partie ainsi: '... monchemin=Repertoire & "" & sousRépertoire chdir monchemin nf=dir("*.xls") Do while len(nf)>0 '... nf=dir loop
'lSteph 'ou alors c'est que ce sous-répertoire BD ne contiendrait qu'un fichier
On 11 fév, 18:17, lus wrote:
Bonjour, J'essaie d'appliquer la macro VBA excel ci-dessous. Toutefois, elle ne rappatrie les données que d'un fichier au lieu de ra ppatrier toutes les plages de données de tous mes répertoires. Voici le code utilisé:
Sub syntèseClasseursBD2() sousRépertoire = "BD" [A2].CurrentRegion.Offset(1, 0).Clear Set maitre = ActiveWorkbook Repertoire = ThisWorkbook.Path nf = Dir(Repertoire & "" & sousRépertoire & "*.xls") ' premier fichier Do While nf <> "" Workbooks.Open Filename:=Repertoire & "" & sousRépertoire & "" & nf n = [A1].CurrentRegion.Rows.Count - 1 [A1].CurrentRegion.Offset(1, 0).Copy _ maitre.Sheets(1).[A65000].End(xlUp).Offset(1, 0) ActiveWorkbook.Close False '-- nom onglet [A1].End(xlDown).End(xlToRight).Offset(-n + 1, 1).Resize(n, 1) = Left(nf, Len(nf) - 4) nf = Dir ' fichier suivant Loop End Sub
D'avance merci!
Bonjour,
Dir a faculté à passer au suivant qd on le rappelle s'agissant ici des
fichiers
Ca ne balaye pas les sous-répertoires,
je pense qu'il ne faudrait pas remettre le nom du répertoire dans le
dir
essaye ton code en réadaptant cette partie ainsi:
'...
monchemin=Repertoire & "" & sousRépertoire
chdir monchemin
nf=dir("*.xls")
Do while len(nf)>0
'...
nf=dir
loop
'lSteph
'ou alors c'est que ce sous-répertoire BD ne contiendrait qu'un
fichier
On 11 fév, 18:17, lus <l...@domain-xyz.in> wrote:
Bonjour,
J'essaie d'appliquer la macro VBA excel ci-dessous.
Toutefois, elle ne rappatrie les données que d'un fichier au lieu de ra ppatrier
toutes les plages de données de tous mes répertoires.
Voici le code utilisé:
Sub syntèseClasseursBD2()
sousRépertoire = "BD"
[A2].CurrentRegion.Offset(1, 0).Clear
Set maitre = ActiveWorkbook
Repertoire = ThisWorkbook.Path
nf = Dir(Repertoire & "" & sousRépertoire & "*.xls") ' premier fichier
Do While nf <> ""
Workbooks.Open Filename:=Repertoire & "" & sousRépertoire & "" & nf
n = [A1].CurrentRegion.Rows.Count - 1
[A1].CurrentRegion.Offset(1, 0).Copy _
maitre.Sheets(1).[A65000].End(xlUp).Offset(1, 0)
ActiveWorkbook.Close False
'-- nom onglet
[A1].End(xlDown).End(xlToRight).Offset(-n + 1, 1).Resize(n, 1) = Left(nf,
Len(nf) - 4)
nf = Dir ' fichier suivant
Loop
End Sub
Dir a faculté à passer au suivant qd on le rappelle s'agissant ici des fichiers Ca ne balaye pas les sous-répertoires, je pense qu'il ne faudrait pas remettre le nom du répertoire dans le dir essaye ton code en réadaptant cette partie ainsi: '... monchemin=Repertoire & "" & sousRépertoire chdir monchemin nf=dir("*.xls") Do while len(nf)>0 '... nf=dir loop
'lSteph 'ou alors c'est que ce sous-répertoire BD ne contiendrait qu'un fichier
On 11 fév, 18:17, lus wrote:
Bonjour, J'essaie d'appliquer la macro VBA excel ci-dessous. Toutefois, elle ne rappatrie les données que d'un fichier au lieu de ra ppatrier toutes les plages de données de tous mes répertoires. Voici le code utilisé:
Sub syntèseClasseursBD2() sousRépertoire = "BD" [A2].CurrentRegion.Offset(1, 0).Clear Set maitre = ActiveWorkbook Repertoire = ThisWorkbook.Path nf = Dir(Repertoire & "" & sousRépertoire & "*.xls") ' premier fichier Do While nf <> "" Workbooks.Open Filename:=Repertoire & "" & sousRépertoire & "" & nf n = [A1].CurrentRegion.Rows.Count - 1 [A1].CurrentRegion.Offset(1, 0).Copy _ maitre.Sheets(1).[A65000].End(xlUp).Offset(1, 0) ActiveWorkbook.Close False '-- nom onglet [A1].End(xlDown).End(xlToRight).Offset(-n + 1, 1).Resize(n, 1) = Left(nf, Len(nf) - 4) nf = Dir ' fichier suivant Loop End Sub