Repertoire défini avec GetOpenFilename

Le
PAN GOT
Bonjour,
existe-t-il comme dans VB la possibilité de definir une repertoire dans
lequel la boite de dialogue va s'ouvrir pour le choix d'un fichier.
J'ai une ligne de code

Fichier1 = Application.GetOpenFilename ("Fchiers XLS,*.xls")

D'avance, merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #20121741
Bonjour Pan Got,

'-------------------------------------
Sub test()

Dim MonRépertoire As String
Dim Fichier1 As Variant

'Indique le chemin du répertoire de ton choix
MonRépertoire = "C:UsersDMDocuments"

CurDir Split(MonRépertoire, "")(0)
Dir MonRépertoire
Fichier1 = Application.GetOpenFilename("Fchiers XLS,*.xls")

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



"PAN GOT"
Bonjour,
existe-t-il comme dans VB la possibilité de definir une repertoire dans
lequel la boite de dialogue va s'ouvrir pour le choix d'un fichier.
J'ai une ligne de code

Fichier1 = Application.GetOpenFilename ("Fchiers XLS,*.xls")

D'avance, merci
Gremars
Le #20138581
Bonjour Michdenis,
Je n'ai pas pu te repondre vendredi car j'ai eu un petit plantage d'Outlook,
enfin bref.
J'ai essayé mais ça me renvoi le dernier repertoir defini par
GetOpenFilename.
Si tu mets ces quelques lignes dans un classeur vide, tu svg ee tu sort
d'excel, à chaque fois je me retrouve dans le repertoire "Mes documents". Et
si du reste dans excel et que tu relance la macro, GetOpenFilename s'ouvre
dans le repertoire précédement défini. Je pense qu'il y a une variable
systeme specifique pour cette obj et qu'il faut passer par là?
C'est sur que cette question peut passer pour du confort mais comme le
fichier à aller chercher dans trouve dans une arborescence avec des
centaines de repertoires et sous repertoires (facilement 8 niveaux de sous
repertoires) cela devient vite penible.
Merci pour ton aide.
Patrick


"michdenis"
Bonjour Pan Got,

'-------------------------------------
Sub test()

Dim MonRépertoire As String
Dim Fichier1 As Variant

'Indique le chemin du répertoire de ton choix
MonRépertoire = "C:UsersDMDocuments"

CurDir Split(MonRépertoire, "")(0)
Dir MonRépertoire
Fichier1 = Application.GetOpenFilename("Fchiers XLS,*.xls")

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



"PAN GOT" de discussion :

Bonjour,
existe-t-il comme dans VB la possibilité de definir une repertoire dans
lequel la boite de dialogue va s'ouvrir pour le choix d'un fichier.
J'ai une ligne de code

Fichier1 = Application.GetOpenFilename ("Fchiers XLS,*.xls")

D'avance, merci



michdenis
Le #20138831
Oui, tu as raison... j'aurais dû vérifier ! ;-)

Essaie ceci : cela devrait fonctionner !

Déclaration des API dans le haut d'un module Standard :
'---------------------------------------------
Private Declare Function SetCurrentDirectoryA Lib _
"kernel32" (ByVal lpPathName As String) As Long
'----------------------------------------------
Sub ChDirNet(szPath As String)
Dim lReturn As Long
lReturn = SetCurrentDirectoryA(szPath)
If lReturn = 0 Then Err.Raise vbObjectError + 1, "Error setting path."
End Sub
'-------------------------------

Sub test()
Dim MonRépertoire As String
Dim Fichier1 As Variant

'Indique le chemin du répertoire de ton choix
ChDirNet "C:UsersDMDownloads"

Fichier1 = Application.GetOpenFilename("Fchiers XLS,*.xls")

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





"Gremars"
Bonjour Michdenis,
Je n'ai pas pu te repondre vendredi car j'ai eu un petit plantage d'Outlook,
enfin bref.
J'ai essayé mais ça me renvoi le dernier repertoir defini par
GetOpenFilename.
Si tu mets ces quelques lignes dans un classeur vide, tu svg ee tu sort
d'excel, à chaque fois je me retrouve dans le repertoire "Mes documents". Et
si du reste dans excel et que tu relance la macro, GetOpenFilename s'ouvre
dans le repertoire précédement défini. Je pense qu'il y a une variable
systeme specifique pour cette obj et qu'il faut passer par là?
C'est sur que cette question peut passer pour du confort mais comme le
fichier à aller chercher dans trouve dans une arborescence avec des
centaines de repertoires et sous repertoires (facilement 8 niveaux de sous
repertoires) cela devient vite penible.
Merci pour ton aide.
Patrick


