OVH Cloud OVH Cloud

demarrer GetOpenFilename à partir d'un autre répertoire

9 réponses
Avatar
Xavier POWAGA
Bonjour,
voilà je souhaite charger un fichier a partir d'un code VBA. Cela marche
bien mais l'instruction

NomFichier= Application.GetOpenFilename(("Fichier AIC (*.csv), *.csv"))

commence toujours par chercher les fichiers dans "mes documents" alors que
j'aimerais qu'il les cherche à partir du repertoire de mon application. Est
ce possible ?

merci

9 réponses

Avatar
lSteph
Re Bonjour,

Dim Nomfichier as string
chdir thisworkbook.path
NomFichier= Application.GetOpenFilename(("Fichier AIC (*.csv), *.csv"))

lSteph

"Xavier POWAGA" a écrit dans le message de news:
4415edee$0$7905$
Bonjour,
voilà je souhaite charger un fichier a partir d'un code VBA. Cela marche
bien mais l'instruction

NomFichier= Application.GetOpenFilename(("Fichier AIC (*.csv), *.csv"))

commence toujours par chercher les fichiers dans "mes documents" alors que
j'aimerais qu'il les cherche à partir du repertoire de mon application.
Est ce possible ?

merci



Avatar
michdenis
Bonjour Xavier,

'--------------------------------
Sub OpenMultipleFiles()

Dim S(), LesFiltres As String
Dim Title As String
Dim x As Integer, FilterIndex As Integer
Dim Filename As Variant

LesFiltres = "Excel Files (*.xls),*.xls," & _
"Text Files (*.txt),*.txt," & _
"All Files (*.*),*.*"

'Filtre par défaut *.* -> All Files
FilterIndex = 3

'Titre de la boîte de dialogue
Title = "Sélectionner les fichiers à ouvrir..."

'Pour sélectionner le lecteur
CurDir "c:"
'Pour sélectionner le répertoire à l'ouverture
ChDir "c:Atravail"

Filename = Application.GetOpenFilename(FileFilter:=LesFiltres, _
FilterIndex:=FilterIndex, Title:=Title, MultiSelect:=True)

Select Case TypeName(Filename)
Case Is = "Boolean"
'annuler la boîte de dialogue
Exit Sub
Case Is = "String"
'un fichier seulement de sélectionner
ReDim S(1 To 1)
S(1) = Filename
Case Else
ReDim S(1 To UBound(Filename))
End Select

For x = LBound(S) To UBound(S)
Workbooks.open s(x)
Next

End Sub
'--------------------------------


Salutations!


"Xavier POWAGA" a écrit dans le message de news: 4415edee$0$7905$
Bonjour,
voilà je souhaite charger un fichier a partir d'un code VBA. Cela marche
bien mais l'instruction

NomFichier= Application.GetOpenFilename(("Fichier AIC (*.csv), *.csv"))

commence toujours par chercher les fichiers dans "mes documents" alors que
j'aimerais qu'il les cherche à partir du repertoire de mon application. Est
ce possible ?

merci
Avatar
Xavier POWAGA
simple et efficace

trop fort

merci
"lSteph" a écrit dans le message de news:

Re Bonjour,

Dim Nomfichier as string
chdir thisworkbook.path
NomFichier= Application.GetOpenFilename(("Fichier AIC (*.csv), *.csv"))

lSteph

"Xavier POWAGA" a écrit dans le message de news:
4415edee$0$7905$
Bonjour,
voilà je souhaite charger un fichier a partir d'un code VBA. Cela marche
bien mais l'instruction

NomFichier= Application.GetOpenFilename(("Fichier AIC (*.csv), *.csv"))

commence toujours par chercher les fichiers dans "mes documents" alors
que j'aimerais qu'il les cherche à partir du repertoire de mon
application. Est ce possible ?

merci







Avatar
Xavier POWAGA
heu!! désolé je croyais que ça marchait, mais en fait ça continue à s'ouvrir
par défaut sur le répertoire "mesdocuments".

le chdir n'a pas l'air de fonctionner avec le getopenfilename


"lSteph" a écrit dans le message de news:

Re Bonjour,

Dim Nomfichier as string
chdir thisworkbook.path
NomFichier= Application.GetOpenFilename(("Fichier AIC (*.csv), *.csv"))

lSteph

