OVH Cloud OVH Cloud

commandbutton qui ouvre un dossier

11 réponses
Avatar
sophie
Bonjour !

Je me permet de vous demander votre aide.
Dans un de mes userforms, j'ai crée un bouton "dossier" qui a pour fonction
d'aller ouvrir un dossier "mes documents" dès que l'on clique dessus, grace à
cette écriture:

Private Sub CommandButton7_Click()
Const SW_SHOWNORMAL& = 1&
ShellExecute 0&, "Explore", CurDir, vbNullString, vbNullString,
SW_SHOWNORMAL
End Sub

Cependant, cela m'ouvre bien "mes documents" mais j'aimerais que ça aille
plus loin, c'est à dire qu'il ouvre directemlent un dossier se trouvant dans
mes documents : l'adresse est la suivante: "C:\Documents and
Settings\eleve\Mes documents\franck"

Pouvez vous m'aidez, et me dire comment faire?

Merci d'avance

Sophie

10 réponses

1 2
Avatar
anonymousA
bonjour,

si c'est du VBA ( mais j'ai un doute compte tenu de ce que tu écris),
pourquoi tout simplement ne pas écrire

ChDir "C:Documents and SettingseleveMes documentsfranck"
Application.GetOpenFilename

A+



Bonjour !

Je me permet de vous demander votre aide.
Dans un de mes userforms, j'ai crée un bouton "dossier" qui a pour fonction
d'aller ouvrir un dossier "mes documents" dès que l'on clique dessus, grace à
cette écriture:

Private Sub CommandButton7_Click()
Const SW_SHOWNORMAL& = 1&
ShellExecute 0&, "Explore", CurDir, vbNullString, vbNullString,
SW_SHOWNORMAL
End Sub

Cependant, cela m'ouvre bien "mes documents" mais j'aimerais que ça aille
plus loin, c'est à dire qu'il ouvre directemlent un dossier se trouvant dans
mes documents : l'adresse est la suivante: "C:Documents and
SettingseleveMes documentsfranck"

Pouvez vous m'aidez, et me dire comment faire?

Merci d'avance

Sophie




Avatar
sophie
C'est bien du VBA, mais ta réponse ne marche pas... pourtant je pensais que
marquer jsute l'adresse du dossier fonctionnerai, mais apparemment non !!
Merci de ton aide

Sophie


"anonymousA" wrote:

bonjour,

si c'est du VBA ( mais j'ai un doute compte tenu de ce que tu écris),
pourquoi tout simplement ne pas écrire

ChDir "C:Documents and SettingseleveMes documentsfranck"
Application.GetOpenFilename

A+



Bonjour !

Je me permet de vous demander votre aide.
Dans un de mes userforms, j'ai crée un bouton "dossier" qui a pour fonction
d'aller ouvrir un dossier "mes documents" dès que l'on clique dessus, grace à
cette écriture:

Private Sub CommandButton7_Click()
Const SW_SHOWNORMAL& = 1&
ShellExecute 0&, "Explore", CurDir, vbNullString, vbNullString,
SW_SHOWNORMAL
End Sub

Cependant, cela m'ouvre bien "mes documents" mais j'aimerais que ça aille
plus loin, c'est à dire qu'il ouvre directemlent un dossier se trouvant dans
mes documents : l'adresse est la suivante: "C:Documents and
SettingseleveMes documentsfranck"

Pouvez vous m'aidez, et me dire comment faire?

Merci d'avance

Sophie






Avatar
anonymousA
re,

qu'est ce qui ne marche pas ? dans quelles circonstances ? parce que comme
code y'a pas plus simple.

A+


C'est bien du VBA, mais ta réponse ne marche pas... pourtant je pensais que
marquer jsute l'adresse du dossier fonctionnerai, mais apparemment non !!
Merci de ton aide

Sophie


"anonymousA" wrote:

bonjour,

si c'est du VBA ( mais j'ai un doute compte tenu de ce que tu écris),
pourquoi tout simplement ne pas écrire

ChDir "C:Documents and SettingseleveMes documentsfranck"
Application.GetOpenFilename

A+



Bonjour !