"michdenis"
Bonjour Pan Got,

'-------------------------------------
Sub test()

Dim MonRépertoire As String
Dim Fichier1 As Variant

'Indique le chemin du répertoire de ton choix
MonRépertoire = "C:UsersDMDocuments"

CurDir Split(MonRépertoire, "")(0)
Dir MonRépertoire
Fichier1 = Application.GetOpenFilename("Fchiers XLS,*.xls")

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



"PAN GOT" de discussion :

Bonjour,
existe-t-il comme dans VB la possibilité de definir une repertoire dans
lequel la boite de dialogue va s'ouvrir pour le choix d'un fichier.
J'ai une ligne de code

Fichier1 = Application.GetOpenFilename ("Fchiers XLS,*.xls")

D'avance, merci



PAN GOT
Le #20142321
Super, c'est genial le confort que cela donne.
Comme quoi il suffit de quelques lignes de code pour rendre agreable un
developpement.
la ligne
If lReturn = 0 Then Err.Raise vbObjectError + 1, "Error setting path."


c'est pour gerer l'erreur si la chaine szPath passée à la fonction n'est pas
conforme?
Il y a un moyen de connaitre le nom d'une variable systeme que l'on
recherche et des info sur la lib "Kernel32"?


"michdenis"
Oui, tu as raison... j'aurais dû vérifier ! ;-)

Essaie ceci : cela devrait fonctionner !

Déclaration des API dans le haut d'un module Standard :
'---------------------------------------------
Private Declare Function SetCurrentDirectoryA Lib _
"kernel32" (ByVal lpPathName As String) As Long
'----------------------------------------------
Sub ChDirNet(szPath As String)
Dim lReturn As Long
lReturn = SetCurrentDirectoryA(szPath)
If lReturn = 0 Then Err.Raise vbObjectError + 1, "Error setting path."
End Sub
'-------------------------------

Sub test()
Dim MonRépertoire As String
Dim Fichier1 As Variant

'Indique le chemin du répertoire de ton choix
ChDirNet "C:UsersDMDownloads"

Fichier1 = Application.GetOpenFilename("Fchiers XLS,*.xls")

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





"Gremars" de discussion :

Bonjour Michdenis,
Je n'ai pas pu te repondre vendredi car j'ai eu un petit plantage
d'Outlook,
enfin bref.
J'ai essayé mais ça me renvoi le dernier repertoir defini par
GetOpenFilename.
Si tu mets ces quelques lignes dans un classeur vide, tu svg ee tu sort
d'excel, à chaque fois je me retrouve dans le repertoire "Mes documents".
Et
si du reste dans excel et que tu relance la macro, GetOpenFilename s'ouvre
dans le repertoire précédement défini. Je pense qu'il y a une variable
systeme specifique pour cette obj et qu'il faut passer par là?
C'est sur que cette question peut passer pour du confort mais comme le
fichier à aller chercher dans trouve dans une arborescence avec des
centaines de repertoires et sous repertoires (facilement 8 niveaux de sous
repertoires) cela devient vite penible.
Merci pour ton aide.
Patrick


"michdenis"
Bonjour Pan Got,

'-------------------------------------
Sub test()

Dim MonRépertoire As String
Dim Fichier1 As Variant

'Indique le chemin du répertoire de ton choix
MonRépertoire = "C:UsersDMDocuments"

CurDir Split(MonRépertoire, "")(0)
Dir MonRépertoire
Fichier1 = Application.GetOpenFilename("Fchiers XLS,*.xls")

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



"PAN GOT" groupe
de discussion :

Bonjour,
existe-t-il comme dans VB la possibilité de definir une repertoire dans
lequel la boite de dialogue va s'ouvrir pour le choix d'un fichier.
J'ai une ligne de code

