Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Repertoire défini avec GetOpenFilename

6 réponses
Avatar
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

6 réponses

Avatar
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" a écrit dans le message de 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
Avatar
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" a écrit dans le message de news:

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" a écrit dans le message de 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



Avatar
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" a écrit dans le message de groupe 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" a écrit dans le message de news:

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" a écrit dans le message de 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



Avatar
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" a écrit dans le message de news:

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" a écrit dans le message de groupe
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" a écrit dans le message de news:

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" a écrit dans le message de
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






Avatar
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" a écrit dans le message de 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" a écrit dans le message de news:

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" a écrit dans le message de groupe
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" a écrit dans le message de news:

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" a écrit dans le message de
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






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

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

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" a écrit dans le message de
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" a écrit dans le message de news:

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" a écrit dans le message de groupe
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" a écrit dans le message de news:

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" a écrit dans le message de
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