Je me permet de vous demander votre aide.
Dans un de mes userforms, j'ai crée un bouton "dossier" qui a pour fonction
d'aller ouvrir un dossier "mes documents" dès que l'on clique dessus, grace à
cette écriture:

Private Sub CommandButton7_Click()
Const SW_SHOWNORMAL& = 1&
ShellExecute 0&, "Explore", CurDir, vbNullString, vbNullString,
SW_SHOWNORMAL
End Sub

Cependant, cela m'ouvre bien "mes documents" mais j'aimerais que ça aille
plus loin, c'est à dire qu'il ouvre directemlent un dossier se trouvant dans
mes documents : l'adresse est la suivante: "C:Documents and
SettingseleveMes documentsfranck"

Pouvez vous m'aidez, et me dire comment faire?

Merci d'avance

Sophie








Avatar
Thierry
J'ose avouer que pour moi non plus ça ne marche pas... Pour répondre à
Sophie, va voir ma question que je viens de poser, tu y trouveras ta réponse.

Thierry.



re,

qu'est ce qui ne marche pas ? dans quelles circonstances ? parce que comme
code y'a pas plus simple.

A+


C'est bien du VBA, mais ta réponse ne marche pas... pourtant je pensais que
marquer jsute l'adresse du dossier fonctionnerai, mais apparemment non !!
Merci de ton aide

Sophie


"anonymousA" wrote:

bonjour,

si c'est du VBA ( mais j'ai un doute compte tenu de ce que tu écris),
pourquoi tout simplement ne pas écrire

ChDir "C:Documents and SettingseleveMes documentsfranck"
Application.GetOpenFilename

A+



Bonjour !

Je me permet de vous demander votre aide.
Dans un de mes userforms, j'ai crée un bouton "dossier" qui a pour fonction
d'aller ouvrir un dossier "mes documents" dès que l'on clique dessus, grace à
cette écriture:

Private Sub CommandButton7_Click()
Const SW_SHOWNORMAL& = 1&
ShellExecute 0&, "Explore", CurDir, vbNullString, vbNullString,
SW_SHOWNORMAL
End Sub

Cependant, cela m'ouvre bien "mes documents" mais j'aimerais que ça aille
plus loin, c'est à dire qu'il ouvre directemlent un dossier se trouvant dans
mes documents : l'adresse est la suivante: "C:Documents and
SettingseleveMes documentsfranck"

Pouvez vous m'aidez, et me dire comment faire?

Merci d'avance

Sophie










Avatar
anonymousA
une méthode pour rechercher un fichier dont on ne connait pas l'emplacement
et ensuite l'ouvrir. Faut-il bien sur qu'il soit comptaible avec une
ouverture sous Excel sinon faut employer d'autres moyens pour l'ouverture.
Dans ce qui suit ,on cherche à faire ouvrir au user un type de fichier bine
précis. pour le fso.GetFile(filetoopen) qui ici teste qu'il s'agit d'un
fichier texte ou d'un doc sans extension , on peut bien sur remplacer <>
"File" par different de "Feuille de calcul Microsoft Excel".

Set fso = CreateObject("Scripting.FileSystemObject")

ctrl1 = False

While ctrl1 = False
Set filetopen = Nothing
filetoopen = Application.GetOpenFilename
If filetoopen <> false Then
If (fso.GetFile(filetoopen).Type <> "File" And
fso.GetFile(filetoopen).Type <> "Document texte") Then
MsgBox "Vous avez choisi un fichier dont le type n'est pas document
texte ou sans extension" & Chr(13) & "vous devez choisir un autre fichier ou
Annuler"
Else
ctrl1 = True
End If
Else
Set fso = Nothing
With Application
.DisplayAlerts = True
.ScreenUpdating = True
.AskToUpdateLinks = True
.EnableCancelKey = xlInterrupt
End With
Exit Sub
End If
Wend

Set fso = Nothing


Workbooks.OpenText Filename:=filetoopen, Origin:=xlWindows, Tab:=True,
Other:=True, OtherChar:="!"

il y a bien sur plus simple.ci-dessous , extrait de l'aide d'Excel