"Xavier POWAGA" a écrit dans le message de news:
4415edee$0$7905$
Bonjour,
voilà je souhaite charger un fichier a partir d'un code VBA. Cela marche
bien mais l'instruction

NomFichier= Application.GetOpenFilename(("Fichier AIC (*.csv), *.csv"))

commence toujours par chercher les fichiers dans "mes documents" alors
que j'aimerais qu'il les cherche à partir du repertoire de mon
application. Est ce possible ?

merci







Avatar
lSteph
Bonjour,

Cela s'ouvre sur le répertoire demandé par chdir sous réserve que cette
instruction précède juste le getopenfilename.
Thisworkbook signifie le classeur qui contient la macro à ce titre ce sera
ce chemin donc (cela peut aussi s'avèrer être
"mes documents") si ce classeur que tu as exprimé par application s'y
trouve.
que j'aimerais qu'il les cherche à partir du repertoire de mon
application.
Si le chemin est par exemple "c:travail"



chdir thisworkbook.path
revient à écrire
chdir "c:travail"

Tu peux lire ce que MichDenis a écrit et semble confirmer cela entre autres
...

lSteph

"Xavier POWAGA" a écrit dans le message de news:
4416635f$0$7919$
heu!! désolé je croyais que ça marchait, mais en fait ça continue à
s'ouvrir par défaut sur le répertoire "mesdocuments".

le chdir n'a pas l'air de fonctionner avec le getopenfilename


"lSteph" a écrit dans le message de news:

Re Bonjour,

Dim Nomfichier as string
chdir thisworkbook.path
NomFichier= Application.GetOpenFilename(("Fichier AIC (*.csv), *.csv"))

lSteph

"Xavier POWAGA" a écrit dans le message de news:
4415edee$0$7905$
Bonjour,
voilà je souhaite charger un fichier a partir d'un code VBA. Cela marche
bien mais l'instruction

NomFichier= Application.GetOpenFilename(("Fichier AIC (*.csv), *.csv"))

commence toujours par chercher les fichiers dans "mes documents" alors
que j'aimerais qu'il les cherche à partir du repertoire de mon
application. Est ce possible ?

merci











Avatar
Xavier POWAGA
en fait il semblerait d'après les espions que j'ai mis, que les curDir et
ChDir soit sans effet dans mon programme
je vais continuer à chercher pourquoi ce mystère



"lSteph" a écrit dans le message de news:
%
Bonjour,

Cela s'ouvre sur le répertoire demandé par chdir sous réserve que cette
instruction précède juste le getopenfilename.
Thisworkbook signifie le classeur qui contient la macro à ce titre ce sera
ce chemin donc (cela peut aussi s'avèrer être
"mes documents") si ce classeur que tu as exprimé par application s'y
trouve.
que j'aimerais qu'il les cherche à partir du repertoire de mon
application.
Si le chemin est par exemple "c:travail"



chdir thisworkbook.path
revient à écrire
chdir "c:travail"

Tu peux lire ce que MichDenis a écrit et semble confirmer cela entre
autres ...

lSteph

"Xavier POWAGA" a écrit dans le message de news:
4416635f$0$7919$
heu!! désolé je croyais que ça marchait, mais en fait ça continue à
s'ouvrir par défaut sur le répertoire "mesdocuments".

le chdir n'a pas l'air de fonctionner avec le getopenfilename


"lSteph" a écrit dans le message de news:

Re Bonjour,

Dim Nomfichier as string
chdir thisworkbook.path
NomFichier= Application.GetOpenFilename(("Fichier AIC (*.csv), *.csv"))

lSteph

"Xavier POWAGA" a écrit dans le message de news:
4415edee$0$7905$
Bonjour,
voilà je souhaite charger un fichier a partir d'un code VBA. Cela
marche bien mais l'instruction

NomFichier= Application.GetOpenFilename(("Fichier AIC (*.csv), *.csv"))

commence toujours par chercher les fichiers dans "mes documents" alors
que j'aimerais qu'il les cherche à partir du repertoire de mon
application. Est ce possible ?

merci















Avatar
Xavier POWAGA
avant le ChDir j'ai rajouté ChDrive Left(ThisWorkbook.Path, 1)
maintenant ça marche

"Xavier POWAGA" a écrit dans le message de news:
4416f277$0$8002$
en fait il semblerait d'après les espions que j'ai mis, que les curDir et
ChDir soit sans effet dans mon programme
je vais continuer à chercher pourquoi ce mystère



