ouverture de dossier

paul87

XLDnaute Impliqué
Bonjour à tous,
Bonjour le Forum,
dans un UserForm sous Excel, j'ai un bouton qui sur "OnClick" va lancer l'ouverture d'un dossier dans un chemin précis.
avec le code ci-dessous, qui fonctionne pour l'ouverture
Code:
Private Sub CommandButton1_Click()
Dim objShell As Shell
Set objShell = New Shell
objShell.Explore "\\lm20\xxxxxx\yyyyy\xxxxx\mon_dossier_cible"
End Sub
Je rencontre 2 problèmes.

1) - l'ouverture du dossier cible se fait bien seulement j'ai un message d'erreur "Windows"
"Windows ne trouve pas (null). Vérifiez que vous avez entré le nom et recommencez".
comment faire pour ne pas avoir ce message d'erreur...qui n'a pas de sens puisque le dossier cible s'ouvre bien. (j'ai testé aussi avec objShell.Open idem)

2) - Dans mon dossier cible, j'ai des fichiers .xls....que je souhaite éventuellement ouvrir..!!
ça ne marche pas. je fichier excel sélectionné s'ouvre bien, mais le UserForm initial reste en avant-pan, rendant l'utilisation impossible. Actuellement mon Userform est en ShowModal=False, mais j'ai essayé en True, c'est pareil!!
Ce que je souhaiterais, c'est que mon fichier Excel avec le UserForm reste en arrière-plan (pour y avoir à nouveau accès dès fermeture de celui sélectionné) et que le fichier sélectionné s'ouvre en avant-plan et à sa fermeture se retrouver sur le UserForm.

Je ne sais pas si je suis très clair dans mon explication...
en tout cas je n'y arrive pas..
Qui pourrait m'aider...svp !!!
Merci par avance
 
Dernière édition:

paul87

XLDnaute Impliqué
Re : ouverture de dossier

en modifiant la ligne ci dessous,
Code:
Z = Application.GetOpenFilename(", *")
j'arrive à avoir tous les types de fichiers,...
par contre je n'arrive pas à ouvrir les autres types que Excel....pb avec Workbooks.Open qui ne fonctionne qu'avec excel..
 

paul87

XLDnaute Impliqué
Re : ouverture de dossier

bon... avec ceçi,
Code:
Private Sub CommandButton1_Click()
Dim Z As Variant
Me.Hide
ChDir "\\lm20\DOC_Rout"
ChDir "\Public\Recap\Tests_Recap\ORGANISATION"

Z = Application.GetOpenFilename
If VarType(Z) = vbBoolean Then Me.Show: Exit Sub
ThisWorkbook.FollowHyperlink Z
End Sub

et ceçi..
Code:
Private Sub Workbook_Activate()
UserForm1.Show
End Sub

Private Sub Workbook_Deactivate()
UserForm1.Hide
End Sub

les fichiers .doc s'ouvrent bien en avant-plan, avec modification possible, mais lorsque fermeture (par la croix cadre supérieur droit) retour sur le fichier Excel de base mais sans le UserForm...
Les fichiers .Xls s'ouvrent en arrière-plan...impossible d'y avoir accès sans fermer le UserForm.
Les fichiers .ppt s'ouvrent...mais en mode page web...sans modification possible..

Bref...je n'y comprends plus rien...
 

Dranreb

XLDnaute Barbatruc
Re : ouverture de dossier

Là je n'ai plus d'idée pour les autres applications. Pour les .xls (tester si Z Like "*.xls*") les ouvrir quand même avec Workbooks.Open

P.S. Mais à votre place je me créerais un raccourci sur ce dossier.
 
Dernière édition:

paul87

XLDnaute Impliqué
Re : ouverture de dossier

Bonjour,
en utilisant votre conseil pour tester l'extension, ça marche parfaitement...pour les .xls
Code:
Private Sub CommandButton1_Click()
Dim Z As Variant
Me.Hide
ChDir "\\lm20\DOC_Rout"
ChDir "\Public\Recap\Tests_Recap\ORGANISATION"

Z = Application.GetOpenFilename
If VarType(Z) = vbBoolean Then Me.Show: Exit Sub

If Z Like ("*.xls") Then
Workbooks.Open Z
End If

If Z Like ("*.doc") Then
'code pour ouvrir Word et le fichier .doc choisi
End If

If Z Like ("*.ppt") Then
'code pour ouvrir PowerPoint et le fichier .ppt choisi
End If
il n'existe pas de code équivalent à "Workbooks.Open" pour .doc et .ppt ??

sinon j'ai déja un raccourci sur un dossier...dans un CommandButton / UserForm
Nous serions donc bloqués.., sans solutions possibles ..?
 

Dranreb

XLDnaute Barbatruc
Re : ouverture de dossier