fileToOpen = Application _
.GetOpenFilename("Text Files (*.txt), *.txt")
If fileToOpen <> False Then
MsgBox "Open " & fileToOpen
End If



J'ose avouer que pour moi non plus ça ne marche pas... Pour répondre à
Sophie, va voir ma question que je viens de poser, tu y trouveras ta réponse.

Thierry.



re,

qu'est ce qui ne marche pas ? dans quelles circonstances ? parce que comme
code y'a pas plus simple.

A+


C'est bien du VBA, mais ta réponse ne marche pas... pourtant je pensais que
marquer jsute l'adresse du dossier fonctionnerai, mais apparemment non !!
Merci de ton aide

Sophie


"anonymousA" wrote:

bonjour,

si c'est du VBA ( mais j'ai un doute compte tenu de ce que tu écris),
pourquoi tout simplement ne pas écrire

ChDir "C:Documents and SettingseleveMes documentsfranck"
Application.GetOpenFilename

A+



Bonjour !

Je me permet de vous demander votre aide.
Dans un de mes userforms, j'ai crée un bouton "dossier" qui a pour fonction
d'aller ouvrir un dossier "mes documents" dès que l'on clique dessus, grace à
cette écriture:

Private Sub CommandButton7_Click()
Const SW_SHOWNORMAL& = 1&
ShellExecute 0&, "Explore", CurDir, vbNullString, vbNullString,
SW_SHOWNORMAL
End Sub

Cependant, cela m'ouvre bien "mes documents" mais j'aimerais que ça aille
plus loin, c'est à dire qu'il ouvre directemlent un dossier se trouvant dans
mes documents : l'adresse est la suivante: "C:Documents and
SettingseleveMes documentsfranck"

Pouvez vous m'aidez, et me dire comment faire?

Merci d'avance

Sophie












Avatar
Clément Marcotte
Bonjour,

Juste pour le plaisir de la chose. Une procédure VBA pour chercher un
fichier, en passant directement par l'API Windows.


Dans un module standard

Declare Function SearchTreeForFile Lib "imagehlp" (ByVal RootPath As
String, ByVal InputPathName As String, ByVal OutputPathBuffer As
String) As Long
Public Const MAX_PATH = 260

Dans le code d'un bouton de la barre d'outils "Contrôles", en mettant
le nom du fichier dans la cellule a1, et en laissant b1 vide.

Private Sub CommandButton1_Click()
'Clément Marcotte
'Amos (Québec)
'Grandement inspiré de allapi.net
'URL: http://www.allapi.net/
'E-Mail:
Dim tempStr As String, Ret As Long
Dim message As String, laplace As String
'create a buffer string
tempStr = String(MAX_PATH, 0)
'Si le fichier existe, le résultat est 1
'autrement, le résultat est 0
Ret = SearchTreeForFile("c:", Range("a1").Value, tempStr)
If Ret <> 0 Then
laplace = Left$(tempStr, InStr(1, tempStr, Chr$(0)) - 1)
Range("b1").Value = laplace
message = "Le fichier " & Range("a1").Value & vbNewLine
message = message & " a été trouvé dans " & vbNewLine
message = message & laplace
MsgBox message

Else
laplace = "Fichier non trouvé ou inexistant"
Range("b1").Value = laplace
MsgBox laplace
End If
End Sub


"anonymousA" a écrit dans le
message de news:
une méthode pour rechercher un fichier dont on ne connait pas
l'emplacement

et ensuite l'ouvrir. Faut-il bien sur qu'il soit comptaible avec une
ouverture sous Excel sinon faut employer d'autres moyens pour
l'ouverture.

Dans ce qui suit ,on cherche à faire ouvrir au user un type de
fichier bine

précis. pour le fso.GetFile(filetoopen) qui ici teste qu'il s'agit
d'un

fichier texte ou d'un doc sans extension , on peut bien sur
remplacer <>

"File" par different de "Feuille de calcul Microsoft Excel".

Set fso = CreateObject("Scripting.FileSystemObject")

ctrl1 = False

