OVH Cloud OVH Cloud

VBA: Parcourir les fichiers d'un dossier

2 réponses
Avatar
Stach
Salut =E0 tous,

Avant-hier, j'avais =E9crit:

Dans un programme VBA, j'aimerai ouvrir le dernier fichier=20
excell cr=E9er dans le dossier: C:\Labo\Melanges\

Tous les fichiers pr=E9sents dans ce dossier sont nomm=E9s:

"Mel" suivi de leur date de cr=E9ation =E0 l'envers. Par=20
exemple, pour un fichier cr=E9er aujourd'hui c'est: Mel040618

Est-il possible en vba d'ouvrir le fichier dont le nom=20
contient la date invers=E9e la plus r=E9cente?

Et Pascal m'a r=E9pondu:

dim fic as string
dim dernier as string
dim dt as string

fic=3D dir("C:\Labo\Melanges\Mel*.xls")
do until fic=3D""
if right$(fic,6)>dt then
dt=3Dright$(dt,6)
dernier=3Dfic
end if
dir
loop
if dernier<>"" then workbooks.open dernier

Mon probl=E8me est que cette solution me fait une boucle=20
infinie, elle ne parcourt pas tous les fichiers pr=E9sent=20
dans le dossier, mais reste ind=E9finiment sur le premier=20
fichier qu'elle a trouv=E9 sans jamais pass=E9 au suivant.

Qq peut-il m'aider =E0 r=E9soudre ce probl=E8me svp?

Stach ;-)

2 réponses

Avatar
Pascal Engelmajer
Salut,
il manque l'affectation de fic :
fic = dir
à la place de :
dir
désolé !!!
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
http://www.ilyapa.net/baseExcel
"Stach" a écrit dans le message de
news: 1ee3e01c456cd$b2549ab0$
Salut à tous,

Avant-hier, j'avais écrit:

Dans un programme VBA, j'aimerai ouvrir le dernier fichier
excell créer dans le dossier: C:LaboMelanges

Tous les fichiers présents dans ce dossier sont nommés:

"Mel" suivi de leur date de création à l'envers. Par
exemple, pour un fichier créer aujourd'hui c'est: Mel040618

Est-il possible en vba d'ouvrir le fichier dont le nom
contient la date inversée la plus récente?

Et Pascal m'a répondu:

dim fic as string
dim dernier as string
dim dt as string

fic= dir("C:LaboMelangesMel*.xls")
do until fic=""
if right$(fic,6)>dt then
dt=right$(dt,6)
dernier=fic
end if
dir
loop
if dernier<>"" then workbooks.open dernier

Mon problème est que cette solution me fait une boucle
infinie, elle ne parcourt pas tous les fichiers présent
dans le dossier, mais reste indéfiniment sur le premier
fichier qu'elle a trouvé sans jamais passé au suivant.

Qq peut-il m'aider à résoudre ce problème svp?

Stach ;-)
Avatar
Stach
Merci;-)

-----Message d'origine-----
Salut,
il manque l'affectation de fic :
fic = dir
à la place de :
dir
désolé !!!
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait
pas ou il va."

Sénèque.
http://www.ilyapa.net/excel
http://www.ilyapa.net/baseExcel
"Stach" a écrit
dans le message de

news: 1ee3e01c456cd$b2549ab0$
Salut à tous,

Avant-hier, j'avais écrit:

Dans un programme VBA, j'aimerai ouvrir le dernier fichier
excell créer dans le dossier: C:LaboMelanges

Tous les fichiers présents dans ce dossier sont nommés:

"Mel" suivi de leur date de création à l'envers. Par
exemple, pour un fichier créer aujourd'hui c'est:
Mel040618


Est-il possible en vba d'ouvrir le fichier dont le nom
contient la date inversée la plus récente?

Et Pascal m'a répondu:

dim fic as string
dim dernier as string
dim dt as string

fic= dir("C:LaboMelangesMel*.xls")
do until fic=""
if right$(fic,6)>dt then
dt=right$(dt,6)
dernier=fic
end if
dir
loop
if dernier<>"" then workbooks.open dernier

Mon problème est que cette solution me fait une boucle
infinie, elle ne parcourt pas tous les fichiers présent
dans le dossier, mais reste indéfiniment sur le premier
fichier qu'elle a trouvé sans jamais passé au suivant.

Qq peut-il m'aider à résoudre ce problème svp?

Stach ;-)


.