Fichier1 = Application.GetOpenFilename ("Fchiers XLS,*.xls")

D'avance, merci






michdenis
Le #20142861
Tu peux gérer l'erreur, mais tu peux utiliser ceci :

'--------------------------------------
Sub test()
Dim MonRépertoire As String
Dim Fichier1 As Variant

MonRépertoire = "C:UsersDMDownloads"

'Indique le chemin du répertoire de ton choix
If Dir(MonRépertoire, vbDirectory) <> "" Then
ChDirNet MonRépertoire
Fichier1 = Application.GetOpenFilename("Fchiers XLS,*.xls")
Else
MsgBox "Chemin introuvable"
Exit Sub
End If

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

| Il y a un moyen de connaitre le nom d'une variable systeme
| que l'on recherche et des info sur la lib "Kernel32"?

Si tu as le programme "Visual Basic 5 ou 6" , il y a un petit programme
qui te permet de rechercher les API ou constantes sur un thème précis.

Cette information existe sur ton disque dur (fichier texte) mais je ne
me souviens plus du nom des fichiers!!!




"PAN GOT" :
Super, c'est genial le confort que cela donne.
Comme quoi il suffit de quelques lignes de code pour rendre agreable un
developpement.
la ligne
If lReturn = 0 Then Err.Raise vbObjectError + 1, "Error setting path."


c'est pour gerer l'erreur si la chaine szPath passée à la fonction n'est pas
conforme?
Il y a un moyen de connaitre le nom d'une variable systeme que l'on
recherche et des info sur la lib "Kernel32"?


"michdenis"
Oui, tu as raison... j'aurais dû vérifier ! ;-)

Essaie ceci : cela devrait fonctionner !

Déclaration des API dans le haut d'un module Standard :
'---------------------------------------------
Private Declare Function SetCurrentDirectoryA Lib _
"kernel32" (ByVal lpPathName As String) As Long
'----------------------------------------------
Sub ChDirNet(szPath As String)
Dim lReturn As Long
lReturn = SetCurrentDirectoryA(szPath)
If lReturn = 0 Then Err.Raise vbObjectError + 1, "Error setting path."
End Sub
'-------------------------------

Sub test()
Dim MonRépertoire As String
Dim Fichier1 As Variant

'Indique le chemin du répertoire de ton choix
ChDirNet "C:UsersDMDownloads"

Fichier1 = Application.GetOpenFilename("Fchiers XLS,*.xls")

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





"Gremars" de discussion :

Bonjour Michdenis,
Je n'ai pas pu te repondre vendredi car j'ai eu un petit plantage
d'Outlook,
enfin bref.
J'ai essayé mais ça me renvoi le dernier repertoir defini par
GetOpenFilename.
Si tu mets ces quelques lignes dans un classeur vide, tu svg ee tu sort
d'excel, à chaque fois je me retrouve dans le repertoire "Mes documents".
Et
si du reste dans excel et que tu relance la macro, GetOpenFilename s'ouvre
dans le repertoire précédement défini. Je pense qu'il y a une variable
systeme specifique pour cette obj et qu'il faut passer par là?
C'est sur que cette question peut passer pour du confort mais comme le
fichier à aller chercher dans trouve dans une arborescence avec des
centaines de repertoires et sous repertoires (facilement 8 niveaux de sous
repertoires) cela devient vite penible.
Merci pour ton aide.
Patrick


"michdenis"
Bonjour Pan Got,

'-------------------------------------
Sub test()

Dim MonRépertoire As String
Dim Fichier1 As Variant

'Indique le chemin du répertoire de ton choix
MonRépertoire = "C:UsersDMDocuments"

CurDir Split(MonRépertoire, "")(0)
Dir MonRépertoire
Fichier1 = Application.GetOpenFilename("Fchiers XLS,*.xls")

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



"PAN GOT" groupe
de discussion :

Bonjour,
existe-t-il comme dans VB la possibilité de definir une repertoire dans
lequel la boite de dialogue va s'ouvrir pour le choix d'un fichier.
J'ai une ligne de code

Fichier1 = Application.GetOpenFilename ("Fchiers XLS,*.xls")

D'avance, merci