While ctrl1 = False
Set filetopen = Nothing
filetoopen = Application.GetOpenFilename
If filetoopen <> false Then
If (fso.GetFile(filetoopen).Type <> "File" And
fso.GetFile(filetoopen).Type <> "Document texte") Then
MsgBox "Vous avez choisi un fichier dont le type n'est pas
document

texte ou sans extension" & Chr(13) & "vous devez choisir un autre
fichier ou

Annuler"
Else
ctrl1 = True
End If
Else
Set fso = Nothing
With Application
.DisplayAlerts = True
.ScreenUpdating = True
.AskToUpdateLinks = True
.EnableCancelKey = xlInterrupt
End With
Exit Sub
End If
Wend

Set fso = Nothing


Workbooks.OpenText Filename:=filetoopen, Origin:=xlWindows,
Tab:=True,

Other:=True, OtherChar:="!"

il y a bien sur plus simple.ci-dessous , extrait de l'aide d'Excel

fileToOpen = Application _
.GetOpenFilename("Text Files (*.txt), *.txt")
If fileToOpen <> False Then
MsgBox "Open " & fileToOpen
End If



J'ose avouer que pour moi non plus ça ne marche pas... Pour
répondre à


Sophie, va voir ma question que je viens de poser, tu y trouveras
ta réponse.



Thierry.



re,

qu'est ce qui ne marche pas ? dans quelles circonstances ? parce
que comme



code y'a pas plus simple.

A+


C'est bien du VBA, mais ta réponse ne marche pas... pourtant
je pensais que




marquer jsute l'adresse du dossier fonctionnerai, mais
apparemment non !!




Merci de ton aide

Sophie


"anonymousA" wrote:

bonjour,

si c'est du VBA ( mais j'ai un doute compte tenu de ce que
tu écris),





pourquoi tout simplement ne pas écrire

ChDir "C:Documents and SettingseleveMes
documentsfranck"





Application.GetOpenFilename

A+



Bonjour !

Je me permet de vous demander votre aide.
Dans un de mes userforms, j'ai crée un bouton "dossier"
qui a pour fonction






d'aller ouvrir un dossier "mes documents" dès que l'on
clique dessus, grace à






cette écriture:

Private Sub CommandButton7_Click()
Const SW_SHOWNORMAL& = 1&
ShellExecute 0&, "Explore", CurDir, vbNullString,
vbNullString,






SW_SHOWNORMAL
End Sub

Cependant, cela m'ouvre bien "mes documents" mais
j'aimerais que ça aille






plus loin, c'est à dire qu'il ouvre directemlent un
dossier se trouvant dans






mes documents : l'adresse est la suivante: "C:Documents
and






SettingseleveMes documentsfranck"

Pouvez vous m'aidez, et me dire comment faire?

Merci d'avance

Sophie














Avatar
anonymousA
bonjour,

je vais garder celle-là dans mes archives. Je m'intéresse de + en + aux API.
Même achété un bouquin Américain pour mieux m'y mettre.En Francais, un
bouquin sur cette question n'existe pas ou plus et ca ne semble pas
interesser un éditeur Francais de faire faire l'adaptation Française. Si
j'avais le temps et un bon dictionnaire technique, je me lancerais dans la
tradution et le collerais sur le Net parceque c'est vraiment trop con d'être
obligé de patouiller d'une part sur MDSN et sur les quelques procs que
certains contributeurs Français ou Canadiens ont écrit pour bien comprendre
comment se servir de ces merveilleux outils .

A+



Bonjour,

Juste pour le plaisir de la chose. Une procédure VBA pour chercher un
fichier, en passant directement par l'API Windows.


Dans un module standard

Declare Function SearchTreeForFile Lib "imagehlp" (ByVal RootPath As
String, ByVal InputPathName As String, ByVal OutputPathBuffer As
String) As Long
Public Const MAX_PATH = 260

Dans le code d'un bouton de la barre d'outils "Contrôles", en mettant
le nom du fichier dans la cellule a1, et en laissant b1 vide.

