Problème d'ouverture de fichiers à partir de mon VBA

mike56edwards Messages postés 7 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 10 février 2009 - 7 févr. 2009 à 18:46
mike56edwards Messages postés 7 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 10 février 2009 - 10 févr. 2009 à 21:29
Bonjour à tous,

Je travaille sur un projet pour mes études. Sur certains de mes userform, j'ai des commandbutton qui permettent d'ouvrir un dossier dans l'explorateur grâce au code suivant :

Shell "C:\WINDOWS\EXPLORER.EXE /n,/e,C:\Documents and Settings\Michael Edwards\Mes documents\Informatique\Projet gestion de docs\Sauvegardes Bons de commande", vbNormalFocus

Donc le dossier s'ouve bien dans l'explorateur, seulement lorsque je double clique sur un des fichiers il ne se passe rien. J'ai essayé de faire en ouvrant la boîte de dialogue "ouvrir avec" mais c'est toujours le même problème. Mon VBA ne plante pas, tout semble normal, pas de message d'erreur, mais le fichier ne s'ouvre pas.

Merci de m'aider, s'il vous plait, je cherche depuis plus d'une semaine sans succès. Je précise, je ne sais pas si ça a quelque-chose à voir, j'ai choisi de garder excel visible lorsque mon VBA tourne, c'est-à-dire que pour chaque commande, j'ai "Application.visible=True".

Michael Edwards
Icam Bretagne
France

6 réponses

PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
7 févr. 2009 à 19:00
salut,

shellexecute peut ouvrir aussi les dossiers



<hr />
'    OUVRIR UN DOCUMENT / LANCER UN EXECUTABLE
'    http://www.codyx.org/snippet_ouvrir-document-lancer-executable_25.aspx#1548
'    Posté par [ PCPT ] le 05/11/2007
<hr />




Private Declare Function 
ShellExecute 
Lib
"shell32.dll" 
Alias 
"ShellExecuteA" 
(
ByVal 
hwnd 
As Long

ByVal 
lpOperation 
As String
,
ByVal
lpFile
As String
,
ByVal
lpParameters
As String
,
ByVal
lpDirectory
As String
,
ByVal
nShowCmd
As Long
)
As
Long


Public Sub 
StartProcess(
ByVal 
sFile 
As String
,
Optional ByVal
sParameters
As String
= vbNullString)

    ShellExecute 0&, "open", sFile, sParameters, vbNullString, 1&
End Sub
'
'
'
=====
' EXEMPLE
'
=====
'
Private Sub Form_Load()
    StartProcess "C:\mon_image.jpg" '<- ouvre l'image
avec ACDSEE par exemple
    StartProcess "N:\Mon
dossier"   '<- ouvre l'explorateur à cette
arborescence
    StartProcess "D:\fichier.pdf"   '<- ouvre le
fichier avec Acrobat Reader
    StartProcess "C:\Client.exe"    '<- lance le
programme
End Sub







<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
0
mike56edwards Messages postés 7 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 10 février 2009
9 févr. 2009 à 20:30
Bonjour,

Merci pour votre réponse, désolé de ne répondre que maintenant.

En fait, j'arrive à ouvrir le dossier, mais le problème vient du fait que je clique sur un des fichiers dans le dossier pour l'ouvrir, et il ne se passe rien. Si je ferme mon vba et que je clique sur le fichier, celui-ci s'ouvre. Mas je voudrais pouvoir l'ouvrir à partir de mon vba.

Merci de m'aider

Michael Edwards
Icam Bretagne
France
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
9 févr. 2009 à 21:35
le problème persiste avec le code que j'ai indiqué?...
0
mike56edwards Messages postés 7 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 10 février 2009
10 févr. 2009 à 11:01
Bonjour,
Oui même avec ce nouveau code, il m'ouvre le dossier voulu, mais je n'arrive pas à ouvrir le fichier. Je ne met pas de fichier spécifique, car c'est un dossier de sauvegardes, et je voudrais laisser le choix du fichier à l'utlisateur.

Merci

Michael Edwards
Icam Bretagne
France
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
10 févr. 2009 à 21:09
... le choix de quoi, tu as besoin de récupérer sa sélection?
lui donner accès à son répertoire ne te renvoie pas de résultat
c'est de çà que tu parlais en disant qu'il ne pouvait rien sélectionné? le fait que ton code ne sait pas ce qu'il fait dans la fenêtre?

voir dans ce cas sur codyx.org avec "browse" (dossier) ou "dialog" (fichier)

<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
0
mike56edwards Messages postés 7 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 10 février 2009
10 févr. 2009 à 21:29
Enfaite la commande c'est l'ouverture d'un dossier où des sauvegardes sont placées.


Le VBA doit ouvrir le dossier spécifié par la commande, et non l'uilisateur. Par contre l'uilisateur doit pouvoir choisir un des fichiers à l'intérieur du dossier pour l'ouvrir. Le dossier a plusieurs sauvegardes à l'intérieur. Tous les fichiers s'ouvrent avec excel. Le chemin d'accès ne change jamais.

J'arrive à faire en sorte à ce que le dossier apparaisse, les fichiers sont présents, mais lorsque je clique sur un des fichiers pour l'ouvrir, il ne se passe rien. Ni le fichier, ni excel ne s'ouvre (même si excel est déjà ouvert pour le vba)


Merci pour votre aide, j'ai essayé d'expliquer le plus clairement possible. Je vais aller voir ce que vous m'avez dit.

Michael Edwards
Icam Bretagne
France
0