PAN GOT
Le #20143491
Merci beaucoups pour toutes ces info et ces lignes de code.
Bonne soirée.
Patrick

"michdenis"
Tu peux gérer l'erreur, mais tu peux utiliser ceci :

'--------------------------------------
Sub test()
Dim MonRépertoire As String
Dim Fichier1 As Variant

MonRépertoire = "C:UsersDMDownloads"

'Indique le chemin du répertoire de ton choix
If Dir(MonRépertoire, vbDirectory) <> "" Then
ChDirNet MonRépertoire
Fichier1 = Application.GetOpenFilename("Fchiers XLS,*.xls")
Else
MsgBox "Chemin introuvable"
Exit Sub
End If

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

| Il y a un moyen de connaitre le nom d'une variable systeme
| que l'on recherche et des info sur la lib "Kernel32"?

Si tu as le programme "Visual Basic 5 ou 6" , il y a un petit programme
qui te permet de rechercher les API ou constantes sur un thème précis.

Cette information existe sur ton disque dur (fichier texte) mais je ne
me souviens plus du nom des fichiers!!!




"PAN GOT" groupe de discussion
:
Super, c'est genial le confort que cela donne.
Comme quoi il suffit de quelques lignes de code pour rendre agreable un
developpement.
la ligne
If lReturn = 0 Then Err.Raise vbObjectError + 1, "Error setting path."


c'est pour gerer l'erreur si la chaine szPath passée à la fonction n'est
pas
conforme?
Il y a un moyen de connaitre le nom d'une variable systeme que l'on
recherche et des info sur la lib "Kernel32"?


"michdenis"
Oui, tu as raison... j'aurais dû vérifier ! ;-)

Essaie ceci : cela devrait fonctionner !

Déclaration des API dans le haut d'un module Standard :
'---------------------------------------------
Private Declare Function SetCurrentDirectoryA Lib _
"kernel32" (ByVal lpPathName As String) As Long
'----------------------------------------------
Sub ChDirNet(szPath As String)
Dim lReturn As Long
lReturn = SetCurrentDirectoryA(szPath)
If lReturn = 0 Then Err.Raise vbObjectError + 1, "Error setting path."
End Sub
'-------------------------------

Sub test()
Dim MonRépertoire As String
Dim Fichier1 As Variant

'Indique le chemin du répertoire de ton choix
ChDirNet "C:UsersDMDownloads"

Fichier1 = Application.GetOpenFilename("Fchiers XLS,*.xls")

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





"Gremars" de discussion :

Bonjour Michdenis,
Je n'ai pas pu te repondre vendredi car j'ai eu un petit plantage
d'Outlook,
enfin bref.
J'ai essayé mais ça me renvoi le dernier repertoir defini par
GetOpenFilename.
Si tu mets ces quelques lignes dans un classeur vide, tu svg ee tu sort
d'excel, à chaque fois je me retrouve dans le repertoire "Mes documents".
Et
si du reste dans excel et que tu relance la macro, GetOpenFilename
s'ouvre
dans le repertoire précédement défini. Je pense qu'il y a une variable
systeme specifique pour cette obj et qu'il faut passer par là?
C'est sur que cette question peut passer pour du confort mais comme le
fichier à aller chercher dans trouve dans une arborescence avec des
centaines de repertoires et sous repertoires (facilement 8 niveaux de
sous
repertoires) cela devient vite penible.
Merci pour ton aide.
Patrick


"michdenis"
Bonjour Pan Got,

'-------------------------------------
Sub test()

Dim MonRépertoire As String
Dim Fichier1 As Variant

'Indique le chemin du répertoire de ton choix
MonRépertoire = "C:UsersDMDocuments"

CurDir Split(MonRépertoire, "")(0)
Dir MonRépertoire
Fichier1 = Application.GetOpenFilename("Fchiers XLS,*.xls")

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



"PAN GOT" groupe
de discussion :

Bonjour,
existe-t-il comme dans VB la possibilité de definir une repertoire dans
lequel la boite de dialogue va s'ouvrir pour le choix d'un fichier.
J'ai une ligne de code

Fichier1 = Application.GetOpenFilename ("Fchiers XLS,*.xls")

D'avance, merci









Publicité
Poster une réponse
Anonyme