Private Sub CommandButton1_Click()
'Clément Marcotte
'Amos (Québec)
'Grandement inspiré de allapi.net
'URL: http://www.allapi.net/
'E-Mail:
Dim tempStr As String, Ret As Long
Dim message As String, laplace As String
'create a buffer string
tempStr = String(MAX_PATH, 0)
'Si le fichier existe, le résultat est 1
'autrement, le résultat est 0
Ret = SearchTreeForFile("c:", Range("a1").Value, tempStr)
If Ret <> 0 Then
laplace = Left$(tempStr, InStr(1, tempStr, Chr$(0)) - 1)
Range("b1").Value = laplace
message = "Le fichier " & Range("a1").Value & vbNewLine
message = message & " a été trouvé dans " & vbNewLine
message = message & laplace
MsgBox message

Else
laplace = "Fichier non trouvé ou inexistant"
Range("b1").Value = laplace
MsgBox laplace
End If
End Sub


"anonymousA" a écrit dans le
message de news:
une méthode pour rechercher un fichier dont on ne connait pas
l'emplacement

et ensuite l'ouvrir. Faut-il bien sur qu'il soit comptaible avec une
ouverture sous Excel sinon faut employer d'autres moyens pour
l'ouverture.

Dans ce qui suit ,on cherche à faire ouvrir au user un type de
fichier bine

précis. pour le fso.GetFile(filetoopen) qui ici teste qu'il s'agit
d'un

fichier texte ou d'un doc sans extension , on peut bien sur
remplacer <>

"File" par different de "Feuille de calcul Microsoft Excel".

Set fso = CreateObject("Scripting.FileSystemObject")

ctrl1 = False

While ctrl1 = False
Set filetopen = Nothing
filetoopen = Application.GetOpenFilename
If filetoopen <> false Then
If (fso.GetFile(filetoopen).Type <> "File" And
fso.GetFile(filetoopen).Type <> "Document texte") Then
MsgBox "Vous avez choisi un fichier dont le type n'est pas
document

texte ou sans extension" & Chr(13) & "vous devez choisir un autre
fichier ou

Annuler"
Else
ctrl1 = True
End If
Else
Set fso = Nothing
With Application
.DisplayAlerts = True
.ScreenUpdating = True
.AskToUpdateLinks = True
.EnableCancelKey = xlInterrupt
End With
Exit Sub
End If
Wend

Set fso = Nothing


Workbooks.OpenText Filename:=filetoopen, Origin:=xlWindows,
Tab:=True,

Other:=True, OtherChar:="!"

il y a bien sur plus simple.ci-dessous , extrait de l'aide d'Excel

fileToOpen = Application _
.GetOpenFilename("Text Files (*.txt), *.txt")
If fileToOpen <> False Then
MsgBox "Open " & fileToOpen
End If



J'ose avouer que pour moi non plus ça ne marche pas... Pour
répondre à


Sophie, va voir ma question que je viens de poser, tu y trouveras
ta réponse.



Thierry.



re,

qu'est ce qui ne marche pas ? dans quelles circonstances ? parce
que comme



code y'a pas plus simple.

A+


C'est bien du VBA, mais ta réponse ne marche pas... pourtant
je pensais que




marquer jsute l'adresse du dossier fonctionnerai, mais
apparemment non !!




Merci de ton aide

Sophie


"anonymousA" wrote:

bonjour,

si c'est du VBA ( mais j'ai un doute compte tenu de ce que
tu écris),





pourquoi tout simplement ne pas écrire

ChDir "C:Documents and SettingseleveMes
documentsfranck"





Application.GetOpenFilename

A+



Bonjour !

Je me permet de vous demander votre aide.
Dans un de mes userforms, j'ai crée un bouton "dossier"
qui a pour fonction






d'aller ouvrir un dossier "mes documents" dès que l'on
clique dessus, grace à






cette écriture:

Private Sub CommandButton7_Click()
Const SW_SHOWNORMAL& = 1&
ShellExecute 0&, "Explore", CurDir, vbNullString,
vbNullString,






SW_SHOWNORMAL
End Sub

Cependant, cela m'ouvre bien "mes documents" mais
j'aimerais que ça aille






plus loin, c'est à dire qu'il ouvre directemlent un
dossier se trouvant dans






mes documents : l'adresse est la suivante: "C:Documents
and






SettingseleveMes documentsfranck"

