Aide sur la Fonction DIR ; CHDIR

Le
Bidou
Bonjour,

Les instructions VBA suivantes ( que j'ai piquées sur ce forum un grand
merci à son auteur)figurant dans un classeur TEST.xls permettent ( si j'ai
bien compris) le balayage des fichiers à extensions xls commençant par toto
du dossier courant
ChDir ThisWorkbook.Path
var = Dir("toto*.xls") ' premier classeur
Do While var<> ""
Workbooks.Open Filename:=var
instructions

Next c
ActiveWorkbook.Close
var= Dir ' classeur suivant
Loop
Ca marche très bien dans le cas où les classeurs à analyser se trouvent dans
un seul dossier .
Mais comment faire s'ils figurent dans plusieurs sous-dossiers ??
par exemple :

C:TOTAUX GENERAUX
TOTAUX JANV
toto1.xls
toto2.xls
toto3.xls
TOTAUX FEV
toto4.xls
toto5.xls
toto6.xls

Merci pour votre aide
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
FFO
Le #5114371
Salut Bidou

soit sous C:TOTAUX GENERAUX

les sous dossiers nommés:
TOTAUX JANV
TOTAUX FEV
TOTAUX MARS
Etc....

Ce code :

On Error Resume Next
For i = 1 To 12
Mois = UCase(Format(Mid(Date, 1, 3) & Format(i, "00") & Mid(Date, 6), "mmmm"))
If i = 2 Then
Mois = "FEVRIER"
End If
If Dir("C:TOTAUX GENERAUXTOTAUX " & Mid(Mois, 1, 3) & "", vbDirectory) <>
"" Then
ChDir ("C:TOTAUX GENERAUXTOTAUX " & Mid(Mois, 1, 3) & "")
Else
ChDir ("C:TOTAUX GENERAUXTOTAUX " & Mid(Mois, 1, 4) & "")
End If
Var = Dir("Fichiers*.xls") ' premier classeur
Do While Var <> ""
Workbooks.Open Filename:=Var
Var = Dir ' classeur suivant
Loop
Next i

j'ai par les lignes :

If Dir("C:TOTAUX GENERAUXTOTAUX " & Mid(Mois, 1, 3) & "", vbDirectory) <>
"" Then
ChDir ("C:TOTAUX GENERAUXTOTAUX " & Mid(Mois, 1, 3) & "")
Else
ChDir ("C:TOTAUX GENERAUXTOTAUX " & Mid(Mois, 1, 4) & "")
End If

pris en considération le mois du dossier sous forme de 3 lettres comme
TOTAUX FEV ou de sous forme de 4 lettres comme TOTAUX JANV

Il va de soit qu'une meilleur harmonisation dans le libellé des mois aurais
allégé le code

J'espère que certain mois n'auront pas un nombre de lettres différents

Par les lignes :

If i = 2 Then
Mois = "FEVRIER"
End If

j'ai traité à part le mois de février qui présente un E commercial avec
accent avec la ligne :

Mois = UCase(Format(Mid(Date, 1, 3) & Format(i, "00") & Mid(Date, 6), "mmmm"))


Voilà les quelques explications
C'est un peu lourd mais efficace

Dis moi !!!


Bonjour,

Les instructions VBA suivantes ( que j'ai piquées sur ce forum un grand
merci à son auteur)figurant dans un classeur TEST.xls permettent ( si j'ai
bien compris) le balayage des fichiers à extensions xls commençant par toto
du dossier courant
ChDir ThisWorkbook.Path
var = Dir("toto*.xls") ' premier classeur
Do While var<> ""
Workbooks.Open Filename:=var
instructions

Next c
ActiveWorkbook.Close
var= Dir ' classeur suivant
Loop
Ca marche très bien dans le cas où les classeurs à analyser se trouvent dans
un seul dossier .
Mais comment faire s'ils figurent dans plusieurs sous-dossiers ??
par exemple :

C:TOTAUX GENERAUX
TOTAUX JANV
toto1.xls
toto2.xls
toto3.xls
TOTAUX FEV
toto4.xls
toto5.xls
toto6.xls

Merci pour votre aide






Gaetan FARRE
Le #5339751
Bonjour
Je vais intégrer tes lignes dans ma macro et je tiens au courant

merci pour ton aide

"FFO"
Salut Bidou

soit sous C:TOTAUX GENERAUX

les sous dossiers nommés:
TOTAUX JANV
TOTAUX FEV
TOTAUX MARS
Etc....

Ce code :

On Error Resume Next
For i = 1 To 12
Mois = UCase(Format(Mid(Date, 1, 3) & Format(i, "00") & Mid(Date, 6),
"mmmm"))
If i = 2 Then
Mois = "FEVRIER"
End If
If Dir("C:TOTAUX GENERAUXTOTAUX " & Mid(Mois, 1, 3) & "", vbDirectory)
<>
"" Then
ChDir ("C:TOTAUX GENERAUXTOTAUX " & Mid(Mois, 1, 3) & "")
Else
ChDir ("C:TOTAUX GENERAUXTOTAUX " & Mid(Mois, 1, 4) & "")
End If
Var = Dir("Fichiers*.xls") ' premier classeur
Do While Var <> ""
Workbooks.Open Filename:=Var
Var = Dir ' classeur suivant
Loop
Next i

j'ai par les lignes :

If Dir("C:TOTAUX GENERAUXTOTAUX " & Mid(Mois, 1, 3) & "", vbDirectory)
<>
"" Then
ChDir ("C:TOTAUX GENERAUXTOTAUX " & Mid(Mois, 1, 3) & "")
Else
ChDir ("C:TOTAUX GENERAUXTOTAUX " & Mid(Mois, 1, 4) & "")
End If

pris en considération le mois du dossier sous forme de 3 lettres comme
TOTAUX FEV ou de sous forme de 4 lettres comme TOTAUX JANV

Il va de soit qu'une meilleur harmonisation dans le libellé des mois
aurais
allégé le code

J'espère que certain mois n'auront pas un nombre de lettres différents

Par les lignes :

If i = 2 Then
Mois = "FEVRIER"
End If

j'ai traité à part le mois de février qui présente un E commercial avec
accent avec la ligne :

Mois = UCase(Format(Mid(Date, 1, 3) & Format(i, "00") & Mid(Date, 6),
"mmmm"))


Voilà les quelques explications
C'est un peu lourd mais efficace

Dis moi !!!


Bonjour,

Les instructions VBA suivantes ( que j'ai piquées sur ce forum un grand
merci à son auteur)figurant dans un classeur TEST.xls permettent ( si
j'ai
bien compris) le balayage des fichiers à extensions xls commençant par
toto
du dossier courant
ChDir ThisWorkbook.Path
var = Dir("toto*.xls") ' premier classeur
Do While var<> ""
Workbooks.Open Filename:=var
instructions

Next c
ActiveWorkbook.Close
var= Dir ' classeur suivant
Loop
Ca marche très bien dans le cas où les classeurs à analyser se trouvent
dans
un seul dossier .
Mais comment faire s'ils figurent dans plusieurs sous-dossiers ??
par exemple :

C:TOTAUX GENERAUX
TOTAUX JANV
toto1.xls
toto2.xls
toto3.xls
TOTAUX FEV
toto4.xls
toto5.xls
toto6.xls

Merci pour votre aide








Publicité
Poster une réponse
Anonyme