Bonjour.
Non, dans ce cas le plus simple c'est de passer par l'Explorer. Mais je ne vois pas l'intéret du Userform. Je me mettrais un raccourci sur le bureau et puis c'est tout. Enfin dans mon cas (je n'utilise pas le bureau pour lancer mes applis) dans ma barre de tâches personnalisée.
 

paul87

XLDnaute Impliqué
Re : ouverture de dossier

La finalité de mon projet est la suivante:
nous travaillons en réseau sur une trentainte de postes. Le UserForm (qui par ailleurs contient beaucoup d'autres applications) nous sert principalement de support de travail.
Je souhaitai pouvoir rajouter des liens directs vers certains répertoires/Dossiers, afin de faciliter grandement l'accès aux fichiers qu'ils contiennent.
J'ai remarqué que lorsqu'on est en réseau sur serveur Citrix, le temps d'ouverture de l'Explorer et long (voire très long) tandis que si on lance directement depuis de UserForm c'est immédiat....ce serait donc un gros avantage..!!
c'est vraiment dommage si c'est impossible...
En tous cas, merci beaucoup pour vos conseils et votre patience.
 

paul87

XLDnaute Impliqué
Re : ouverture de dossier

Bonjour,...et merci de votre tenacité dans ce problème..
Avec ThisWorkbook.FollowHyperlink etc...je n'arrive à rien..
Par contre en bidouillant et en bricolant..j'ai réussi à faire fonctionner indifférement Word et Excel (après test sur extension...comme vous le proposiez.) ça fonctionne..mais ne je sais pas si c'est très..orthodoxe...le principal c'est le résultat.!!!
Par contre je n'ai pas encore réussi à faire fonctionner pour .ppt et .pdf ....mais ce ne doit pas être très different..j'espère
Voir ci dessous le code qui fonctionne...
Donnez moi votre avis...MERCI !
Code:
Private Sub CommandButton1_Click()
Dim Z As Variant
Me.Hide
ChDir "\\lm20\DOC_Rout"
ChDir "\Public\Recap\Tests_Recap\ORGANISATION"
Z = Application.GetOpenFilename
If VarType(Z) = vbBoolean Then UserFormMenu.Show: Exit Sub


'Code pour FICHIERS EXCEL -------------------
If Z Like ("*.xls") Then
Me.Hide
Workbooks.Open Z
End If
'----------------------------------------------

'Code pour FICHIERS WORD -------------------
If Z Like ("*.doc") Then
Dim k As Object
Set k = CreateObject("Word.Application")
k.Visible = True
k.Documents.Open Filename:=(Z)
End If
'----------------------------------------------

End Sub
 

Dranreb

XLDnaute Barbatruc
Re : ouverture de dossier

Bonjour.
J'ai pourtant fait un essai avec un FollowHyperlink sur un de mes répertoires (qui n'est pas réseau), ça me l'a ouvert avec Explorer.
UserformMenu.Show c'est un autre Userform ou c'est parce que vous avez oublié que le mot clé Me peut être utilisé pour désigner tout objet auquel est attaché le code qui l'utilise ?
À part ça je n'ai pas d'autres idée pour ouvrir d'autres fichier à part Shell peut être. Power Point devrait exister comme application office il me semble. Mais Accrobat est assez fermé…
 

paul87

XLDnaute Impliqué
Re : ouverture de dossier

Bonjour..
voilà la suite...et fin..!!!
tout fonctionne NICKEL.!!!
Code:
Private Sub CommandButton1_Click()
Dim Z As Variant
Me.Hide
ChDir "\\lm20\DOC_Rout"
ChDir "\Public\Recap\Tests_Recap\ORGANISATION"
Z = Application.GetOpenFilename
If VarType(Z) = vbBoolean Then UserForm1.Show: Exit Sub

'Code pour FICHIERS EXCEL -------------------
If Z Like ("*.xls") Then
Me.Hide
Workbooks.Open Z
End If
'----------------------------------------------
'Code pour FICHIERS WORD -------------------
If Z Like ("*.doc") Then
Dim k As Object
Set k = CreateObject("Word.Application")
k.Visible = True
k.Documents.Open Filename:=(Z)
End If
'----------------------------------------------
'Code pour FICHIERS POWERPOINT ----------------
If Z Like ("*.ppt") Then
Dim l As Object
Set l = CreateObject("PowerPoint.Application")
l.Visible = True
Dim pres As PowerPoint.presentation
Set pres = l.presentations.Open(Filename:=(Z))
End If
'----------------------------------------------
'Code pour FICHIERS ACCESS --------------------
If Z Like ("*.mdb") Then
Dim Db As Object
Set Db = CreateObject("Access.Application")
Db.OpenCurrentDatabase (Z)
Db.UserControl = True
Set Db = Nothing
'----------------------------------------------
'Code pour FICHIERS PDF -----------------------
If Z Like ("*.pdf") Then
ActiveWorkbook.FollowHyperlink Address:=(Z)
End If
'----------------------------------------------
End Sub
Concernant le UserFromMenu..c'est une erreur d'appelation de ma part...
En tout cas un GRAND GRAND MERCI pour votre aide et votre suivi de ce post.!!!!
 

Discussions similaires

Réponses
11
Affichages
206

Statistiques des forums

Discussions
311 724
Messages
2 081 936
Membres
101 844
dernier inscrit
pktla