Pouvez vous m'aidez, et me dire comment faire?

Merci d'avance

Sophie


















Avatar
Amandine
Bonsour® anonymousA
si tu ne le connais déja, consulte le site : AllApi.net
je te conseillerai même de télécharger le APIGuide.exe
@+
bonjour,

je vais garder celle-là dans mes archives. Je m'intéresse de + en +
aux API. Même achété un bouquin Américain pour mieux m'y mettre.En
Francais, un bouquin sur cette question n'existe pas ou plus et ca ne
semble pas interesser un éditeur Francais de faire faire l'adaptation
Française. Si j'avais le temps et un bon dictionnaire technique, je
me lancerais dans la tradution et le collerais sur le Net parceque
c'est vraiment trop con d'être obligé de patouiller d'une part sur
MDSN et sur les quelques procs que certains contributeurs Français ou
Canadiens ont écrit pour bien comprendre comment se servir de ces
merveilleux outils .

A+



Bonjour,

Juste pour le plaisir de la chose. Une procédure VBA pour chercher un
fichier, en passant directement par l'API Windows.


Dans un module standard

Declare Function SearchTreeForFile Lib "imagehlp" (ByVal RootPath As
String, ByVal InputPathName As String, ByVal OutputPathBuffer As
String) As Long
Public Const MAX_PATH = 260

Dans le code d'un bouton de la barre d'outils "Contrôles", en mettant
le nom du fichier dans la cellule a1, et en laissant b1 vide.

Private Sub CommandButton1_Click()
'Clément Marcotte
'Amos (Québec)
'Grandement inspiré de allapi.net
'URL: http://www.allapi.net/
'E-Mail:
Dim tempStr As String, Ret As Long
Dim message As String, laplace As String
'create a buffer string
tempStr = String(MAX_PATH, 0)
'Si le fichier existe, le résultat est 1
'autrement, le résultat est 0
Ret = SearchTreeForFile("c:", Range("a1").Value, tempStr)
If Ret <> 0 Then
laplace = Left$(tempStr, InStr(1, tempStr, Chr$(0)) - 1)
Range("b1").Value = laplace
message = "Le fichier " & Range("a1").Value & vbNewLine
message = message & " a été trouvé dans " & vbNewLine
message = message & laplace
MsgBox message

Else
laplace = "Fichier non trouvé ou inexistant"
Range("b1").Value = laplace
MsgBox laplace
End If
End Sub


"anonymousA" a écrit dans le
message de news:
une méthode pour rechercher un fichier dont on ne connait pas
l'emplacement et ensuite l'ouvrir. Faut-il bien sur qu'il soit
comptaible avec une ouverture sous Excel sinon faut employer
d'autres moyens pour l'ouverture. Dans ce qui suit ,on cherche à
faire ouvrir au user un type de
fichier bine

précis. pour le fso.GetFile(filetoopen) qui ici teste qu'il s'agit
d'un

fichier texte ou d'un doc sans extension , on peut bien sur
remplacer <>

"File" par different de "Feuille de calcul Microsoft Excel".

Set fso = CreateObject("Scripting.FileSystemObject")

ctrl1 = False

While ctrl1 = False
Set filetopen = Nothing
filetoopen = Application.GetOpenFilename
If filetoopen <> false Then
If (fso.GetFile(filetoopen).Type <> "File" And
fso.GetFile(filetoopen).Type <> "Document texte") Then
MsgBox "Vous avez choisi un fichier dont le type n'est pas
document texte ou sans extension" & Chr(13) & "vous devez choisir
un autre fichier ou Annuler"
Else
ctrl1 = True
End If
Else
Set fso = Nothing
With Application
.DisplayAlerts = True
.ScreenUpdating = True
.AskToUpdateLinks = True
.EnableCancelKey = xlInterrupt
End With
Exit Sub
End If
Wend

Set fso = Nothing


Workbooks.OpenText Filename:=filetoopen, Origin:=xlWindows,
Tab:=True,

Other:=True, OtherChar:="!"

il y a bien sur plus simple.ci-dessous , extrait de l'aide d'Excel