"lSteph" a écrit dans le message de news:
%
Bonjour,

Cela s'ouvre sur le répertoire demandé par chdir sous réserve que cette
instruction précède juste le getopenfilename.
Thisworkbook signifie le classeur qui contient la macro à ce titre ce
sera ce chemin donc (cela peut aussi s'avèrer être
"mes documents") si ce classeur que tu as exprimé par application s'y
trouve.
que j'aimerais qu'il les cherche à partir du repertoire de mon
application.
Si le chemin est par exemple "c:travail"



chdir thisworkbook.path
revient à écrire
chdir "c:travail"

Tu peux lire ce que MichDenis a écrit et semble confirmer cela entre
autres ...

lSteph

"Xavier POWAGA" a écrit dans le message de news:
4416635f$0$7919$
heu!! désolé je croyais que ça marchait, mais en fait ça continue à
s'ouvrir par défaut sur le répertoire "mesdocuments".

le chdir n'a pas l'air de fonctionner avec le getopenfilename


"lSteph" a écrit dans le message de news:

Re Bonjour,

Dim Nomfichier as string
chdir thisworkbook.path
NomFichier= Application.GetOpenFilename(("Fichier AIC (*.csv), *.csv"))

lSteph

"Xavier POWAGA" a écrit dans le message de news:
4415edee$0$7905$
Bonjour,
voilà je souhaite charger un fichier a partir d'un code VBA. Cela
marche bien mais l'instruction

