Bonsoir, et merci pour ta cordiale fidélité.
Oui, effectivement, mon "client", mon fils, qui craint que je m'ennuie,
m'occupe beaucoup - à titre gratuit bien sûr - et il fait évoluer son
projet.
Pour le .doc, j'avais compris.
J'avais aussi compris le Len(f)>0
Ton explication me permet "d'entrevoir" des choses, mais je bloque
encore... et j'arrive pas à décoincer, peut-être suis-je bouché ! ?
Je te rappelle donc le code en cause :
***************************
Sub ToutleRepertoire()
f = Dir("*.*")
Do While Len(f) > 0
Documents.Open (f)
'ChangeLh (Exécution d'une macro dans chaque fichier du répertoire)
f = Dir
Loop
End Sub
*****************************
Je te reprécise ci-dessous mon pb :
Avec f = Dir("*.*"), qqchose ne va encore pas :
Après exécution (en pas à pas) de f = Dir("*.*"), j'obtiens toujours
f = "D:Documents MB.lnk", même quand je viens d'ouvrir un fichier du
répertoire C:Mes Documents qui est donc le répertoire en cours.
(Documents MB est mon répertoire personnel dans la partition D:).
La macro est dans PERSO.XLS qui est aussi dans C:....
Alors, je me demande s'il ne faut pas spécifier dans la macro, le
répertoire dans lequel elle doit travailler.
Mais je ne sais où ni comment le spécifier.
Merci, à +Bonsoir LANIMAL,
Oui je viens de lire.
L'autre jour ta question portait sur un ensemble de fichiers Word. D'où
le *.doc.
Pour tous fichiers Youky a donné la réponse *.*
Explication:
Lorsque tu appelle une première fois
f=dir("*.xls")
vient la liste des fichiers xls du répertoire en cours
mais en l'occurence le premier seul sera retenu.
Dans la boucle ( à la fin)
lorsque tu rappelle simplement
f=dir
le même critère est conservé mais
on passe au fichier suivant.
Le len(f)>0
mesure la longuer de chaine de f, ceci permet de s'arrêter lorsqu'il n'y
a plus de fichiers.
Cordialement.
lSteph
LANIMAL a exprimé avec précision :Bonjour
Un domaine nouveau pour moi, et je ne m'en sort pas !
1 - Je voudrais lister tous les fichiers (.pdf, .mid .mp3 etc.)
du dossier D:Mon dossierMusique
dans la colonne A:A d'un classeur (par exemple : Toto.xls)
à créer sur le Bureau.
2 - Plus tard dans mon exploitation, il me faudra ouvrir Toto.xls
(qui entre temps aura peut-être été fermé)
Quel est le code qui permet de savoir si Toto est déjà ouvert ?
afin d'utiliser dans ce cas l'instruction "Activate", et non "Open".
3 - Si qqun a un peu de tps pour m'expliquer cet exemple de l'aide VBA :
**************
Sub AfficherListeDossiers(specdossier)
Dim fs, f, f1, fc, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(specdossier)
Set fc = f.Files
For Each f1 In fc
s = s & f1.Name
s = s & vbCrLf
Next
MsgBox s
End Sub
****************
Je n'arrive pas à exécuter cet exemple
Que faut-il mettre à la place de specdossier ?
4 - L'autre jour lSteph (j'espère qu'il me lira) m'a suggéré le code
ci-dessous :
##########################
Sub ToutleRepertoire()
f = Dir("*.doc")
Do While Len(f) > 0
Documents.Open (f)
'ChangeLh (Exécution d'une macro dans chaque fichier du répertoire)
f = Dir
Loop
End Sub
#########################
La boucle "Do" ne se fait jamais car f = "", probablement parce que je
ne mets pas ce qu'il faut à la place de "*.doc"
IL Y A LONGTEMPS QUE JE NE ME SUIS PAS SENTI AUSSI NUL :-(((
Merci pour votre aide, d'autant que je me sens exigeant aujourd'hui !
Bonsoir, et merci pour ta cordiale fidélité.
Oui, effectivement, mon "client", mon fils, qui craint que je m'ennuie,
m'occupe beaucoup - à titre gratuit bien sûr - et il fait évoluer son
projet.
Pour le .doc, j'avais compris.
J'avais aussi compris le Len(f)>0
Ton explication me permet "d'entrevoir" des choses, mais je bloque
encore... et j'arrive pas à décoincer, peut-être suis-je bouché ! ?
Je te rappelle donc le code en cause :
***************************
Sub ToutleRepertoire()
f = Dir("*.*")
Do While Len(f) > 0
Documents.Open (f)
'ChangeLh (Exécution d'une macro dans chaque fichier du répertoire)
f = Dir
Loop
End Sub
*****************************
Je te reprécise ci-dessous mon pb :
Avec f = Dir("*.*"), qqchose ne va encore pas :
Après exécution (en pas à pas) de f = Dir("*.*"), j'obtiens toujours
f = "D:Documents MB.lnk", même quand je viens d'ouvrir un fichier du
répertoire C:Mes Documents qui est donc le répertoire en cours.
(Documents MB est mon répertoire personnel dans la partition D:).
La macro est dans PERSO.XLS qui est aussi dans C:....
Alors, je me demande s'il ne faut pas spécifier dans la macro, le
répertoire dans lequel elle doit travailler.
Mais je ne sais où ni comment le spécifier.
Merci, à +
Bonsoir LANIMAL,
Oui je viens de lire.
L'autre jour ta question portait sur un ensemble de fichiers Word. D'où
le *.doc.
Pour tous fichiers Youky a donné la réponse *.*
Explication:
Lorsque tu appelle une première fois
f=dir("*.xls")
vient la liste des fichiers xls du répertoire en cours
mais en l'occurence le premier seul sera retenu.
Dans la boucle ( à la fin)
lorsque tu rappelle simplement
f=dir
le même critère est conservé mais
on passe au fichier suivant.
Le len(f)>0
mesure la longuer de chaine de f, ceci permet de s'arrêter lorsqu'il n'y
a plus de fichiers.
Cordialement.
lSteph
LANIMAL a exprimé avec précision :
Bonjour
Un domaine nouveau pour moi, et je ne m'en sort pas !
1 - Je voudrais lister tous les fichiers (.pdf, .mid .mp3 etc.)
du dossier D:Mon dossierMusique
dans la colonne A:A d'un classeur (par exemple : Toto.xls)
à créer sur le Bureau.
2 - Plus tard dans mon exploitation, il me faudra ouvrir Toto.xls
(qui entre temps aura peut-être été fermé)
Quel est le code qui permet de savoir si Toto est déjà ouvert ?
afin d'utiliser dans ce cas l'instruction "Activate", et non "Open".
3 - Si qqun a un peu de tps pour m'expliquer cet exemple de l'aide VBA :
**************
Sub AfficherListeDossiers(specdossier)
Dim fs, f, f1, fc, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(specdossier)
Set fc = f.Files
For Each f1 In fc
s = s & f1.Name
s = s & vbCrLf
Next
MsgBox s
End Sub
****************
Je n'arrive pas à exécuter cet exemple
Que faut-il mettre à la place de specdossier ?
4 - L'autre jour lSteph (j'espère qu'il me lira) m'a suggéré le code
ci-dessous :
##########################
Sub ToutleRepertoire()
f = Dir("*.doc")
Do While Len(f) > 0
Documents.Open (f)
'ChangeLh (Exécution d'une macro dans chaque fichier du répertoire)
f = Dir
Loop
End Sub
#########################
La boucle "Do" ne se fait jamais car f = "", probablement parce que je
ne mets pas ce qu'il faut à la place de "*.doc"
IL Y A LONGTEMPS QUE JE NE ME SUIS PAS SENTI AUSSI NUL :-(((
Merci pour votre aide, d'autant que je me sens exigeant aujourd'hui !
Bonsoir, et merci pour ta cordiale fidélité.
Oui, effectivement, mon "client", mon fils, qui craint que je m'ennuie,
m'occupe beaucoup - à titre gratuit bien sûr - et il fait évoluer son
projet.
Pour le .doc, j'avais compris.
J'avais aussi compris le Len(f)>0
Ton explication me permet "d'entrevoir" des choses, mais je bloque
encore... et j'arrive pas à décoincer, peut-être suis-je bouché ! ?
Je te rappelle donc le code en cause :
***************************
Sub ToutleRepertoire()
f = Dir("*.*")
Do While Len(f) > 0
Documents.Open (f)
'ChangeLh (Exécution d'une macro dans chaque fichier du répertoire)
f = Dir
Loop
End Sub
*****************************
Je te reprécise ci-dessous mon pb :
Avec f = Dir("*.*"), qqchose ne va encore pas :
Après exécution (en pas à pas) de f = Dir("*.*"), j'obtiens toujours
f = "D:Documents MB.lnk", même quand je viens d'ouvrir un fichier du
répertoire C:Mes Documents qui est donc le répertoire en cours.
(Documents MB est mon répertoire personnel dans la partition D:).
La macro est dans PERSO.XLS qui est aussi dans C:....
Alors, je me demande s'il ne faut pas spécifier dans la macro, le
répertoire dans lequel elle doit travailler.
Mais je ne sais où ni comment le spécifier.
Merci, à +Bonsoir LANIMAL,
Oui je viens de lire.
L'autre jour ta question portait sur un ensemble de fichiers Word. D'où
le *.doc.
Pour tous fichiers Youky a donné la réponse *.*
Explication:
Lorsque tu appelle une première fois
f=dir("*.xls")
vient la liste des fichiers xls du répertoire en cours
mais en l'occurence le premier seul sera retenu.
Dans la boucle ( à la fin)
lorsque tu rappelle simplement
f=dir
le même critère est conservé mais
on passe au fichier suivant.
Le len(f)>0
mesure la longuer de chaine de f, ceci permet de s'arrêter lorsqu'il n'y
a plus de fichiers.
Cordialement.
lSteph
LANIMAL a exprimé avec précision :Bonjour
Un domaine nouveau pour moi, et je ne m'en sort pas !
1 - Je voudrais lister tous les fichiers (.pdf, .mid .mp3 etc.)
du dossier D:Mon dossierMusique
dans la colonne A:A d'un classeur (par exemple : Toto.xls)
à créer sur le Bureau.
2 - Plus tard dans mon exploitation, il me faudra ouvrir Toto.xls
(qui entre temps aura peut-être été fermé)
Quel est le code qui permet de savoir si Toto est déjà ouvert ?
afin d'utiliser dans ce cas l'instruction "Activate", et non "Open".
3 - Si qqun a un peu de tps pour m'expliquer cet exemple de l'aide VBA :
**************
Sub AfficherListeDossiers(specdossier)
Dim fs, f, f1, fc, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(specdossier)
Set fc = f.Files
For Each f1 In fc
s = s & f1.Name
s = s & vbCrLf
Next
MsgBox s
End Sub
****************
Je n'arrive pas à exécuter cet exemple
Que faut-il mettre à la place de specdossier ?
4 - L'autre jour lSteph (j'espère qu'il me lira) m'a suggéré le code
ci-dessous :
##########################
Sub ToutleRepertoire()
f = Dir("*.doc")
Do While Len(f) > 0
Documents.Open (f)
'ChangeLh (Exécution d'une macro dans chaque fichier du répertoire)
f = Dir
Loop
End Sub
#########################
La boucle "Do" ne se fait jamais car f = "", probablement parce que je
ne mets pas ce qu'il faut à la place de "*.doc"
IL Y A LONGTEMPS QUE JE NE ME SUIS PAS SENTI AUSSI NUL :-(((
Merci pour votre aide, d'autant que je me sens exigeant aujourd'hui !
Bonsoir, et merci pour ta cordiale fidélité.
Oui, effectivement, mon "client", mon fils, qui craint que je m'ennuie,
m'occupe beaucoup - à titre gratuit bien sûr - et il fait évoluer s on
projet.
Pour le .doc, j'avais compris.
J'avais aussi compris le Len(f)>0
Ton explication me permet "d'entrevoir" des choses, mais je bloque
encore... et j'arrive pas à décoincer, peut-être suis-je bouché ! ?
Je te rappelle donc le code en cause :
***************************
Sub ToutleRepertoire()
f = Dir("*.*")
Do While Len(f) > 0
Documents.Open (f)
'ChangeLh (Exécution d'une macro dans chaque fichier du répertoir e)
f = Dir
Loop
End Sub
*****************************
Je te reprécise ci-dessous mon pb :
Avec f = Dir("*.*"), qqchose ne va encore pas :
Après exécution (en pas à pas) de f = Dir("*.*"), j'obtiens toujo urs
f = "D:Documents MB.lnk", même quand je viens d'ouvrir un fichier du
répertoire C:Mes Documents qui est donc le répertoire en cours.
(Documents MB est mon répertoire personnel dans la partition D:).
La macro est dans PERSO.XLS qui est aussi dans C:....
Alors, je me demande s'il ne faut pas spécifier dans la macro, le
répertoire dans lequel elle doit travailler.
Mais je ne sais où ni comment le spécifier.
Merci, à +Bonsoir LANIMAL,
Oui je viens de lire.
L'autre jour ta question portait sur un ensemble de fichiers Word. D'o ù
le *.doc.
Pour tous fichiers Youky a donné la réponse *.*
Explication:
Lorsque tu appelle une première fois
f=dir("*.xls")
vient la liste des fichiers xls du répertoire en cours
mais en l'occurence le premier seul sera retenu.
Dans la boucle ( à la fin)
lorsque tu rappelle simplement
f=dir
le même critère est conservé mais
on passe au fichier suivant.
Le len(f)>0
mesure la longuer de chaine de f, ceci permet de s'arrêter lorsqu'il n'y
a plus de fichiers.
Cordialement.
lSteph
LANIMAL a exprimé avec précision :Bonjour
Un domaine nouveau pour moi, et je ne m'en sort pas !
1 - Je voudrais lister tous les fichiers (.pdf, .mid .mp3 etc.)
du dossier D:Mon dossierMusique
dans la colonne A:A d'un classeur (par exemple : Toto.xls)
à créer sur le Bureau.
2 - Plus tard dans mon exploitation, il me faudra ouvrir Toto.xls
(qui entre temps aura peut-être été fermé)
Quel est le code qui permet de savoir si Toto est déjà ouvert ?
afin d'utiliser dans ce cas l'instruction "Activate", et non "Open".
3 - Si qqun a un peu de tps pour m'expliquer cet exemple de l'aide VBA :
**************
Sub AfficherListeDossiers(specdossier)
Dim fs, f, f1, fc, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(specdossier)
Set fc = f.Files
For Each f1 In fc
s = s & f1.Name
s = s & vbCrLf
Next
MsgBox s
End Sub
****************
Je n'arrive pas à exécuter cet exemple
Que faut-il mettre à la place de specdossier ?
4 - L'autre jour lSteph (j'espère qu'il me lira) m'a suggéré le code
ci-dessous :
##########################
Sub ToutleRepertoire()
f = Dir("*.doc")
Do While Len(f) > 0
Documents.Open (f)
'ChangeLh (Exécution d'une macro dans chaque fichier du répert oire)
f = Dir
Loop
End Sub
#########################
La boucle "Do" ne se fait jamais car f = "", probablement parce que je
ne mets pas ce qu'il faut à la place de "*.doc"
IL Y A LONGTEMPS QUE JE NE ME SUIS PAS SENTI AUSSI NUL :-(((
Merci pour votre aide, d'autant que je me sens exigeant aujourd'hui !
Bonsoir, et merci pour ta cordiale fidélité.
Oui, effectivement, mon "client", mon fils, qui craint que je m'ennuie,
m'occupe beaucoup - à titre gratuit bien sûr - et il fait évoluer s on
projet.
Pour le .doc, j'avais compris.
J'avais aussi compris le Len(f)>0
Ton explication me permet "d'entrevoir" des choses, mais je bloque
encore... et j'arrive pas à décoincer, peut-être suis-je bouché ! ?
Je te rappelle donc le code en cause :
***************************
Sub ToutleRepertoire()
f = Dir("*.*")
Do While Len(f) > 0
Documents.Open (f)
'ChangeLh (Exécution d'une macro dans chaque fichier du répertoir e)
f = Dir
Loop
End Sub
*****************************
Je te reprécise ci-dessous mon pb :
Avec f = Dir("*.*"), qqchose ne va encore pas :
Après exécution (en pas à pas) de f = Dir("*.*"), j'obtiens toujo urs
f = "D:Documents MB.lnk", même quand je viens d'ouvrir un fichier du
répertoire C:Mes Documents qui est donc le répertoire en cours.
(Documents MB est mon répertoire personnel dans la partition D:).
La macro est dans PERSO.XLS qui est aussi dans C:....
Alors, je me demande s'il ne faut pas spécifier dans la macro, le
répertoire dans lequel elle doit travailler.
Mais je ne sais où ni comment le spécifier.
Merci, à +
Bonsoir LANIMAL,
Oui je viens de lire.
L'autre jour ta question portait sur un ensemble de fichiers Word. D'o ù
le *.doc.
Pour tous fichiers Youky a donné la réponse *.*
Explication:
Lorsque tu appelle une première fois
f=dir("*.xls")
vient la liste des fichiers xls du répertoire en cours
mais en l'occurence le premier seul sera retenu.
Dans la boucle ( à la fin)
lorsque tu rappelle simplement
f=dir
le même critère est conservé mais
on passe au fichier suivant.
Le len(f)>0
mesure la longuer de chaine de f, ceci permet de s'arrêter lorsqu'il n'y
a plus de fichiers.
Cordialement.
lSteph
LANIMAL a exprimé avec précision :
Bonjour
Un domaine nouveau pour moi, et je ne m'en sort pas !
1 - Je voudrais lister tous les fichiers (.pdf, .mid .mp3 etc.)
du dossier D:Mon dossierMusique
dans la colonne A:A d'un classeur (par exemple : Toto.xls)
à créer sur le Bureau.
2 - Plus tard dans mon exploitation, il me faudra ouvrir Toto.xls
(qui entre temps aura peut-être été fermé)
Quel est le code qui permet de savoir si Toto est déjà ouvert ?
afin d'utiliser dans ce cas l'instruction "Activate", et non "Open".
3 - Si qqun a un peu de tps pour m'expliquer cet exemple de l'aide VBA :
**************
Sub AfficherListeDossiers(specdossier)
Dim fs, f, f1, fc, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(specdossier)
Set fc = f.Files
For Each f1 In fc
s = s & f1.Name
s = s & vbCrLf
Next
MsgBox s
End Sub
****************
Je n'arrive pas à exécuter cet exemple
Que faut-il mettre à la place de specdossier ?
4 - L'autre jour lSteph (j'espère qu'il me lira) m'a suggéré le code
ci-dessous :
##########################
Sub ToutleRepertoire()
f = Dir("*.doc")
Do While Len(f) > 0
Documents.Open (f)
'ChangeLh (Exécution d'une macro dans chaque fichier du répert oire)
f = Dir
Loop
End Sub
#########################
La boucle "Do" ne se fait jamais car f = "", probablement parce que je
ne mets pas ce qu'il faut à la place de "*.doc"
IL Y A LONGTEMPS QUE JE NE ME SUIS PAS SENTI AUSSI NUL :-(((
Merci pour votre aide, d'autant que je me sens exigeant aujourd'hui !
Bonsoir, et merci pour ta cordiale fidélité.
Oui, effectivement, mon "client", mon fils, qui craint que je m'ennuie,
m'occupe beaucoup - à titre gratuit bien sûr - et il fait évoluer s on
projet.
Pour le .doc, j'avais compris.
J'avais aussi compris le Len(f)>0
Ton explication me permet "d'entrevoir" des choses, mais je bloque
encore... et j'arrive pas à décoincer, peut-être suis-je bouché ! ?
Je te rappelle donc le code en cause :
***************************
Sub ToutleRepertoire()
f = Dir("*.*")
Do While Len(f) > 0
Documents.Open (f)
'ChangeLh (Exécution d'une macro dans chaque fichier du répertoir e)
f = Dir
Loop
End Sub
*****************************
Je te reprécise ci-dessous mon pb :
Avec f = Dir("*.*"), qqchose ne va encore pas :
Après exécution (en pas à pas) de f = Dir("*.*"), j'obtiens toujo urs
f = "D:Documents MB.lnk", même quand je viens d'ouvrir un fichier du
répertoire C:Mes Documents qui est donc le répertoire en cours.
(Documents MB est mon répertoire personnel dans la partition D:).
La macro est dans PERSO.XLS qui est aussi dans C:....
Alors, je me demande s'il ne faut pas spécifier dans la macro, le
répertoire dans lequel elle doit travailler.
Mais je ne sais où ni comment le spécifier.
Merci, à +Bonsoir LANIMAL,
Oui je viens de lire.
L'autre jour ta question portait sur un ensemble de fichiers Word. D'o ù
le *.doc.
Pour tous fichiers Youky a donné la réponse *.*
Explication:
Lorsque tu appelle une première fois
f=dir("*.xls")
vient la liste des fichiers xls du répertoire en cours
mais en l'occurence le premier seul sera retenu.
Dans la boucle ( à la fin)
lorsque tu rappelle simplement
f=dir
le même critère est conservé mais
on passe au fichier suivant.
Le len(f)>0
mesure la longuer de chaine de f, ceci permet de s'arrêter lorsqu'il n'y
a plus de fichiers.
Cordialement.
lSteph
LANIMAL a exprimé avec précision :Bonjour
Un domaine nouveau pour moi, et je ne m'en sort pas !
1 - Je voudrais lister tous les fichiers (.pdf, .mid .mp3 etc.)
du dossier D:Mon dossierMusique
dans la colonne A:A d'un classeur (par exemple : Toto.xls)
à créer sur le Bureau.
2 - Plus tard dans mon exploitation, il me faudra ouvrir Toto.xls
(qui entre temps aura peut-être été fermé)
Quel est le code qui permet de savoir si Toto est déjà ouvert ?
afin d'utiliser dans ce cas l'instruction "Activate", et non "Open".
3 - Si qqun a un peu de tps pour m'expliquer cet exemple de l'aide VBA :
**************
Sub AfficherListeDossiers(specdossier)
Dim fs, f, f1, fc, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(specdossier)
Set fc = f.Files
For Each f1 In fc
s = s & f1.Name
s = s & vbCrLf
Next
MsgBox s
End Sub
****************
Je n'arrive pas à exécuter cet exemple
Que faut-il mettre à la place de specdossier ?
4 - L'autre jour lSteph (j'espère qu'il me lira) m'a suggéré le code
ci-dessous :
##########################
Sub ToutleRepertoire()
f = Dir("*.doc")
Do While Len(f) > 0
Documents.Open (f)
'ChangeLh (Exécution d'une macro dans chaque fichier du répert oire)
f = Dir
Loop
End Sub
#########################
La boucle "Do" ne se fait jamais car f = "", probablement parce que je
ne mets pas ce qu'il faut à la place de "*.doc"
IL Y A LONGTEMPS QUE JE NE ME SUIS PAS SENTI AUSSI NUL :-(((
Merci pour votre aide, d'autant que je me sens exigeant aujourd'hui !
Re,
Pour reprendre le fil , ce code je le rappelle était pour Word et
répondait à une demande et un contexte précis, et l'occurence
fonctionnait pour cela.
d'où le Documents.Open
et le *.doc (et en aucun cas *.*)
Le précédent equivaudrait à pour excel
Workbooks.open
et *.xls
Le besoin que tu définis maintenant est visiblement bien différent
il n'en va pas moins que *.* soit tel qu'indiqué par Youky un joker
pour tous fichiers...
et c'est uniquement ce que j'ai confirmé.
Car en effet ce n'est pas pour autant que l'on puisse ouvrir n'importe
quelle sorte de fichier depuis Word ou depuis Excel.
Donc les lister Ok mais les inclure dans une macro qui les ouvre et
agit dessus non!
Exemple pour "Lister les fichiers d'un répertoire" dans excel:
Sub ToutleRepertoire()
Dim f As String
f = Dir("*.*")
Do While Len(f) > 0
[a65536].End(xlUp)(2) = f
f = Dir
Loop
End Sub
Cordialement.
lStephBonsoir, et merci pour ta cordiale fidélité.
Oui, effectivement, mon "client", mon fils, qui craint que je m'ennuie,
m'occupe beaucoup - à titre gratuit bien sûr - et il fait évoluer son
projet.
Pour le .doc, j'avais compris.
J'avais aussi compris le Len(f)>0
Ton explication me permet "d'entrevoir" des choses, mais je bloque
encore... et j'arrive pas à décoincer, peut-être suis-je bouché ! ?
Je te rappelle donc le code en cause :
***************************
Sub ToutleRepertoire()
f = Dir("*.*")
Do While Len(f) > 0
Documents.Open (f)
'ChangeLh (Exécution d'une macro dans chaque fichier du répertoire)
f = Dir
Loop
End Sub
*****************************
Je te reprécise ci-dessous mon pb :
Avec f = Dir("*.*"), qqchose ne va encore pas :
Après exécution (en pas à pas) de f = Dir("*.*"), j'obtiens toujours
f = "D:Documents MB.lnk", même quand je viens d'ouvrir un fichier du
répertoire C:Mes Documents qui est donc le répertoire en cours.
(Documents MB est mon répertoire personnel dans la partition D:).
La macro est dans PERSO.XLS qui est aussi dans C:....
Alors, je me demande s'il ne faut pas spécifier dans la macro, le
répertoire dans lequel elle doit travailler.
Mais je ne sais où ni comment le spécifier.
Merci, à +Bonsoir LANIMAL,
Oui je viens de lire.
L'autre jour ta question portait sur un ensemble de fichiers Word. D'où
le *.doc.
Pour tous fichiers Youky a donné la réponse *.*
Explication:
Lorsque tu appelle une première fois
f=dir("*.xls")
vient la liste des fichiers xls du répertoire en cours
mais en l'occurence le premier seul sera retenu.
Dans la boucle ( à la fin)
lorsque tu rappelle simplement
f=dir
le même critère est conservé mais
on passe au fichier suivant.
Le len(f)>0
mesure la longuer de chaine de f, ceci permet de s'arrêter lorsqu'il n'y
a plus de fichiers.
Cordialement.
lSteph
LANIMAL a exprimé avec précision :Bonjour
Un domaine nouveau pour moi, et je ne m'en sort pas !
1 - Je voudrais lister tous les fichiers (.pdf, .mid .mp3 etc.)
du dossier D:Mon dossierMusique
dans la colonne A:A d'un classeur (par exemple : Toto.xls)
à créer sur le Bureau.
2 - Plus tard dans mon exploitation, il me faudra ouvrir Toto.xls
(qui entre temps aura peut-être été fermé)
Quel est le code qui permet de savoir si Toto est déjà ouvert ?
afin d'utiliser dans ce cas l'instruction "Activate", et non "Open".
3 - Si qqun a un peu de tps pour m'expliquer cet exemple de l'aide VBA :
**************
Sub AfficherListeDossiers(specdossier)
Dim fs, f, f1, fc, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(specdossier)
Set fc = f.Files
For Each f1 In fc
s = s & f1.Name
s = s & vbCrLf
Next
MsgBox s
End Sub
****************
Je n'arrive pas à exécuter cet exemple
Que faut-il mettre à la place de specdossier ?
4 - L'autre jour lSteph (j'espère qu'il me lira) m'a suggéré le code
ci-dessous :
##########################
Sub ToutleRepertoire()
f = Dir("*.doc")
Do While Len(f) > 0
Documents.Open (f)
'ChangeLh (Exécution d'une macro dans chaque fichier du répertoire)
f = Dir
Loop
End Sub
#########################
La boucle "Do" ne se fait jamais car f = "", probablement parce que je
ne mets pas ce qu'il faut à la place de "*.doc"
IL Y A LONGTEMPS QUE JE NE ME SUIS PAS SENTI AUSSI NUL :-(((
Merci pour votre aide, d'autant que je me sens exigeant aujourd'hui !
Re,
Pour reprendre le fil , ce code je le rappelle était pour Word et
répondait à une demande et un contexte précis, et l'occurence
fonctionnait pour cela.
d'où le Documents.Open
et le *.doc (et en aucun cas *.*)
Le précédent equivaudrait à pour excel
Workbooks.open
et *.xls
Le besoin que tu définis maintenant est visiblement bien différent
il n'en va pas moins que *.* soit tel qu'indiqué par Youky un joker
pour tous fichiers...
et c'est uniquement ce que j'ai confirmé.
Car en effet ce n'est pas pour autant que l'on puisse ouvrir n'importe
quelle sorte de fichier depuis Word ou depuis Excel.
Donc les lister Ok mais les inclure dans une macro qui les ouvre et
agit dessus non!
Exemple pour "Lister les fichiers d'un répertoire" dans excel:
Sub ToutleRepertoire()
Dim f As String
f = Dir("*.*")
Do While Len(f) > 0
[a65536].End(xlUp)(2) = f
f = Dir
Loop
End Sub
Cordialement.
lSteph
Bonsoir, et merci pour ta cordiale fidélité.
Oui, effectivement, mon "client", mon fils, qui craint que je m'ennuie,
m'occupe beaucoup - à titre gratuit bien sûr - et il fait évoluer son
projet.
Pour le .doc, j'avais compris.
J'avais aussi compris le Len(f)>0
Ton explication me permet "d'entrevoir" des choses, mais je bloque
encore... et j'arrive pas à décoincer, peut-être suis-je bouché ! ?
Je te rappelle donc le code en cause :
***************************
Sub ToutleRepertoire()
f = Dir("*.*")
Do While Len(f) > 0
Documents.Open (f)
'ChangeLh (Exécution d'une macro dans chaque fichier du répertoire)
f = Dir
Loop
End Sub
*****************************
Je te reprécise ci-dessous mon pb :
Avec f = Dir("*.*"), qqchose ne va encore pas :
Après exécution (en pas à pas) de f = Dir("*.*"), j'obtiens toujours
f = "D:Documents MB.lnk", même quand je viens d'ouvrir un fichier du
répertoire C:Mes Documents qui est donc le répertoire en cours.
(Documents MB est mon répertoire personnel dans la partition D:).
La macro est dans PERSO.XLS qui est aussi dans C:....
Alors, je me demande s'il ne faut pas spécifier dans la macro, le
répertoire dans lequel elle doit travailler.
Mais je ne sais où ni comment le spécifier.
Merci, à +
Bonsoir LANIMAL,
Oui je viens de lire.
L'autre jour ta question portait sur un ensemble de fichiers Word. D'où
le *.doc.
Pour tous fichiers Youky a donné la réponse *.*
Explication:
Lorsque tu appelle une première fois
f=dir("*.xls")
vient la liste des fichiers xls du répertoire en cours
mais en l'occurence le premier seul sera retenu.
Dans la boucle ( à la fin)
lorsque tu rappelle simplement
f=dir
le même critère est conservé mais
on passe au fichier suivant.
Le len(f)>0
mesure la longuer de chaine de f, ceci permet de s'arrêter lorsqu'il n'y
a plus de fichiers.
Cordialement.
lSteph
LANIMAL a exprimé avec précision :
Bonjour
Un domaine nouveau pour moi, et je ne m'en sort pas !
1 - Je voudrais lister tous les fichiers (.pdf, .mid .mp3 etc.)
du dossier D:Mon dossierMusique
dans la colonne A:A d'un classeur (par exemple : Toto.xls)
à créer sur le Bureau.
2 - Plus tard dans mon exploitation, il me faudra ouvrir Toto.xls
(qui entre temps aura peut-être été fermé)
Quel est le code qui permet de savoir si Toto est déjà ouvert ?
afin d'utiliser dans ce cas l'instruction "Activate", et non "Open".
3 - Si qqun a un peu de tps pour m'expliquer cet exemple de l'aide VBA :
**************
Sub AfficherListeDossiers(specdossier)
Dim fs, f, f1, fc, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(specdossier)
Set fc = f.Files
For Each f1 In fc
s = s & f1.Name
s = s & vbCrLf
Next
MsgBox s
End Sub
****************
Je n'arrive pas à exécuter cet exemple
Que faut-il mettre à la place de specdossier ?
4 - L'autre jour lSteph (j'espère qu'il me lira) m'a suggéré le code
ci-dessous :
##########################
Sub ToutleRepertoire()
f = Dir("*.doc")
Do While Len(f) > 0
Documents.Open (f)
'ChangeLh (Exécution d'une macro dans chaque fichier du répertoire)
f = Dir
Loop
End Sub
#########################
La boucle "Do" ne se fait jamais car f = "", probablement parce que je
ne mets pas ce qu'il faut à la place de "*.doc"
IL Y A LONGTEMPS QUE JE NE ME SUIS PAS SENTI AUSSI NUL :-(((
Merci pour votre aide, d'autant que je me sens exigeant aujourd'hui !
Re,
Pour reprendre le fil , ce code je le rappelle était pour Word et
répondait à une demande et un contexte précis, et l'occurence
fonctionnait pour cela.
d'où le Documents.Open
et le *.doc (et en aucun cas *.*)
Le précédent equivaudrait à pour excel
Workbooks.open
et *.xls
Le besoin que tu définis maintenant est visiblement bien différent
il n'en va pas moins que *.* soit tel qu'indiqué par Youky un joker
pour tous fichiers...
et c'est uniquement ce que j'ai confirmé.
Car en effet ce n'est pas pour autant que l'on puisse ouvrir n'importe
quelle sorte de fichier depuis Word ou depuis Excel.
Donc les lister Ok mais les inclure dans une macro qui les ouvre et
agit dessus non!
Exemple pour "Lister les fichiers d'un répertoire" dans excel:
Sub ToutleRepertoire()
Dim f As String
f = Dir("*.*")
Do While Len(f) > 0
[a65536].End(xlUp)(2) = f
f = Dir
Loop
End Sub
Cordialement.
lStephBonsoir, et merci pour ta cordiale fidélité.
Oui, effectivement, mon "client", mon fils, qui craint que je m'ennuie,
m'occupe beaucoup - à titre gratuit bien sûr - et il fait évoluer son
projet.
Pour le .doc, j'avais compris.
J'avais aussi compris le Len(f)>0
Ton explication me permet "d'entrevoir" des choses, mais je bloque
encore... et j'arrive pas à décoincer, peut-être suis-je bouché ! ?
Je te rappelle donc le code en cause :
***************************
Sub ToutleRepertoire()
f = Dir("*.*")
Do While Len(f) > 0
Documents.Open (f)
'ChangeLh (Exécution d'une macro dans chaque fichier du répertoire)
f = Dir
Loop
End Sub
*****************************
Je te reprécise ci-dessous mon pb :
Avec f = Dir("*.*"), qqchose ne va encore pas :
Après exécution (en pas à pas) de f = Dir("*.*"), j'obtiens toujours
f = "D:Documents MB.lnk", même quand je viens d'ouvrir un fichier du
répertoire C:Mes Documents qui est donc le répertoire en cours.
(Documents MB est mon répertoire personnel dans la partition D:).
La macro est dans PERSO.XLS qui est aussi dans C:....
Alors, je me demande s'il ne faut pas spécifier dans la macro, le
répertoire dans lequel elle doit travailler.
Mais je ne sais où ni comment le spécifier.
Merci, à +Bonsoir LANIMAL,
Oui je viens de lire.
L'autre jour ta question portait sur un ensemble de fichiers Word. D'où
le *.doc.
Pour tous fichiers Youky a donné la réponse *.*
Explication:
Lorsque tu appelle une première fois
f=dir("*.xls")
vient la liste des fichiers xls du répertoire en cours
mais en l'occurence le premier seul sera retenu.
Dans la boucle ( à la fin)
lorsque tu rappelle simplement
f=dir
le même critère est conservé mais
on passe au fichier suivant.
Le len(f)>0
mesure la longuer de chaine de f, ceci permet de s'arrêter lorsqu'il n'y
a plus de fichiers.
Cordialement.
lSteph
LANIMAL a exprimé avec précision :Bonjour
Un domaine nouveau pour moi, et je ne m'en sort pas !
1 - Je voudrais lister tous les fichiers (.pdf, .mid .mp3 etc.)
du dossier D:Mon dossierMusique
dans la colonne A:A d'un classeur (par exemple : Toto.xls)
à créer sur le Bureau.
2 - Plus tard dans mon exploitation, il me faudra ouvrir Toto.xls
(qui entre temps aura peut-être été fermé)
Quel est le code qui permet de savoir si Toto est déjà ouvert ?
afin d'utiliser dans ce cas l'instruction "Activate", et non "Open".
3 - Si qqun a un peu de tps pour m'expliquer cet exemple de l'aide VBA :
**************
Sub AfficherListeDossiers(specdossier)
Dim fs, f, f1, fc, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(specdossier)
Set fc = f.Files
For Each f1 In fc
s = s & f1.Name
s = s & vbCrLf
Next
MsgBox s
End Sub
****************
Je n'arrive pas à exécuter cet exemple
Que faut-il mettre à la place de specdossier ?
4 - L'autre jour lSteph (j'espère qu'il me lira) m'a suggéré le code
ci-dessous :
##########################
Sub ToutleRepertoire()
f = Dir("*.doc")
Do While Len(f) > 0
Documents.Open (f)
'ChangeLh (Exécution d'une macro dans chaque fichier du répertoire)
f = Dir
Loop
End Sub
#########################
La boucle "Do" ne se fait jamais car f = "", probablement parce que je
ne mets pas ce qu'il faut à la place de "*.doc"
IL Y A LONGTEMPS QUE JE NE ME SUIS PAS SENTI AUSSI NUL :-(((
Merci pour votre aide, d'autant que je me sens exigeant aujourd'hui !
Bonjour LANIMAL,
j'ai repris le code d'Isabelle et rajouté un for pour ouvrir avec un lien
ces fichiers.
reste écrit le nom du fichier avec l'extention.
Youky
Sub TousFichiersDunDossier()
Dim fso As Object, Dossier As Object, NomDossier
Dim Files As Object, File As Object, I As Integer
Set fso = CreateObject("Scripting.FileSystemObject")
Répertoire = "D:Mon dossierMusique" 'Modifie le répertoire
If Répertoire = "" Then Exit Sub
Set Dossier = fso.getfolder(Répertoire)
Set Files = Dossier.Files
If Files.Count <> 0 Then
For Each File In Files
Fichier = File.Name
x = x + 1
Range("A" & x) = Fichier
Next
End If
For k = 1 To [A65536].End(3).Row
ActiveSheet.Hyperlinks.Add Anchor:Îlls(k, 1), Address:= _
"D:Mon dossierMusique" & Cells(k, 1), TextToDisplay:Îlls(k,
1).Value
'attention au répertoire ci-dessus
Next
End Sub
"LANIMAL" a écrit dans le message de news:
%23OtPXCI%Bonsoir, et merci pour ta cordiale fidélité.
Oui, effectivement, mon "client", mon fils, qui craint que je m'ennuie,
m'occupe beaucoup - à titre gratuit bien sûr - et il fait évoluer son
projet.
Pour le .doc, j'avais compris.
J'avais aussi compris le Len(f)>0
Ton explication me permet "d'entrevoir" des choses, mais je bloque
encore... et j'arrive pas à décoincer, peut-être suis-je bouché ! ?
Je te rappelle donc le code en cause :
***************************
Sub ToutleRepertoire()
f = Dir("*.*")
Do While Len(f) > 0
Documents.Open (f)
'ChangeLh (Exécution d'une macro dans chaque fichier du répertoire)
f = Dir
Loop
End Sub
*****************************
Je te reprécise ci-dessous mon pb :
Avec f = Dir("*.*"), qqchose ne va encore pas :
Après exécution (en pas à pas) de f = Dir("*.*"), j'obtiens toujours
f = "D:Documents MB.lnk", même quand je viens d'ouvrir un fichier du
répertoire C:Mes Documents qui est donc le répertoire en cours.
(Documents MB est mon répertoire personnel dans la partition D:).
La macro est dans PERSO.XLS qui est aussi dans C:....
Alors, je me demande s'il ne faut pas spécifier dans la macro, le
répertoire dans lequel elle doit travailler.
Mais je ne sais où ni comment le spécifier.
Merci, à +Bonsoir LANIMAL,
Oui je viens de lire.
L'autre jour ta question portait sur un ensemble de fichiers Word. D'où
le *.doc.
Pour tous fichiers Youky a donné la réponse *.*
Explication:
Lorsque tu appelle une première fois
f=dir("*.xls")
vient la liste des fichiers xls du répertoire en cours
mais en l'occurence le premier seul sera retenu.
Dans la boucle ( à la fin)
lorsque tu rappelle simplement
f=dir
le même critère est conservé mais
on passe au fichier suivant.
Le len(f)>0
mesure la longuer de chaine de f, ceci permet de s'arrêter lorsqu'il n'y
a plus de fichiers.
Cordialement.
lSteph
LANIMAL a exprimé avec précision :Bonjour
Un domaine nouveau pour moi, et je ne m'en sort pas !
1 - Je voudrais lister tous les fichiers (.pdf, .mid .mp3 etc.)
du dossier D:Mon dossierMusique
dans la colonne A:A d'un classeur (par exemple : Toto.xls)
à créer sur le Bureau.
2 - Plus tard dans mon exploitation, il me faudra ouvrir Toto.xls
(qui entre temps aura peut-être été fermé)
Quel est le code qui permet de savoir si Toto est déjà ouvert ?
afin d'utiliser dans ce cas l'instruction "Activate", et non "Open".
3 - Si qqun a un peu de tps pour m'expliquer cet exemple de l'aide VBA :
**************
Sub AfficherListeDossiers(specdossier)
Dim fs, f, f1, fc, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(specdossier)
Set fc = f.Files
For Each f1 In fc
s = s & f1.Name
s = s & vbCrLf
Next
MsgBox s
End Sub
****************
Je n'arrive pas à exécuter cet exemple
Que faut-il mettre à la place de specdossier ?
4 - L'autre jour lSteph (j'espère qu'il me lira) m'a suggéré le code
ci-dessous :
##########################
Sub ToutleRepertoire()
f = Dir("*.doc")
Do While Len(f) > 0
Documents.Open (f)
'ChangeLh (Exécution d'une macro dans chaque fichier du répertoire)
f = Dir
Loop
End Sub
#########################
La boucle "Do" ne se fait jamais car f = "", probablement parce que je
ne mets pas ce qu'il faut à la place de "*.doc"
IL Y A LONGTEMPS QUE JE NE ME SUIS PAS SENTI AUSSI NUL :-(((
Merci pour votre aide, d'autant que je me sens exigeant aujourd'hui !
Bonjour LANIMAL,
j'ai repris le code d'Isabelle et rajouté un for pour ouvrir avec un lien
ces fichiers.
reste écrit le nom du fichier avec l'extention.
Youky
Sub TousFichiersDunDossier()
Dim fso As Object, Dossier As Object, NomDossier
Dim Files As Object, File As Object, I As Integer
Set fso = CreateObject("Scripting.FileSystemObject")
Répertoire = "D:Mon dossierMusique" 'Modifie le répertoire
If Répertoire = "" Then Exit Sub
Set Dossier = fso.getfolder(Répertoire)
Set Files = Dossier.Files
If Files.Count <> 0 Then
For Each File In Files
Fichier = File.Name
x = x + 1
Range("A" & x) = Fichier
Next
End If
For k = 1 To [A65536].End(3).Row
ActiveSheet.Hyperlinks.Add Anchor:Îlls(k, 1), Address:= _
"D:Mon dossierMusique" & Cells(k, 1), TextToDisplay:Îlls(k,
1).Value
'attention au répertoire ci-dessus
Next
End Sub
"LANIMAL" <lanimal@tiscali.fr> a écrit dans le message de news:
%23OtPXCI%23GHA.3344@TK2MSFTNGP03.phx.gbl...
Bonsoir, et merci pour ta cordiale fidélité.
Oui, effectivement, mon "client", mon fils, qui craint que je m'ennuie,
m'occupe beaucoup - à titre gratuit bien sûr - et il fait évoluer son
projet.
Pour le .doc, j'avais compris.
J'avais aussi compris le Len(f)>0
Ton explication me permet "d'entrevoir" des choses, mais je bloque
encore... et j'arrive pas à décoincer, peut-être suis-je bouché ! ?
Je te rappelle donc le code en cause :
***************************
Sub ToutleRepertoire()
f = Dir("*.*")
Do While Len(f) > 0
Documents.Open (f)
'ChangeLh (Exécution d'une macro dans chaque fichier du répertoire)
f = Dir
Loop
End Sub
*****************************
Je te reprécise ci-dessous mon pb :
Avec f = Dir("*.*"), qqchose ne va encore pas :
Après exécution (en pas à pas) de f = Dir("*.*"), j'obtiens toujours
f = "D:Documents MB.lnk", même quand je viens d'ouvrir un fichier du
répertoire C:Mes Documents qui est donc le répertoire en cours.
(Documents MB est mon répertoire personnel dans la partition D:).
La macro est dans PERSO.XLS qui est aussi dans C:....
Alors, je me demande s'il ne faut pas spécifier dans la macro, le
répertoire dans lequel elle doit travailler.
Mais je ne sais où ni comment le spécifier.
Merci, à +
Bonsoir LANIMAL,
Oui je viens de lire.
L'autre jour ta question portait sur un ensemble de fichiers Word. D'où
le *.doc.
Pour tous fichiers Youky a donné la réponse *.*
Explication:
Lorsque tu appelle une première fois
f=dir("*.xls")
vient la liste des fichiers xls du répertoire en cours
mais en l'occurence le premier seul sera retenu.
Dans la boucle ( à la fin)
lorsque tu rappelle simplement
f=dir
le même critère est conservé mais
on passe au fichier suivant.
Le len(f)>0
mesure la longuer de chaine de f, ceci permet de s'arrêter lorsqu'il n'y
a plus de fichiers.
Cordialement.
lSteph
LANIMAL a exprimé avec précision :
Bonjour
Un domaine nouveau pour moi, et je ne m'en sort pas !
1 - Je voudrais lister tous les fichiers (.pdf, .mid .mp3 etc.)
du dossier D:Mon dossierMusique
dans la colonne A:A d'un classeur (par exemple : Toto.xls)
à créer sur le Bureau.
2 - Plus tard dans mon exploitation, il me faudra ouvrir Toto.xls
(qui entre temps aura peut-être été fermé)
Quel est le code qui permet de savoir si Toto est déjà ouvert ?
afin d'utiliser dans ce cas l'instruction "Activate", et non "Open".
3 - Si qqun a un peu de tps pour m'expliquer cet exemple de l'aide VBA :
**************
Sub AfficherListeDossiers(specdossier)
Dim fs, f, f1, fc, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(specdossier)
Set fc = f.Files
For Each f1 In fc
s = s & f1.Name
s = s & vbCrLf
Next
MsgBox s
End Sub
****************
Je n'arrive pas à exécuter cet exemple
Que faut-il mettre à la place de specdossier ?
4 - L'autre jour lSteph (j'espère qu'il me lira) m'a suggéré le code
ci-dessous :
##########################
Sub ToutleRepertoire()
f = Dir("*.doc")
Do While Len(f) > 0
Documents.Open (f)
'ChangeLh (Exécution d'une macro dans chaque fichier du répertoire)
f = Dir
Loop
End Sub
#########################
La boucle "Do" ne se fait jamais car f = "", probablement parce que je
ne mets pas ce qu'il faut à la place de "*.doc"
IL Y A LONGTEMPS QUE JE NE ME SUIS PAS SENTI AUSSI NUL :-(((
Merci pour votre aide, d'autant que je me sens exigeant aujourd'hui !
Bonjour LANIMAL,
j'ai repris le code d'Isabelle et rajouté un for pour ouvrir avec un lien
ces fichiers.
reste écrit le nom du fichier avec l'extention.
Youky
Sub TousFichiersDunDossier()
Dim fso As Object, Dossier As Object, NomDossier
Dim Files As Object, File As Object, I As Integer
Set fso = CreateObject("Scripting.FileSystemObject")
Répertoire = "D:Mon dossierMusique" 'Modifie le répertoire
If Répertoire = "" Then Exit Sub
Set Dossier = fso.getfolder(Répertoire)
Set Files = Dossier.Files
If Files.Count <> 0 Then
For Each File In Files
Fichier = File.Name
x = x + 1
Range("A" & x) = Fichier
Next
End If
For k = 1 To [A65536].End(3).Row
ActiveSheet.Hyperlinks.Add Anchor:Îlls(k, 1), Address:= _
"D:Mon dossierMusique" & Cells(k, 1), TextToDisplay:Îlls(k,
1).Value
'attention au répertoire ci-dessus
Next
End Sub
"LANIMAL" a écrit dans le message de news:
%23OtPXCI%Bonsoir, et merci pour ta cordiale fidélité.
Oui, effectivement, mon "client", mon fils, qui craint que je m'ennuie,
m'occupe beaucoup - à titre gratuit bien sûr - et il fait évoluer son
projet.
Pour le .doc, j'avais compris.
J'avais aussi compris le Len(f)>0
Ton explication me permet "d'entrevoir" des choses, mais je bloque
encore... et j'arrive pas à décoincer, peut-être suis-je bouché ! ?
Je te rappelle donc le code en cause :
***************************
Sub ToutleRepertoire()
f = Dir("*.*")
Do While Len(f) > 0
Documents.Open (f)
'ChangeLh (Exécution d'une macro dans chaque fichier du répertoire)
f = Dir
Loop
End Sub
*****************************
Je te reprécise ci-dessous mon pb :
Avec f = Dir("*.*"), qqchose ne va encore pas :
Après exécution (en pas à pas) de f = Dir("*.*"), j'obtiens toujours
f = "D:Documents MB.lnk", même quand je viens d'ouvrir un fichier du
répertoire C:Mes Documents qui est donc le répertoire en cours.
(Documents MB est mon répertoire personnel dans la partition D:).
La macro est dans PERSO.XLS qui est aussi dans C:....
Alors, je me demande s'il ne faut pas spécifier dans la macro, le
répertoire dans lequel elle doit travailler.
Mais je ne sais où ni comment le spécifier.
Merci, à +Bonsoir LANIMAL,
Oui je viens de lire.
L'autre jour ta question portait sur un ensemble de fichiers Word. D'où
le *.doc.
Pour tous fichiers Youky a donné la réponse *.*
Explication:
Lorsque tu appelle une première fois
f=dir("*.xls")
vient la liste des fichiers xls du répertoire en cours
mais en l'occurence le premier seul sera retenu.
Dans la boucle ( à la fin)
lorsque tu rappelle simplement
f=dir
le même critère est conservé mais
on passe au fichier suivant.
Le len(f)>0
mesure la longuer de chaine de f, ceci permet de s'arrêter lorsqu'il n'y
a plus de fichiers.
Cordialement.
lSteph
LANIMAL a exprimé avec précision :Bonjour
Un domaine nouveau pour moi, et je ne m'en sort pas !
1 - Je voudrais lister tous les fichiers (.pdf, .mid .mp3 etc.)
du dossier D:Mon dossierMusique
dans la colonne A:A d'un classeur (par exemple : Toto.xls)
à créer sur le Bureau.
2 - Plus tard dans mon exploitation, il me faudra ouvrir Toto.xls
(qui entre temps aura peut-être été fermé)
Quel est le code qui permet de savoir si Toto est déjà ouvert ?
afin d'utiliser dans ce cas l'instruction "Activate", et non "Open".
3 - Si qqun a un peu de tps pour m'expliquer cet exemple de l'aide VBA :
**************
Sub AfficherListeDossiers(specdossier)
Dim fs, f, f1, fc, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(specdossier)
Set fc = f.Files
For Each f1 In fc
s = s & f1.Name
s = s & vbCrLf
Next
MsgBox s
End Sub
****************
Je n'arrive pas à exécuter cet exemple
Que faut-il mettre à la place de specdossier ?
4 - L'autre jour lSteph (j'espère qu'il me lira) m'a suggéré le code
ci-dessous :
##########################
Sub ToutleRepertoire()
f = Dir("*.doc")
Do While Len(f) > 0
Documents.Open (f)
'ChangeLh (Exécution d'une macro dans chaque fichier du répertoire)
f = Dir
Loop
End Sub
#########################
La boucle "Do" ne se fait jamais car f = "", probablement parce que je
ne mets pas ce qu'il faut à la place de "*.doc"
IL Y A LONGTEMPS QUE JE NE ME SUIS PAS SENTI AUSSI NUL :-(((
Merci pour votre aide, d'autant que je me sens exigeant aujourd'hui !
Si tu ne connaissais pas Pénible, maintenant, tu le connais ! ! !
Oui, c'est vrai que le projet a évolué, comme je te le disais hier,
et c'est vrai aussi que je me suis embrouillé les neurones, car en effet,
dans le nouveau besoin, je n'ai plus besoin d'ouvrir les fichiers.
Mais j'ai voulu (pour apprendre) comprendre ce qui se passait à la 3ème ligne
du code en question (sans aller jusau'à "Open").
Rappel du code en cause (re-situé dans Excel):
*****************************
Sub ToutleRepertoire()
f = Dir("*.xls")
Do While Len(f) > 0
Workbooks.Open (f)
'changeLh (macro qui ferme le fichier en fin d'exécution)
f = Dir
Loop
End Sub
*****************************
Après exécution (en pas à pas) de f = Dir("*.xls"), on obtient toujours
f = "D:Documents MB.lnk", même quand je viens d'ouvrir un fichier du
répertoire C:Mes Documents qui est donc le répertoire en cours.
Ne trouvant nulle part d'info sur Dir [:-( ], je suis allé sur :
http://www.clubinfolongueuil.qc.ca/ateliervbaexcel.html
où j'ai vu que le chemin doit être spécifié : f = Dir(chemin & "*.xls").
Ce faisant, plus de pb sur cette ligne :
f contient bien les fichiers du répertoire spécifié dans chemin.
Par contre, il faut aussi définir le répertoire avant d'ouvrir le fichier f.
Le code devient alors :
****************
Sub ToutleRepertoire()
f = Dir(chemin & "*.xls")
Do While Len(f) > 0
ChDir chemin
Workbooks.Open (f)
'changeLh (macro qui ferme le fichier en fin d'exécution)
f = Dir
Loop
End Sub
***************
Bien évidemment, les 2 lignes
ChDir chemin
Workbooks.Open (f)
peuvent être remplacées par :
Workbooks.Open Filename:=chemin & f
C'est testé, ça marche, maintenant je crois être clair...
... jusqu'à la prochaine fois !
J'ai aussi vu l'utilisation de End(xlUp)dans ta dernière proposition pour
atteindre la cellule suivante de la liste,
astuce que je ne connaissais pas.
Merci encore pour ton aide à partir duquel j'ai un peu ramé,
mais je suis heureux d'avoir appris.
LANIMALRe,
Pour reprendre le fil , ce code je le rappelle était pour Word et
répondait à une demande et un contexte précis, et l'occurence
fonctionnait pour cela.
d'où le Documents.Open
et le *.doc (et en aucun cas *.*)
Le précédent equivaudrait à pour excel
Workbooks.open
et *.xls
Le besoin que tu définis maintenant est visiblement bien différent
il n'en va pas moins que *.* soit tel qu'indiqué par Youky un joker
pour tous fichiers...
et c'est uniquement ce que j'ai confirmé.
Car en effet ce n'est pas pour autant que l'on puisse ouvrir n'importe
quelle sorte de fichier depuis Word ou depuis Excel.
Donc les lister Ok mais les inclure dans une macro qui les ouvre et
agit dessus non!
Exemple pour "Lister les fichiers d'un répertoire" dans excel:
Sub ToutleRepertoire()
Dim f As String
f = Dir("*.*")
Do While Len(f) > 0
[a65536].End(xlUp)(2) = f
f = Dir
Loop
End Sub
Cordialement.
lStephBonsoir, et merci pour ta cordiale fidélité.
Oui, effectivement, mon "client", mon fils, qui craint que je m'ennuie,
m'occupe beaucoup - à titre gratuit bien sûr - et il fait évoluer son
projet.
Pour le .doc, j'avais compris.
J'avais aussi compris le Len(f)>0
Ton explication me permet "d'entrevoir" des choses, mais je bloque
encore... et j'arrive pas à décoincer, peut-être suis-je bouché ! ?
Je te rappelle donc le code en cause :
***************************
Sub ToutleRepertoire()
f = Dir("*.*")
Do While Len(f) > 0
Documents.Open (f)
'ChangeLh (Exécution d'une macro dans chaque fichier du répertoire)
f = Dir
Loop
End Sub
*****************************
Je te reprécise ci-dessous mon pb :
Avec f = Dir("*.*"), qqchose ne va encore pas :
Après exécution (en pas à pas) de f = Dir("*.*"), j'obtiens toujours
f = "D:Documents MB.lnk", même quand je viens d'ouvrir un fichier du
répertoire C:Mes Documents qui est donc le répertoire en cours.
(Documents MB est mon répertoire personnel dans la partition D:).
La macro est dans PERSO.XLS qui est aussi dans C:....
Alors, je me demande s'il ne faut pas spécifier dans la macro, le
répertoire dans lequel elle doit travailler.
Mais je ne sais où ni comment le spécifier.
Merci, à +Bonsoir LANIMAL,
Oui je viens de lire.
L'autre jour ta question portait sur un ensemble de fichiers Word. D'où
le *.doc.
Pour tous fichiers Youky a donné la réponse *.*
Explication:
Lorsque tu appelle une première fois
f=dir("*.xls")
vient la liste des fichiers xls du répertoire en cours
mais en l'occurence le premier seul sera retenu.
Dans la boucle ( à la fin)
lorsque tu rappelle simplement
f=dir
le même critère est conservé mais
on passe au fichier suivant.
Le len(f)>0
mesure la longuer de chaine de f, ceci permet de s'arrêter lorsqu'il n'y
a plus de fichiers.
Cordialement.
lSteph
LANIMAL a exprimé avec précision :Bonjour
Un domaine nouveau pour moi, et je ne m'en sort pas !
1 - Je voudrais lister tous les fichiers (.pdf, .mid .mp3 etc.)
du dossier D:Mon dossierMusique
dans la colonne A:A d'un classeur (par exemple : Toto.xls)
à créer sur le Bureau.
2 - Plus tard dans mon exploitation, il me faudra ouvrir Toto.xls
(qui entre temps aura peut-être été fermé)
Quel est le code qui permet de savoir si Toto est déjà ouvert ?
afin d'utiliser dans ce cas l'instruction "Activate", et non "Open".
3 - Si qqun a un peu de tps pour m'expliquer cet exemple de l'aide VBA :
**************
Sub AfficherListeDossiers(specdossier)
Dim fs, f, f1, fc, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(specdossier)
Set fc = f.Files
For Each f1 In fc
s = s & f1.Name
s = s & vbCrLf
Next
MsgBox s
End Sub
****************
Je n'arrive pas à exécuter cet exemple
Que faut-il mettre à la place de specdossier ?
4 - L'autre jour lSteph (j'espère qu'il me lira) m'a suggéré le code
ci-dessous :
##########################
Sub ToutleRepertoire()
f = Dir("*.doc")
Do While Len(f) > 0
Documents.Open (f)
'ChangeLh (Exécution d'une macro dans chaque fichier du répertoire)
f = Dir
Loop
End Sub
#########################
La boucle "Do" ne se fait jamais car f = "", probablement parce que je
ne mets pas ce qu'il faut à la place de "*.doc"
IL Y A LONGTEMPS QUE JE NE ME SUIS PAS SENTI AUSSI NUL :-(((
Merci pour votre aide, d'autant que je me sens exigeant aujourd'hui !
Si tu ne connaissais pas Pénible, maintenant, tu le connais ! ! !
Oui, c'est vrai que le projet a évolué, comme je te le disais hier,
et c'est vrai aussi que je me suis embrouillé les neurones, car en effet,
dans le nouveau besoin, je n'ai plus besoin d'ouvrir les fichiers.
Mais j'ai voulu (pour apprendre) comprendre ce qui se passait à la 3ème ligne
du code en question (sans aller jusau'à "Open").
Rappel du code en cause (re-situé dans Excel):
*****************************
Sub ToutleRepertoire()
f = Dir("*.xls")
Do While Len(f) > 0
Workbooks.Open (f)
'changeLh (macro qui ferme le fichier en fin d'exécution)
f = Dir
Loop
End Sub
*****************************
Après exécution (en pas à pas) de f = Dir("*.xls"), on obtient toujours
f = "D:Documents MB.lnk", même quand je viens d'ouvrir un fichier du
répertoire C:Mes Documents qui est donc le répertoire en cours.
Ne trouvant nulle part d'info sur Dir [:-( ], je suis allé sur :
http://www.clubinfolongueuil.qc.ca/ateliervbaexcel.html
où j'ai vu que le chemin doit être spécifié : f = Dir(chemin & "*.xls").
Ce faisant, plus de pb sur cette ligne :
f contient bien les fichiers du répertoire spécifié dans chemin.
Par contre, il faut aussi définir le répertoire avant d'ouvrir le fichier f.
Le code devient alors :
****************
Sub ToutleRepertoire()
f = Dir(chemin & "*.xls")
Do While Len(f) > 0
ChDir chemin
Workbooks.Open (f)
'changeLh (macro qui ferme le fichier en fin d'exécution)
f = Dir
Loop
End Sub
***************
Bien évidemment, les 2 lignes
ChDir chemin
Workbooks.Open (f)
peuvent être remplacées par :
Workbooks.Open Filename:=chemin & f
C'est testé, ça marche, maintenant je crois être clair...
... jusqu'à la prochaine fois !
J'ai aussi vu l'utilisation de End(xlUp)dans ta dernière proposition pour
atteindre la cellule suivante de la liste,
astuce que je ne connaissais pas.
Merci encore pour ton aide à partir duquel j'ai un peu ramé,
mais je suis heureux d'avoir appris.
LANIMAL
Re,
Pour reprendre le fil , ce code je le rappelle était pour Word et
répondait à une demande et un contexte précis, et l'occurence
fonctionnait pour cela.
d'où le Documents.Open
et le *.doc (et en aucun cas *.*)
Le précédent equivaudrait à pour excel
Workbooks.open
et *.xls
Le besoin que tu définis maintenant est visiblement bien différent
il n'en va pas moins que *.* soit tel qu'indiqué par Youky un joker
pour tous fichiers...
et c'est uniquement ce que j'ai confirmé.
Car en effet ce n'est pas pour autant que l'on puisse ouvrir n'importe
quelle sorte de fichier depuis Word ou depuis Excel.
Donc les lister Ok mais les inclure dans une macro qui les ouvre et
agit dessus non!
Exemple pour "Lister les fichiers d'un répertoire" dans excel:
Sub ToutleRepertoire()
Dim f As String
f = Dir("*.*")
Do While Len(f) > 0
[a65536].End(xlUp)(2) = f
f = Dir
Loop
End Sub
Cordialement.
lSteph
Bonsoir, et merci pour ta cordiale fidélité.
Oui, effectivement, mon "client", mon fils, qui craint que je m'ennuie,
m'occupe beaucoup - à titre gratuit bien sûr - et il fait évoluer son
projet.
Pour le .doc, j'avais compris.
J'avais aussi compris le Len(f)>0
Ton explication me permet "d'entrevoir" des choses, mais je bloque
encore... et j'arrive pas à décoincer, peut-être suis-je bouché ! ?
Je te rappelle donc le code en cause :
***************************
Sub ToutleRepertoire()
f = Dir("*.*")
Do While Len(f) > 0
Documents.Open (f)
'ChangeLh (Exécution d'une macro dans chaque fichier du répertoire)
f = Dir
Loop
End Sub
*****************************
Je te reprécise ci-dessous mon pb :
Avec f = Dir("*.*"), qqchose ne va encore pas :
Après exécution (en pas à pas) de f = Dir("*.*"), j'obtiens toujours
f = "D:Documents MB.lnk", même quand je viens d'ouvrir un fichier du
répertoire C:Mes Documents qui est donc le répertoire en cours.
(Documents MB est mon répertoire personnel dans la partition D:).
La macro est dans PERSO.XLS qui est aussi dans C:....
Alors, je me demande s'il ne faut pas spécifier dans la macro, le
répertoire dans lequel elle doit travailler.
Mais je ne sais où ni comment le spécifier.
Merci, à +
Bonsoir LANIMAL,
Oui je viens de lire.
L'autre jour ta question portait sur un ensemble de fichiers Word. D'où
le *.doc.
Pour tous fichiers Youky a donné la réponse *.*
Explication:
Lorsque tu appelle une première fois
f=dir("*.xls")
vient la liste des fichiers xls du répertoire en cours
mais en l'occurence le premier seul sera retenu.
Dans la boucle ( à la fin)
lorsque tu rappelle simplement
f=dir
le même critère est conservé mais
on passe au fichier suivant.
Le len(f)>0
mesure la longuer de chaine de f, ceci permet de s'arrêter lorsqu'il n'y
a plus de fichiers.
Cordialement.
lSteph
LANIMAL a exprimé avec précision :
Bonjour
Un domaine nouveau pour moi, et je ne m'en sort pas !
1 - Je voudrais lister tous les fichiers (.pdf, .mid .mp3 etc.)
du dossier D:Mon dossierMusique
dans la colonne A:A d'un classeur (par exemple : Toto.xls)
à créer sur le Bureau.
2 - Plus tard dans mon exploitation, il me faudra ouvrir Toto.xls
(qui entre temps aura peut-être été fermé)
Quel est le code qui permet de savoir si Toto est déjà ouvert ?
afin d'utiliser dans ce cas l'instruction "Activate", et non "Open".
3 - Si qqun a un peu de tps pour m'expliquer cet exemple de l'aide VBA :
**************
Sub AfficherListeDossiers(specdossier)
Dim fs, f, f1, fc, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(specdossier)
Set fc = f.Files
For Each f1 In fc
s = s & f1.Name
s = s & vbCrLf
Next
MsgBox s
End Sub
****************
Je n'arrive pas à exécuter cet exemple
Que faut-il mettre à la place de specdossier ?
4 - L'autre jour lSteph (j'espère qu'il me lira) m'a suggéré le code
ci-dessous :
##########################
Sub ToutleRepertoire()
f = Dir("*.doc")
Do While Len(f) > 0
Documents.Open (f)
'ChangeLh (Exécution d'une macro dans chaque fichier du répertoire)
f = Dir
Loop
End Sub
#########################
La boucle "Do" ne se fait jamais car f = "", probablement parce que je
ne mets pas ce qu'il faut à la place de "*.doc"
IL Y A LONGTEMPS QUE JE NE ME SUIS PAS SENTI AUSSI NUL :-(((
Merci pour votre aide, d'autant que je me sens exigeant aujourd'hui !
Si tu ne connaissais pas Pénible, maintenant, tu le connais ! ! !
Oui, c'est vrai que le projet a évolué, comme je te le disais hier,
et c'est vrai aussi que je me suis embrouillé les neurones, car en effet,
dans le nouveau besoin, je n'ai plus besoin d'ouvrir les fichiers.
Mais j'ai voulu (pour apprendre) comprendre ce qui se passait à la 3ème ligne
du code en question (sans aller jusau'à "Open").
Rappel du code en cause (re-situé dans Excel):
*****************************
Sub ToutleRepertoire()
f = Dir("*.xls")
Do While Len(f) > 0
Workbooks.Open (f)
'changeLh (macro qui ferme le fichier en fin d'exécution)
f = Dir
Loop
End Sub
*****************************
Après exécution (en pas à pas) de f = Dir("*.xls"), on obtient toujours
f = "D:Documents MB.lnk", même quand je viens d'ouvrir un fichier du
répertoire C:Mes Documents qui est donc le répertoire en cours.
Ne trouvant nulle part d'info sur Dir [:-( ], je suis allé sur :
http://www.clubinfolongueuil.qc.ca/ateliervbaexcel.html
où j'ai vu que le chemin doit être spécifié : f = Dir(chemin & "*.xls").
Ce faisant, plus de pb sur cette ligne :
f contient bien les fichiers du répertoire spécifié dans chemin.
Par contre, il faut aussi définir le répertoire avant d'ouvrir le fichier f.
Le code devient alors :
****************
Sub ToutleRepertoire()
f = Dir(chemin & "*.xls")
Do While Len(f) > 0
ChDir chemin
Workbooks.Open (f)
'changeLh (macro qui ferme le fichier en fin d'exécution)
f = Dir
Loop
End Sub
***************
Bien évidemment, les 2 lignes
ChDir chemin
Workbooks.Open (f)
peuvent être remplacées par :
Workbooks.Open Filename:=chemin & f
C'est testé, ça marche, maintenant je crois être clair...
... jusqu'à la prochaine fois !
J'ai aussi vu l'utilisation de End(xlUp)dans ta dernière proposition pour
atteindre la cellule suivante de la liste,
astuce que je ne connaissais pas.
Merci encore pour ton aide à partir duquel j'ai un peu ramé,
mais je suis heureux d'avoir appris.
LANIMALRe,
Pour reprendre le fil , ce code je le rappelle était pour Word et
répondait à une demande et un contexte précis, et l'occurence
fonctionnait pour cela.
d'où le Documents.Open
et le *.doc (et en aucun cas *.*)
Le précédent equivaudrait à pour excel
Workbooks.open
et *.xls
Le besoin que tu définis maintenant est visiblement bien différent
il n'en va pas moins que *.* soit tel qu'indiqué par Youky un joker
pour tous fichiers...
et c'est uniquement ce que j'ai confirmé.
Car en effet ce n'est pas pour autant que l'on puisse ouvrir n'importe
quelle sorte de fichier depuis Word ou depuis Excel.
Donc les lister Ok mais les inclure dans une macro qui les ouvre et
agit dessus non!
Exemple pour "Lister les fichiers d'un répertoire" dans excel:
Sub ToutleRepertoire()
Dim f As String
f = Dir("*.*")
Do While Len(f) > 0
[a65536].End(xlUp)(2) = f
f = Dir
Loop
End Sub
Cordialement.
lStephBonsoir, et merci pour ta cordiale fidélité.
Oui, effectivement, mon "client", mon fils, qui craint que je m'ennuie,
m'occupe beaucoup - à titre gratuit bien sûr - et il fait évoluer son
projet.
Pour le .doc, j'avais compris.
J'avais aussi compris le Len(f)>0
Ton explication me permet "d'entrevoir" des choses, mais je bloque
encore... et j'arrive pas à décoincer, peut-être suis-je bouché ! ?
Je te rappelle donc le code en cause :
***************************
Sub ToutleRepertoire()
f = Dir("*.*")
Do While Len(f) > 0
Documents.Open (f)
'ChangeLh (Exécution d'une macro dans chaque fichier du répertoire)
f = Dir
Loop
End Sub
*****************************
Je te reprécise ci-dessous mon pb :
Avec f = Dir("*.*"), qqchose ne va encore pas :
Après exécution (en pas à pas) de f = Dir("*.*"), j'obtiens toujours
f = "D:Documents MB.lnk", même quand je viens d'ouvrir un fichier du
répertoire C:Mes Documents qui est donc le répertoire en cours.
(Documents MB est mon répertoire personnel dans la partition D:).
La macro est dans PERSO.XLS qui est aussi dans C:....
Alors, je me demande s'il ne faut pas spécifier dans la macro, le
répertoire dans lequel elle doit travailler.
Mais je ne sais où ni comment le spécifier.
Merci, à +Bonsoir LANIMAL,
Oui je viens de lire.
L'autre jour ta question portait sur un ensemble de fichiers Word. D'où
le *.doc.
Pour tous fichiers Youky a donné la réponse *.*
Explication:
Lorsque tu appelle une première fois
f=dir("*.xls")
vient la liste des fichiers xls du répertoire en cours
mais en l'occurence le premier seul sera retenu.
Dans la boucle ( à la fin)
lorsque tu rappelle simplement
f=dir
le même critère est conservé mais
on passe au fichier suivant.
Le len(f)>0
mesure la longuer de chaine de f, ceci permet de s'arrêter lorsqu'il n'y
a plus de fichiers.
Cordialement.
lSteph
LANIMAL a exprimé avec précision :Bonjour
Un domaine nouveau pour moi, et je ne m'en sort pas !
1 - Je voudrais lister tous les fichiers (.pdf, .mid .mp3 etc.)
du dossier D:Mon dossierMusique
dans la colonne A:A d'un classeur (par exemple : Toto.xls)
à créer sur le Bureau.
2 - Plus tard dans mon exploitation, il me faudra ouvrir Toto.xls
(qui entre temps aura peut-être été fermé)
Quel est le code qui permet de savoir si Toto est déjà ouvert ?
afin d'utiliser dans ce cas l'instruction "Activate", et non "Open".
3 - Si qqun a un peu de tps pour m'expliquer cet exemple de l'aide VBA :
**************
Sub AfficherListeDossiers(specdossier)
Dim fs, f, f1, fc, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(specdossier)
Set fc = f.Files
For Each f1 In fc
s = s & f1.Name
s = s & vbCrLf
Next
MsgBox s
End Sub
****************
Je n'arrive pas à exécuter cet exemple
Que faut-il mettre à la place de specdossier ?
4 - L'autre jour lSteph (j'espère qu'il me lira) m'a suggéré le code
ci-dessous :
##########################
Sub ToutleRepertoire()
f = Dir("*.doc")
Do While Len(f) > 0
Documents.Open (f)
'ChangeLh (Exécution d'une macro dans chaque fichier du répertoire)
f = Dir
Loop
End Sub
#########################
La boucle "Do" ne se fait jamais car f = "", probablement parce que je
ne mets pas ce qu'il faut à la place de "*.doc"
IL Y A LONGTEMPS QUE JE NE ME SUIS PAS SENTI AUSSI NUL :-(((
Merci pour votre aide, d'autant que je me sens exigeant aujourd'hui !
Bonsoir,
Désolé, je ne saisis plus quel code dont en cause ,
celui que j'ai donné pour lister les fichier du répertoire
en cours fonctionne, correctement il me semble.
Changer de chemin reste une faculté qui n'empêche pas son fonctionnement.
Cordialement.
lSteph
Bonsoir,
Désolé, je ne saisis plus quel code dont en cause ,
celui que j'ai donné pour lister les fichier du répertoire
en cours fonctionne, correctement il me semble.
Changer de chemin reste une faculté qui n'empêche pas son fonctionnement.
Cordialement.
lSteph
Bonsoir,
Désolé, je ne saisis plus quel code dont en cause ,
celui que j'ai donné pour lister les fichier du répertoire
en cours fonctionne, correctement il me semble.
Changer de chemin reste une faculté qui n'empêche pas son fonctionnement.
Cordialement.
lSteph
Bonsoir
Je crois que maintenant on a un pb de communication ;-)
Je suis d'accord, sans réserve, avec tout ce que tu m'as dit dans tes
derniers messages, et je t'en remercie car ils m'ont appris des choses.
Je disais tout à l'heure que, pour apprendre, je me suis intéressé à ta
proposition du 22.10 à 10:21, qui ne fonctionnait pas chez moi, et je voulais
savoir pourquoi.
Ta proposition est rappelée ci-dessous, je l'ai juste transposée de Word à
Excel, pour des raisons de commodité tout à fait secondaires.
Si tu es intéressé, oublie le reste du fil,
les lignes qui suivent, à elles seules, résument le pb que j'ai eu, et la
solution que j'ai trouvée.
RAPPEL DU CODE EN CAUSE (re-situé dans Excel):
*****************************
Sub ToutleRepertoire()
f = Dir("*.xls")
Do While Len(f) > 0
Workbooks.Open (f)
'changeLh (macro qui ferme le fichier en fin d'exécution)
f = Dir
Loop
End Sub
*****************************
Après l'exécution (en pas à pas) de f = Dir("*.xls")
(sans aller jusqu'à la ligne Workbooks.Open (f) ),
la valeur de f n'est jamais le nom d'un fichier .xls du répertoire courant.
Ne trouvant nulle part d'info sur Dir [:-( ], je suis allé sur :
http://www.clubinfolongueuil.qc.ca/ateliervbaexcel.html
où j'ai vu que le "chemin" doit être spécifié :
Il faut écrire f = Dir(chemin & "*.xls")
et alors, le pb disparaît, et les valeurs successives de f correspondent bien
aux fichiers du répertoire spécifié dans chemin.
De plus, il faut aussi définir le répertoire avant d'ouvrir le fichier f. Le
code devient alors :
****************
Sub ToutleRepertoire()
f = Dir(chemin & "*.xls")
Do While Len(f) > 0
ChDir chemin
Workbooks.Open (f)
'changeLh (macro qui ferme le fichier en fin d'exécution)
f = Dir
Loop
End Sub
***************
Bien évidemment, les 2 lignes
ChDir chemin
Workbooks.Open (f)
peuvent être remplacées par :
Workbooks.Open Filename:=chemin & f
C'est testé, ça marche.
J'ai essayé d'être + clair et + simple dans le présent message,
si tu ne me comprends pas, c'est certainement que je m'explique mal.
De toute façon, merci encore pour tes réponses qui m'ont appris des choses.
LANIMALBonsoir,
Désolé, je ne saisis plus quel code dont en cause ,
celui que j'ai donné pour lister les fichier du répertoire
en cours fonctionne, correctement il me semble.
Changer de chemin reste une faculté qui n'empêche pas son fonctionnement.
Cordialement.
lSteph
Bonsoir
Je crois que maintenant on a un pb de communication ;-)
Je suis d'accord, sans réserve, avec tout ce que tu m'as dit dans tes
derniers messages, et je t'en remercie car ils m'ont appris des choses.
Je disais tout à l'heure que, pour apprendre, je me suis intéressé à ta
proposition du 22.10 à 10:21, qui ne fonctionnait pas chez moi, et je voulais
savoir pourquoi.
Ta proposition est rappelée ci-dessous, je l'ai juste transposée de Word à
Excel, pour des raisons de commodité tout à fait secondaires.
Si tu es intéressé, oublie le reste du fil,
les lignes qui suivent, à elles seules, résument le pb que j'ai eu, et la
solution que j'ai trouvée.
RAPPEL DU CODE EN CAUSE (re-situé dans Excel):
*****************************
Sub ToutleRepertoire()
f = Dir("*.xls")
Do While Len(f) > 0
Workbooks.Open (f)
'changeLh (macro qui ferme le fichier en fin d'exécution)
f = Dir
Loop
End Sub
*****************************
Après l'exécution (en pas à pas) de f = Dir("*.xls")
(sans aller jusqu'à la ligne Workbooks.Open (f) ),
la valeur de f n'est jamais le nom d'un fichier .xls du répertoire courant.
Ne trouvant nulle part d'info sur Dir [:-( ], je suis allé sur :
http://www.clubinfolongueuil.qc.ca/ateliervbaexcel.html
où j'ai vu que le "chemin" doit être spécifié :
Il faut écrire f = Dir(chemin & "*.xls")
et alors, le pb disparaît, et les valeurs successives de f correspondent bien
aux fichiers du répertoire spécifié dans chemin.
De plus, il faut aussi définir le répertoire avant d'ouvrir le fichier f. Le
code devient alors :
****************
Sub ToutleRepertoire()
f = Dir(chemin & "*.xls")
Do While Len(f) > 0
ChDir chemin
Workbooks.Open (f)
'changeLh (macro qui ferme le fichier en fin d'exécution)
f = Dir
Loop
End Sub
***************
Bien évidemment, les 2 lignes
ChDir chemin
Workbooks.Open (f)
peuvent être remplacées par :
Workbooks.Open Filename:=chemin & f
C'est testé, ça marche.
J'ai essayé d'être + clair et + simple dans le présent message,
si tu ne me comprends pas, c'est certainement que je m'explique mal.
De toute façon, merci encore pour tes réponses qui m'ont appris des choses.
LANIMAL
Bonsoir,
Désolé, je ne saisis plus quel code dont en cause ,
celui que j'ai donné pour lister les fichier du répertoire
en cours fonctionne, correctement il me semble.
Changer de chemin reste une faculté qui n'empêche pas son fonctionnement.
Cordialement.
lSteph
Bonsoir
Je crois que maintenant on a un pb de communication ;-)
Je suis d'accord, sans réserve, avec tout ce que tu m'as dit dans tes
derniers messages, et je t'en remercie car ils m'ont appris des choses.
Je disais tout à l'heure que, pour apprendre, je me suis intéressé à ta
proposition du 22.10 à 10:21, qui ne fonctionnait pas chez moi, et je voulais
savoir pourquoi.
Ta proposition est rappelée ci-dessous, je l'ai juste transposée de Word à
Excel, pour des raisons de commodité tout à fait secondaires.
Si tu es intéressé, oublie le reste du fil,
les lignes qui suivent, à elles seules, résument le pb que j'ai eu, et la
solution que j'ai trouvée.
RAPPEL DU CODE EN CAUSE (re-situé dans Excel):
*****************************
Sub ToutleRepertoire()
f = Dir("*.xls")
Do While Len(f) > 0
Workbooks.Open (f)
'changeLh (macro qui ferme le fichier en fin d'exécution)
f = Dir
Loop
End Sub
*****************************
Après l'exécution (en pas à pas) de f = Dir("*.xls")
(sans aller jusqu'à la ligne Workbooks.Open (f) ),
la valeur de f n'est jamais le nom d'un fichier .xls du répertoire courant.
Ne trouvant nulle part d'info sur Dir [:-( ], je suis allé sur :
http://www.clubinfolongueuil.qc.ca/ateliervbaexcel.html
où j'ai vu que le "chemin" doit être spécifié :
Il faut écrire f = Dir(chemin & "*.xls")
et alors, le pb disparaît, et les valeurs successives de f correspondent bien
aux fichiers du répertoire spécifié dans chemin.
De plus, il faut aussi définir le répertoire avant d'ouvrir le fichier f. Le
code devient alors :
****************
Sub ToutleRepertoire()
f = Dir(chemin & "*.xls")
Do While Len(f) > 0
ChDir chemin
Workbooks.Open (f)
'changeLh (macro qui ferme le fichier en fin d'exécution)
f = Dir
Loop
End Sub
***************
Bien évidemment, les 2 lignes
ChDir chemin
Workbooks.Open (f)
peuvent être remplacées par :
Workbooks.Open Filename:=chemin & f
C'est testé, ça marche.
J'ai essayé d'être + clair et + simple dans le présent message,
si tu ne me comprends pas, c'est certainement que je m'explique mal.
De toute façon, merci encore pour tes réponses qui m'ont appris des choses.
LANIMALBonsoir,
Désolé, je ne saisis plus quel code dont en cause ,
celui que j'ai donné pour lister les fichier du répertoire
en cours fonctionne, correctement il me semble.
Changer de chemin reste une faculté qui n'empêche pas son fonctionnement.
Cordialement.
lSteph
:| Non mais kékcékst'histoire
Bonsoir
Je crois que maintenant on a un pb de communication ;-)
Je suis d'accord, sans réserve, avec tout ce que tu m'as dit dans tes
derniers messages, et je t'en remercie car ils m'ont appris des choses.
Je disais tout à l'heure que, pour apprendre, je me suis intéressé à ta
proposition du 22.10 à 10:21, qui ne fonctionnait pas chez moi, et je voulais
savoir pourquoi.
Ta proposition est rappelée ci-dessous, je l'ai juste transposée de Word à
Excel, pour des raisons de commodité tout à fait secondaires.
Si tu es intéressé, oublie le reste du fil,
les lignes qui suivent, à elles seules, résument le pb que j'ai eu, et la
solution que j'ai trouvée.
RAPPEL DU CODE EN CAUSE (re-situé dans Excel):
*****************************
Sub ToutleRepertoire()
f = Dir("*.xls")
Do While Len(f) > 0
Workbooks.Open (f)
'changeLh (macro qui ferme le fichier en fin d'exécution)
f = Dir
Loop
End Sub
*****************************
Après l'exécution (en pas à pas) de f = Dir("*.xls")
(sans aller jusqu'à la ligne Workbooks.Open (f) ),
la valeur de f n'est jamais le nom d'un fichier .xls du répertoire courant.
Ne trouvant nulle part d'info sur Dir [:-( ], je suis allé sur :
http://www.clubinfolongueuil.qc.ca/ateliervbaexcel.html
où j'ai vu que le "chemin" doit être spécifié :
Il faut écrire f = Dir(chemin & "*.xls")
et alors, le pb disparaît, et les valeurs successives de f correspondent bien
aux fichiers du répertoire spécifié dans chemin.
De plus, il faut aussi définir le répertoire avant d'ouvrir le fichier f. Le
code devient alors :
****************
Sub ToutleRepertoire()
f = Dir(chemin & "*.xls")
Do While Len(f) > 0
ChDir chemin
Workbooks.Open (f)
'changeLh (macro qui ferme le fichier en fin d'exécution)
f = Dir
Loop
End Sub
***************
Bien évidemment, les 2 lignes
ChDir chemin
Workbooks.Open (f)
peuvent être remplacées par :
Workbooks.Open Filename:=chemin & f
C'est testé, ça marche.
J'ai essayé d'être + clair et + simple dans le présent message,
si tu ne me comprends pas, c'est certainement que je m'explique mal.
De toute façon, merci encore pour tes réponses qui m'ont appris des choses.
LANIMALBonsoir,
Désolé, je ne saisis plus quel code dont en cause ,
celui que j'ai donné pour lister les fichier du répertoire
en cours fonctionne, correctement il me semble.
Changer de chemin reste une faculté qui n'empêche pas son fonctionnement.
Cordialement.
lSteph
:| Non mais kékcékst'histoire
Bonsoir
Je crois que maintenant on a un pb de communication ;-)
Je suis d'accord, sans réserve, avec tout ce que tu m'as dit dans tes
derniers messages, et je t'en remercie car ils m'ont appris des choses.
Je disais tout à l'heure que, pour apprendre, je me suis intéressé à ta
proposition du 22.10 à 10:21, qui ne fonctionnait pas chez moi, et je voulais
savoir pourquoi.
Ta proposition est rappelée ci-dessous, je l'ai juste transposée de Word à
Excel, pour des raisons de commodité tout à fait secondaires.
Si tu es intéressé, oublie le reste du fil,
les lignes qui suivent, à elles seules, résument le pb que j'ai eu, et la
solution que j'ai trouvée.
RAPPEL DU CODE EN CAUSE (re-situé dans Excel):
*****************************
Sub ToutleRepertoire()
f = Dir("*.xls")
Do While Len(f) > 0
Workbooks.Open (f)
'changeLh (macro qui ferme le fichier en fin d'exécution)
f = Dir
Loop
End Sub
*****************************
Après l'exécution (en pas à pas) de f = Dir("*.xls")
(sans aller jusqu'à la ligne Workbooks.Open (f) ),
la valeur de f n'est jamais le nom d'un fichier .xls du répertoire courant.
Ne trouvant nulle part d'info sur Dir [:-( ], je suis allé sur :
http://www.clubinfolongueuil.qc.ca/ateliervbaexcel.html
où j'ai vu que le "chemin" doit être spécifié :
Il faut écrire f = Dir(chemin & "*.xls")
et alors, le pb disparaît, et les valeurs successives de f correspondent bien
aux fichiers du répertoire spécifié dans chemin.
De plus, il faut aussi définir le répertoire avant d'ouvrir le fichier f. Le
code devient alors :
****************
Sub ToutleRepertoire()
f = Dir(chemin & "*.xls")
Do While Len(f) > 0
ChDir chemin
Workbooks.Open (f)
'changeLh (macro qui ferme le fichier en fin d'exécution)
f = Dir
Loop
End Sub
***************
Bien évidemment, les 2 lignes
ChDir chemin
Workbooks.Open (f)
peuvent être remplacées par :
Workbooks.Open Filename:=chemin & f
C'est testé, ça marche.
J'ai essayé d'être + clair et + simple dans le présent message,
si tu ne me comprends pas, c'est certainement que je m'explique mal.
De toute façon, merci encore pour tes réponses qui m'ont appris des choses.
LANIMAL
Bonsoir,
Désolé, je ne saisis plus quel code dont en cause ,
celui que j'ai donné pour lister les fichier du répertoire
en cours fonctionne, correctement il me semble.
Changer de chemin reste une faculté qui n'empêche pas son fonctionnement.
Cordialement.
lSteph
:| Non mais kékcékst'histoire
Bonsoir
Je crois que maintenant on a un pb de communication ;-)
Je suis d'accord, sans réserve, avec tout ce que tu m'as dit dans tes
derniers messages, et je t'en remercie car ils m'ont appris des choses.
Je disais tout à l'heure que, pour apprendre, je me suis intéressé à ta
proposition du 22.10 à 10:21, qui ne fonctionnait pas chez moi, et je voulais
savoir pourquoi.
Ta proposition est rappelée ci-dessous, je l'ai juste transposée de Word à
Excel, pour des raisons de commodité tout à fait secondaires.
Si tu es intéressé, oublie le reste du fil,
les lignes qui suivent, à elles seules, résument le pb que j'ai eu, et la
solution que j'ai trouvée.
RAPPEL DU CODE EN CAUSE (re-situé dans Excel):
*****************************
Sub ToutleRepertoire()
f = Dir("*.xls")
Do While Len(f) > 0
Workbooks.Open (f)
'changeLh (macro qui ferme le fichier en fin d'exécution)
f = Dir
Loop
End Sub
*****************************
Après l'exécution (en pas à pas) de f = Dir("*.xls")
(sans aller jusqu'à la ligne Workbooks.Open (f) ),
la valeur de f n'est jamais le nom d'un fichier .xls du répertoire courant.
Ne trouvant nulle part d'info sur Dir [:-( ], je suis allé sur :
http://www.clubinfolongueuil.qc.ca/ateliervbaexcel.html
où j'ai vu que le "chemin" doit être spécifié :
Il faut écrire f = Dir(chemin & "*.xls")
et alors, le pb disparaît, et les valeurs successives de f correspondent bien
aux fichiers du répertoire spécifié dans chemin.
De plus, il faut aussi définir le répertoire avant d'ouvrir le fichier f. Le
code devient alors :
****************
Sub ToutleRepertoire()
f = Dir(chemin & "*.xls")
Do While Len(f) > 0
ChDir chemin
Workbooks.Open (f)
'changeLh (macro qui ferme le fichier en fin d'exécution)
f = Dir
Loop
End Sub
***************
Bien évidemment, les 2 lignes
ChDir chemin
Workbooks.Open (f)
peuvent être remplacées par :
Workbooks.Open Filename:=chemin & f
C'est testé, ça marche.
J'ai essayé d'être + clair et + simple dans le présent message,
si tu ne me comprends pas, c'est certainement que je m'explique mal.
De toute façon, merci encore pour tes réponses qui m'ont appris des choses.
LANIMALBonsoir,
Désolé, je ne saisis plus quel code dont en cause ,
celui que j'ai donné pour lister les fichier du répertoire
en cours fonctionne, correctement il me semble.
Changer de chemin reste une faculté qui n'empêche pas son fonctionnement.
Cordialement.
lSteph
;-)...par ailleurs il serait absurde d'avoir un pb de communication!:| Non mais kékcékst'histoire
:D Amicalement.
@+
lSteph
LANIMAL avait écrit le 26/10/2006 :Bonsoir
Je crois que maintenant on a un pb de communication ;-)
Je suis d'accord, sans réserve, avec tout ce que tu m'as dit dans tes
derniers messages, et je t'en remercie car ils m'ont appris des choses.
Je disais tout à l'heure que, pour apprendre, je me suis intéressé à
ta proposition du 22.10 à 10:21, qui ne fonctionnait pas chez moi, et
je voulais savoir pourquoi.
Ta proposition est rappelée ci-dessous, je l'ai juste transposée de
Word à Excel, pour des raisons de commodité tout à fait secondaires.
Si tu es intéressé, oublie le reste du fil,
les lignes qui suivent, à elles seules, résument le pb que j'ai eu, et
la solution que j'ai trouvée.
RAPPEL DU CODE EN CAUSE (re-situé dans Excel):
*****************************
Sub ToutleRepertoire()
f = Dir("*.xls")
Do While Len(f) > 0
Workbooks.Open (f)
'changeLh (macro qui ferme le fichier en fin d'exécution)
f = Dir
Loop
End Sub
*****************************
Après l'exécution (en pas à pas) de f = Dir("*.xls")
(sans aller jusqu'à la ligne Workbooks.Open (f) ),
la valeur de f n'est jamais le nom d'un fichier .xls du répertoire
courant.
Ne trouvant nulle part d'info sur Dir [:-( ], je suis allé sur :
http://www.clubinfolongueuil.qc.ca/ateliervbaexcel.html
où j'ai vu que le "chemin" doit être spécifié :
Il faut écrire f = Dir(chemin & "*.xls")
et alors, le pb disparaît, et les valeurs successives de f
correspondent bien aux fichiers du répertoire spécifié dans chemin.
De plus, il faut aussi définir le répertoire avant d'ouvrir le fichier
f. Le code devient alors :
****************
Sub ToutleRepertoire()
f = Dir(chemin & "*.xls")
Do While Len(f) > 0
ChDir chemin
Workbooks.Open (f)
'changeLh (macro qui ferme le fichier en fin d'exécution)
f = Dir
Loop
End Sub
***************
Bien évidemment, les 2 lignes
ChDir chemin
Workbooks.Open (f)
peuvent être remplacées par :
Workbooks.Open Filename:=chemin & f
C'est testé, ça marche.
J'ai essayé d'être + clair et + simple dans le présent message,
si tu ne me comprends pas, c'est certainement que je m'explique mal.
De toute façon, merci encore pour tes réponses qui m'ont appris des
choses.
LANIMALBonsoir,
Désolé, je ne saisis plus quel code dont en cause ,
celui que j'ai donné pour lister les fichier du répertoire
en cours fonctionne, correctement il me semble.
Changer de chemin reste une faculté qui n'empêche pas son
fonctionnement.
Cordialement.
lSteph
;-)...par ailleurs il serait absurde d'avoir un pb de communication!
:| Non mais kékcékst'histoire
:D Amicalement.
@+
lSteph
LANIMAL avait écrit le 26/10/2006 :
Bonsoir
Je crois que maintenant on a un pb de communication ;-)
Je suis d'accord, sans réserve, avec tout ce que tu m'as dit dans tes
derniers messages, et je t'en remercie car ils m'ont appris des choses.
Je disais tout à l'heure que, pour apprendre, je me suis intéressé à
ta proposition du 22.10 à 10:21, qui ne fonctionnait pas chez moi, et
je voulais savoir pourquoi.
Ta proposition est rappelée ci-dessous, je l'ai juste transposée de
Word à Excel, pour des raisons de commodité tout à fait secondaires.
Si tu es intéressé, oublie le reste du fil,
les lignes qui suivent, à elles seules, résument le pb que j'ai eu, et
la solution que j'ai trouvée.
RAPPEL DU CODE EN CAUSE (re-situé dans Excel):
*****************************
Sub ToutleRepertoire()
f = Dir("*.xls")
Do While Len(f) > 0
Workbooks.Open (f)
'changeLh (macro qui ferme le fichier en fin d'exécution)
f = Dir
Loop
End Sub
*****************************
Après l'exécution (en pas à pas) de f = Dir("*.xls")
(sans aller jusqu'à la ligne Workbooks.Open (f) ),
la valeur de f n'est jamais le nom d'un fichier .xls du répertoire
courant.
Ne trouvant nulle part d'info sur Dir [:-( ], je suis allé sur :
http://www.clubinfolongueuil.qc.ca/ateliervbaexcel.html
où j'ai vu que le "chemin" doit être spécifié :
Il faut écrire f = Dir(chemin & "*.xls")
et alors, le pb disparaît, et les valeurs successives de f
correspondent bien aux fichiers du répertoire spécifié dans chemin.
De plus, il faut aussi définir le répertoire avant d'ouvrir le fichier
f. Le code devient alors :
****************
Sub ToutleRepertoire()
f = Dir(chemin & "*.xls")
Do While Len(f) > 0
ChDir chemin
Workbooks.Open (f)
'changeLh (macro qui ferme le fichier en fin d'exécution)
f = Dir
Loop
End Sub
***************
Bien évidemment, les 2 lignes
ChDir chemin
Workbooks.Open (f)
peuvent être remplacées par :
Workbooks.Open Filename:=chemin & f
C'est testé, ça marche.
J'ai essayé d'être + clair et + simple dans le présent message,
si tu ne me comprends pas, c'est certainement que je m'explique mal.
De toute façon, merci encore pour tes réponses qui m'ont appris des
choses.
LANIMAL
Bonsoir,
Désolé, je ne saisis plus quel code dont en cause ,
celui que j'ai donné pour lister les fichier du répertoire
en cours fonctionne, correctement il me semble.
Changer de chemin reste une faculté qui n'empêche pas son
fonctionnement.
Cordialement.
lSteph
;-)...par ailleurs il serait absurde d'avoir un pb de communication!:| Non mais kékcékst'histoire
:D Amicalement.
@+
lSteph
LANIMAL avait écrit le 26/10/2006 :Bonsoir
Je crois que maintenant on a un pb de communication ;-)
Je suis d'accord, sans réserve, avec tout ce que tu m'as dit dans tes
derniers messages, et je t'en remercie car ils m'ont appris des choses.
Je disais tout à l'heure que, pour apprendre, je me suis intéressé à
ta proposition du 22.10 à 10:21, qui ne fonctionnait pas chez moi, et
je voulais savoir pourquoi.
Ta proposition est rappelée ci-dessous, je l'ai juste transposée de
Word à Excel, pour des raisons de commodité tout à fait secondaires.
Si tu es intéressé, oublie le reste du fil,
les lignes qui suivent, à elles seules, résument le pb que j'ai eu, et
la solution que j'ai trouvée.
RAPPEL DU CODE EN CAUSE (re-situé dans Excel):
*****************************
Sub ToutleRepertoire()
f = Dir("*.xls")
Do While Len(f) > 0
Workbooks.Open (f)
'changeLh (macro qui ferme le fichier en fin d'exécution)
f = Dir
Loop
End Sub
*****************************
Après l'exécution (en pas à pas) de f = Dir("*.xls")
(sans aller jusqu'à la ligne Workbooks.Open (f) ),
la valeur de f n'est jamais le nom d'un fichier .xls du répertoire
courant.
Ne trouvant nulle part d'info sur Dir [:-( ], je suis allé sur :
http://www.clubinfolongueuil.qc.ca/ateliervbaexcel.html
où j'ai vu que le "chemin" doit être spécifié :
Il faut écrire f = Dir(chemin & "*.xls")
et alors, le pb disparaît, et les valeurs successives de f
correspondent bien aux fichiers du répertoire spécifié dans chemin.
De plus, il faut aussi définir le répertoire avant d'ouvrir le fichier
f. Le code devient alors :
****************
Sub ToutleRepertoire()
f = Dir(chemin & "*.xls")
Do While Len(f) > 0
ChDir chemin
Workbooks.Open (f)
'changeLh (macro qui ferme le fichier en fin d'exécution)
f = Dir
Loop
End Sub
***************
Bien évidemment, les 2 lignes
ChDir chemin
Workbooks.Open (f)
peuvent être remplacées par :
Workbooks.Open Filename:=chemin & f
C'est testé, ça marche.
J'ai essayé d'être + clair et + simple dans le présent message,
si tu ne me comprends pas, c'est certainement que je m'explique mal.
De toute façon, merci encore pour tes réponses qui m'ont appris des
choses.
LANIMALBonsoir,
Désolé, je ne saisis plus quel code dont en cause ,
celui que j'ai donné pour lister les fichier du répertoire
en cours fonctionne, correctement il me semble.
Changer de chemin reste une faculté qui n'empêche pas son
fonctionnement.
Cordialement.
lSteph
;-)...par ailleurs il serait absurde d'avoir un pb de communication!:| Non mais kékcékst'histoire
:D Amicalement.
@+
lSteph
LANIMAL avait écrit le 26/10/2006 :Bonsoir
Je crois que maintenant on a un pb de communication ;-)
Je suis d'accord, sans réserve, avec tout ce que tu m'as dit dans tes
derniers messages, et je t'en remercie car ils m'ont appris des choses.
Je disais tout à l'heure que, pour apprendre, je me suis intéressé à
ta proposition du 22.10 à 10:21, qui ne fonctionnait pas chez moi, et
je voulais savoir pourquoi.
Ta proposition est rappelée ci-dessous, je l'ai juste transposée de
Word à Excel, pour des raisons de commodité tout à fait secondaires.
Si tu es intéressé, oublie le reste du fil,
les lignes qui suivent, à elles seules, résument le pb que j'ai eu, et
la solution que j'ai trouvée.
RAPPEL DU CODE EN CAUSE (re-situé dans Excel):
*****************************
Sub ToutleRepertoire()
f = Dir("*.xls")
Do While Len(f) > 0
Workbooks.Open (f)
'changeLh (macro qui ferme le fichier en fin d'exécution)
f = Dir
Loop
End Sub
*****************************
Après l'exécution (en pas à pas) de f = Dir("*.xls")
(sans aller jusqu'à la ligne Workbooks.Open (f) ),
la valeur de f n'est jamais le nom d'un fichier .xls du répertoire
courant.
Ne trouvant nulle part d'info sur Dir [:-( ], je suis allé sur :
http://www.clubinfolongueuil.qc.ca/ateliervbaexcel.html
où j'ai vu que le "chemin" doit être spécifié :
Il faut écrire f = Dir(chemin & "*.xls")
et alors, le pb disparaît, et les valeurs successives de f
correspondent bien aux fichiers du répertoire spécifié dans chemin.
De plus, il faut aussi définir le répertoire avant d'ouvrir le fichier
f. Le code devient alors :
****************
Sub ToutleRepertoire()
f = Dir(chemin & "*.xls")
Do While Len(f) > 0
ChDir chemin
Workbooks.Open (f)
'changeLh (macro qui ferme le fichier en fin d'exécution)
f = Dir
Loop
End Sub
***************
Bien évidemment, les 2 lignes
ChDir chemin
Workbooks.Open (f)
peuvent être remplacées par :
Workbooks.Open Filename:=chemin & f
C'est testé, ça marche.
J'ai essayé d'être + clair et + simple dans le présent message,
si tu ne me comprends pas, c'est certainement que je m'explique mal.
De toute façon, merci encore pour tes réponses qui m'ont appris des
choses.
LANIMALBonsoir,
Désolé, je ne saisis plus quel code dont en cause ,
celui que j'ai donné pour lister les fichier du répertoire
en cours fonctionne, correctement il me semble.
Changer de chemin reste une faculté qui n'empêche pas son
fonctionnement.
Cordialement.
lSteph
;-)...par ailleurs il serait absurde d'avoir un pb de communication!
:| Non mais kékcékst'histoire
:D Amicalement.
@+
lSteph
LANIMAL avait écrit le 26/10/2006 :
Bonsoir
Je crois que maintenant on a un pb de communication ;-)
Je suis d'accord, sans réserve, avec tout ce que tu m'as dit dans tes
derniers messages, et je t'en remercie car ils m'ont appris des choses.
Je disais tout à l'heure que, pour apprendre, je me suis intéressé à
ta proposition du 22.10 à 10:21, qui ne fonctionnait pas chez moi, et
je voulais savoir pourquoi.
Ta proposition est rappelée ci-dessous, je l'ai juste transposée de
Word à Excel, pour des raisons de commodité tout à fait secondaires.
Si tu es intéressé, oublie le reste du fil,
les lignes qui suivent, à elles seules, résument le pb que j'ai eu, et
la solution que j'ai trouvée.
RAPPEL DU CODE EN CAUSE (re-situé dans Excel):
*****************************
Sub ToutleRepertoire()
f = Dir("*.xls")
Do While Len(f) > 0
Workbooks.Open (f)
'changeLh (macro qui ferme le fichier en fin d'exécution)
f = Dir
Loop
End Sub
*****************************
Après l'exécution (en pas à pas) de f = Dir("*.xls")
(sans aller jusqu'à la ligne Workbooks.Open (f) ),
la valeur de f n'est jamais le nom d'un fichier .xls du répertoire
courant.
Ne trouvant nulle part d'info sur Dir [:-( ], je suis allé sur :
http://www.clubinfolongueuil.qc.ca/ateliervbaexcel.html
où j'ai vu que le "chemin" doit être spécifié :
Il faut écrire f = Dir(chemin & "*.xls")
et alors, le pb disparaît, et les valeurs successives de f
correspondent bien aux fichiers du répertoire spécifié dans chemin.
De plus, il faut aussi définir le répertoire avant d'ouvrir le fichier
f. Le code devient alors :
****************
Sub ToutleRepertoire()
f = Dir(chemin & "*.xls")
Do While Len(f) > 0
ChDir chemin
Workbooks.Open (f)
'changeLh (macro qui ferme le fichier en fin d'exécution)
f = Dir
Loop
End Sub
***************
Bien évidemment, les 2 lignes
ChDir chemin
Workbooks.Open (f)
peuvent être remplacées par :
Workbooks.Open Filename:=chemin & f
C'est testé, ça marche.
J'ai essayé d'être + clair et + simple dans le présent message,
si tu ne me comprends pas, c'est certainement que je m'explique mal.
De toute façon, merci encore pour tes réponses qui m'ont appris des
choses.
LANIMAL
Bonsoir,
Désolé, je ne saisis plus quel code dont en cause ,
celui que j'ai donné pour lister les fichier du répertoire
en cours fonctionne, correctement il me semble.
Changer de chemin reste une faculté qui n'empêche pas son
fonctionnement.
Cordialement.
lSteph
;-)...par ailleurs il serait absurde d'avoir un pb de communication!:| Non mais kékcékst'histoire
:D Amicalement.
@+
lSteph
LANIMAL avait écrit le 26/10/2006 :Bonsoir
Je crois que maintenant on a un pb de communication ;-)
Je suis d'accord, sans réserve, avec tout ce que tu m'as dit dans tes
derniers messages, et je t'en remercie car ils m'ont appris des choses.
Je disais tout à l'heure que, pour apprendre, je me suis intéressé à
ta proposition du 22.10 à 10:21, qui ne fonctionnait pas chez moi, et
je voulais savoir pourquoi.
Ta proposition est rappelée ci-dessous, je l'ai juste transposée de
Word à Excel, pour des raisons de commodité tout à fait secondaires.
Si tu es intéressé, oublie le reste du fil,
les lignes qui suivent, à elles seules, résument le pb que j'ai eu, et
la solution que j'ai trouvée.
RAPPEL DU CODE EN CAUSE (re-situé dans Excel):
*****************************
Sub ToutleRepertoire()
f = Dir("*.xls")
Do While Len(f) > 0
Workbooks.Open (f)
'changeLh (macro qui ferme le fichier en fin d'exécution)
f = Dir
Loop
End Sub
*****************************
Après l'exécution (en pas à pas) de f = Dir("*.xls")
(sans aller jusqu'à la ligne Workbooks.Open (f) ),
la valeur de f n'est jamais le nom d'un fichier .xls du répertoire
courant.
Ne trouvant nulle part d'info sur Dir [:-( ], je suis allé sur :
http://www.clubinfolongueuil.qc.ca/ateliervbaexcel.html
où j'ai vu que le "chemin" doit être spécifié :
Il faut écrire f = Dir(chemin & "*.xls")
et alors, le pb disparaît, et les valeurs successives de f
correspondent bien aux fichiers du répertoire spécifié dans chemin.
De plus, il faut aussi définir le répertoire avant d'ouvrir le fichier
f. Le code devient alors :
****************
Sub ToutleRepertoire()
f = Dir(chemin & "*.xls")
Do While Len(f) > 0
ChDir chemin
Workbooks.Open (f)
'changeLh (macro qui ferme le fichier en fin d'exécution)
f = Dir
Loop
End Sub
***************
Bien évidemment, les 2 lignes
ChDir chemin
Workbooks.Open (f)
peuvent être remplacées par :
Workbooks.Open Filename:=chemin & f
C'est testé, ça marche.
J'ai essayé d'être + clair et + simple dans le présent message,
si tu ne me comprends pas, c'est certainement que je m'explique mal.
De toute façon, merci encore pour tes réponses qui m'ont appris des
choses.
LANIMALBonsoir,
Désolé, je ne saisis plus quel code dont en cause ,
celui que j'ai donné pour lister les fichier du répertoire
en cours fonctionne, correctement il me semble.
Changer de chemin reste une faculté qui n'empêche pas son
fonctionnement.
Cordialement.
lSteph