fileToOpen = Application _
.GetOpenFilename("Text Files (*.txt), *.txt")
If fileToOpen <> False Then
MsgBox "Open " & fileToOpen
End If



J'ose avouer que pour moi non plus ça ne marche pas... Pour
répondre à


Sophie, va voir ma question que je viens de poser, tu y trouveras
ta réponse.



Thierry.



re,

qu'est ce qui ne marche pas ? dans quelles circonstances ? parce
que comme code y'a pas plus simple.

A+


C'est bien du VBA, mais ta réponse ne marche pas... pourtant
je pensais que




marquer jsute l'adresse du dossier fonctionnerai, mais
apparemment non !! Merci de ton aide

Sophie


"anonymousA" wrote:

bonjour,

si c'est du VBA ( mais j'ai un doute compte tenu de ce que
tu écris),





pourquoi tout simplement ne pas écrire

ChDir "C:Documents and SettingseleveMes
documentsfranck"





Application.GetOpenFilename

A+



Bonjour !

Je me permet de vous demander votre aide.
Dans un de mes userforms, j'ai crée un bouton "dossier"
qui a pour fonction






d'aller ouvrir un dossier "mes documents" dès que l'on
clique dessus, grace à






cette écriture:

Private Sub CommandButton7_Click()
Const SW_SHOWNORMAL& = 1&
ShellExecute 0&, "Explore", CurDir, vbNullString,
vbNullString, SW_SHOWNORMAL
End Sub

Cependant, cela m'ouvre bien "mes documents" mais
j'aimerais que ça aille






plus loin, c'est à dire qu'il ouvre directemlent un
dossier se trouvant dans






mes documents : l'adresse est la suivante: "C:Documents
and






SettingseleveMes documentsfranck"

Pouvez vous m'aidez, et me dire comment faire?

Merci d'avance

Sophie
















Avatar
anonymousA
merci mais je connias ce site et d'ailleurs, je connias aussi une
bibliothèque ( pas complète mais pas mal) de certains API en Français,
mais rien qui t'explique vriament clairement la théorie et les
significations des différents paramètres. C'est là hélas bien toute la
question.
Par ailleurs, si je crois bien me rappeler. Ce site est en Anglais.

A+


Bonsour® anonymousA
si tu ne le connais déja, consulte le site : AllApi.net
je te conseillerai même de télécharger le APIGuide.exe
@+

bonjour,

je vais garder celle-là dans mes archives. Je m'intéresse de + en +
aux API. Même achété un bouquin Américain pour mieux m'y mettre.En
Francais, un bouquin sur cette question n'existe pas ou plus et ca ne
semble pas interesser un éditeur Francais de faire faire l'adaptation
Française. Si j'avais le temps et un bon dictionnaire technique, je
me lancerais dans la tradution et le collerais sur le Net parceque
c'est vraiment trop con d'être obligé de patouiller d'une part sur
MDSN et sur les quelques procs que certains contributeurs Français ou
Canadiens ont écrit pour bien comprendre comment se servir de ces
merveilleux outils .

A+




Bonjour,

Juste pour le plaisir de la chose. Une procédure VBA pour chercher un
fichier, en passant directement par l'API Windows.


Dans un module standard

Declare Function SearchTreeForFile Lib "imagehlp" (ByVal RootPath As
String, ByVal InputPathName As String, ByVal OutputPathBuffer As
String) As Long
Public Const MAX_PATH = 260

Dans le code d'un bouton de la barre d'outils "Contrôles", en mettant
le nom du fichier dans la cellule a1, et en laissant b1 vide.

Private Sub CommandButton1_Click()
'Clément Marcotte
'Amos (Québec)
'Grandement inspiré de allapi.net
'URL: http://www.allapi.net/
'E-Mail:
Dim tempStr As String, Ret As Long
Dim message As String, laplace As String
'create a buffer string
tempStr = String(MAX_PATH, 0)
'Si le fichier existe, le résultat est 1
'autrement, le résultat est 0
Ret = SearchTreeForFile("c:", Range("a1").Value, tempStr)
If Ret <> 0 Then
laplace = Left$(tempStr, InStr(1, tempStr, Chr$(0)) - 1)
Range("b1").Value = laplace
message = "Le fichier " & Range("a1").Value & vbNewLine
message = message & " a été trouvé dans " & vbNewLine
message = message & laplace
MsgBox message