NomFichier= Application.GetOpenFilename(("Fichier AIC (*.csv),
*.csv"))

commence toujours par chercher les fichiers dans "mes documents" alors
que j'aimerais qu'il les cherche à partir du repertoire de mon
application. Est ce possible ?

merci



















Avatar
lSteph
Bonsoir,
;-) tu as fini par trouver tout seul, tant mieux!
tu n'avais pas dit que ce Thisworkbook n'était pas sur C:....
et hélas chdir n'a pas faculté à changer d'unité.
Curdir désigne le répertoire courant
c'est effectivement bien mieux avec ChDrive pour changer d'unité, mais tu
n'en aurais pas besoin si
au lieu d'ouvrir le classeur contenant la macro depuis l'explorateur ou le
bureau
ou , probablement un quelconque raccourci, tu l'ouvrais depuis excel.
Regarde dans tes options du menu outils, le répertoire par défaut doit être
"mes documents" (cela peut se changer aussi)
donc quand tu lances excel par un raccourci, le chemin du fichier à ouvrir
est trouvé mais
Excel se lance selon son propre répertoire par défaut et il reste ainsi
comme répertoire courant ou curdir.
Au contraire si tu ouvres d'abord Excel et que tu utilises le menu fichier
Ouvrir pour appeler ton application
le répertoire courant en est ainsi modifié et un éventuel changement d'unité
sera ainsi pris en compte.
Tu peux alors lancer un "Fichier ouvrir" ou un "Getopenfilename" pour t'en
convaincre.

A+

lSteph


"Xavier POWAGA" a écrit dans le message de news:
4416f5c4$0$7933$
avant le ChDir j'ai rajouté ChDrive Left(ThisWorkbook.Path, 1)
maintenant ça marche

"Xavier POWAGA" a écrit dans le message de news:
4416f277$0$8002$
en fait il semblerait d'après les espions que j'ai mis, que les curDir et
ChDir soit sans effet dans mon programme
je vais continuer à chercher pourquoi ce mystère



"lSteph" a écrit dans le message de news:
%
Bonjour,

Cela s'ouvre sur le répertoire demandé par chdir sous réserve que cette
instruction précède juste le getopenfilename.
Thisworkbook signifie le classeur qui contient la macro à ce titre ce
sera ce chemin donc (cela peut aussi s'avèrer être
"mes documents") si ce classeur que tu as exprimé par application s'y
trouve.
que j'aimerais qu'il les cherche à partir du repertoire de mon
application.
Si le chemin est par exemple "c:travail"



chdir thisworkbook.path
revient à écrire
chdir "c:travail"

Tu peux lire ce que MichDenis a écrit et semble confirmer cela entre
autres ...

lSteph

"Xavier POWAGA" a écrit dans le message de news:
4416635f$0$7919$
heu!! désolé je croyais que ça marchait, mais en fait ça continue à
s'ouvrir par défaut sur le répertoire "mesdocuments".

le chdir n'a pas l'air de fonctionner avec le getopenfilename


"lSteph" a écrit dans le message de news:

Re Bonjour,

Dim Nomfichier as string
chdir thisworkbook.path
NomFichier= Application.GetOpenFilename(("Fichier AIC (*.csv),
*.csv"))

lSteph

"Xavier POWAGA" a écrit dans le message de
news: 4415edee$0$7905$
Bonjour,
voilà je souhaite charger un fichier a partir d'un code VBA. Cela
marche bien mais l'instruction

NomFichier= Application.GetOpenFilename(("Fichier AIC (*.csv),
*.csv"))

commence toujours par chercher les fichiers dans "mes documents"
alors que j'aimerais qu'il les cherche à partir du repertoire de mon
application. Est ce possible ?

merci























Avatar
Xavier POWAGA
merci pour toutes ces précisions.

xavier
"lSteph" a écrit dans le message de news:
u%23$
Bonsoir,
;-) tu as fini par trouver tout seul, tant mieux!
tu n'avais pas dit que ce Thisworkbook n'était pas sur C:....
et hélas chdir n'a pas faculté à changer d'unité.
Curdir désigne le répertoire courant
c'est effectivement bien mieux avec ChDrive pour changer d'unité, mais tu
n'en aurais pas besoin si
au lieu d'ouvrir le classeur contenant la macro depuis l'explorateur ou le
bureau
ou , probablement un quelconque raccourci, tu l'ouvrais depuis excel.
Regarde dans tes options du menu outils, le répertoire par défaut doit
être "mes documents" (cela peut se changer aussi)
donc quand tu lances excel par un raccourci, le chemin du fichier à ouvrir
est trouvé mais
Excel se lance selon son propre répertoire par défaut et il reste ainsi
comme répertoire courant ou curdir.
Au contraire si tu ouvres d'abord Excel et que tu utilises le menu fichier
Ouvrir pour appeler ton application
le répertoire courant en est ainsi modifié et un éventuel changement
d'unité sera ainsi pris en compte.
Tu peux alors lancer un "Fichier ouvrir" ou un "Getopenfilename" pour t'en
convaincre.

A+

lSteph


"Xavier POWAGA" a écrit dans le message de news:
4416f5c4$0$7933$
avant le ChDir j'ai rajouté ChDrive Left(ThisWorkbook.Path, 1)
maintenant ça marche

"Xavier POWAGA" a écrit dans le message de news:
4416f277$0$8002$
en fait il semblerait d'après les espions que j'ai mis, que les curDir
et ChDir soit sans effet dans mon programme
je vais continuer à chercher pourquoi ce mystère



"lSteph" a écrit dans le message de news:
%
Bonjour,

Cela s'ouvre sur le répertoire demandé par chdir sous réserve que cette
instruction précède juste le getopenfilename.
Thisworkbook signifie le classeur qui contient la macro à ce titre ce
sera ce chemin donc (cela peut aussi s'avèrer être
"mes documents") si ce classeur que tu as exprimé par application s'y
trouve.
que j'aimerais qu'il les cherche à partir du repertoire de mon
application.
Si le chemin est par exemple "c:travail"



chdir thisworkbook.path
revient à écrire
chdir "c:travail"

Tu peux lire ce que MichDenis a écrit et semble confirmer cela entre
autres ...

lSteph

"Xavier POWAGA" a écrit dans le message de news:
4416635f$0$7919$
heu!! désolé je croyais que ça marchait, mais en fait ça continue à
s'ouvrir par défaut sur le répertoire "mesdocuments".

le chdir n'a pas l'air de fonctionner avec le getopenfilename


"lSteph" a écrit dans le message de news:

Re Bonjour,

Dim Nomfichier as string
chdir thisworkbook.path
NomFichier= Application.GetOpenFilename(("Fichier AIC (*.csv),
*.csv"))

lSteph

"Xavier POWAGA" a écrit dans le message de
news: 4415edee$0$7905$
Bonjour,
voilà je souhaite charger un fichier a partir d'un code VBA. Cela
marche bien mais l'instruction

NomFichier= Application.GetOpenFilename(("Fichier AIC (*.csv),
*.csv"))

commence toujours par chercher les fichiers dans "mes documents"
alors que j'aimerais qu'il les cherche à partir du repertoire de mon
application. Est ce possible ?

merci