Else
laplace = "Fichier non trouvé ou inexistant"
Range("b1").Value = laplace
MsgBox laplace
End If
End Sub


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

une méthode pour rechercher un fichier dont on ne connait pas
l'emplacement et ensuite l'ouvrir. Faut-il bien sur qu'il soit
comptaible avec une ouverture sous Excel sinon faut employer
d'autres moyens pour l'ouverture. Dans ce qui suit ,on cherche à
faire ouvrir au user un type de


fichier bine

précis. pour le fso.GetFile(filetoopen) qui ici teste qu'il s'agit


d'un

fichier texte ou d'un doc sans extension , on peut bien sur


remplacer <>

"File" par different de "Feuille de calcul Microsoft Excel".

Set fso = CreateObject("Scripting.FileSystemObject")

ctrl1 = False

While ctrl1 = False
Set filetopen = Nothing
filetoopen = Application.GetOpenFilename
If filetoopen <> false Then
If (fso.GetFile(filetoopen).Type <> "File" And
fso.GetFile(filetoopen).Type <> "Document texte") Then
MsgBox "Vous avez choisi un fichier dont le type n'est pas
document texte ou sans extension" & Chr(13) & "vous devez choisir
un autre fichier ou Annuler"
Else
ctrl1 = True
End If
Else
Set fso = Nothing
With Application
.DisplayAlerts = True
.ScreenUpdating = True
.AskToUpdateLinks = True
.EnableCancelKey = xlInterrupt
End With
Exit Sub
End If
Wend

Set fso = Nothing


Workbooks.OpenText Filename:=filetoopen, Origin:=xlWindows,


Tab:=True,

Other:=True, OtherChar:="!"

il y a bien sur plus simple.ci-dessous , extrait de l'aide d'Excel

fileToOpen = Application _
.GetOpenFilename("Text Files (*.txt), *.txt")
If fileToOpen <> False Then
MsgBox "Open " & fileToOpen
End If




J'ose avouer que pour moi non plus ça ne marche pas... Pour



répondre à

Sophie, va voir ma question que je viens de poser, tu y trouveras



ta réponse.

Thierry.




re,

qu'est ce qui ne marche pas ? dans quelles circonstances ? parce
que comme code y'a pas plus simple.

A+



C'est bien du VBA, mais ta réponse ne marche pas... pourtant





je pensais que

marquer jsute l'adresse du dossier fonctionnerai, mais
apparemment non !! Merci de ton aide

Sophie


"anonymousA" wrote:


bonjour,

si c'est du VBA ( mais j'ai un doute compte tenu de ce que






tu écris),

pourquoi tout simplement ne pas écrire

ChDir "C:Documents and SettingseleveMes






documentsfranck"

Application.GetOpenFilename

A+




Bonjour !

Je me permet de vous demander votre aide.
Dans un de mes userforms, j'ai crée un bouton "dossier"







qui a pour fonction

d'aller ouvrir un dossier "mes documents" dès que l'on







clique dessus, grace à

cette écriture:

Private Sub CommandButton7_Click()
Const SW_SHOWNORMAL& = 1&
ShellExecute 0&, "Explore", CurDir, vbNullString,
vbNullString, SW_SHOWNORMAL
End Sub

Cependant, cela m'ouvre bien "mes documents" mais







j'aimerais que ça aille

plus loin, c'est à dire qu'il ouvre directemlent un







dossier se trouvant dans

mes documents : l'adresse est la suivante: "C:Documents







and

SettingseleveMes documentsfranck"

Pouvez vous m'aidez, et me dire comment faire?

Merci d'avance

Sophie





















Avatar
popi
Salut sophie,

mais j'aimerais que ça aille
plus loin, c'est à dire qu'il ouvre directement un dossier se trouvant dans
mes documents : l'adresse est la suivante: "C:Documents and
SettingseleveMes documentsfranck"




comme çà peut-être :
dossier_franck = Shell("Explorer franck", 1)

@+ popi



1 2