Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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:

Dranreb

XLDnaute Barbatruc
Re : ouverture de dossier

Boujour
Si ce dossier de réseau est attribué à une lettre de lecteur (normalemant ça devrait être le cas) pourquoi n'utiliseriez vous pas GetOpenFileName après avoir fait un ChDrive dessus puis un ChDir pour vous positionner sur ce répertoire ?
 

Dranreb

XLDnaute Barbatruc
Re : ouverture de dossier

Un GetOpenFileName démarre sur le dossier courant du lecteur courant.
 

Dranreb

XLDnaute Barbatruc
Re : ouverture de dossier

C'est une méthode de l'objet Application. Elle ne fait partie de celles qui sont reconnues sans avoir besoin de spécifier Application.GetOpenFileName. Utilisez la touche F1 dessus pour plus d'informations.
 

paul87

XLDnaute Impliqué
Re : ouverture de dossier

Bonjour,
C'est Ok ..!!! ça marche nickel !!! MERCI +++!!

Par contre je n'ai pas encore réussi à régler mon 2 ème problème......sur l'ouverture excel et un UserForm déja ouvert d'un précédent fichier .xls.. (voir point 2 du premier post de ce fil)

Si quelqu'un avait une soluce..???
Merci à tous
 

paul87

XLDnaute Impliqué
Re : ouverture de dossier

Bonjour,
avec Me.Hide et Me.Show j'ai bien réussi à faire disparaître (à l'ouverture du dossier "ORGANISATION" et ré apparaître le UserForm à la fermeture de ce même dossier.
Par contre dans ce dossier, j'ai des fichiers Excel, et quand j'assaye d'en ouvrir un, le fichier choisi ne s'ouvre pas, et le UserForm ré apparaît.
j'utilise ce le code ci dessous qui fonctionne:
Code:
Private Sub CommandButton1_Click()
Me.Hide
'Unload UserForm1
ChDir "\\lm20\DOC_Rout"
ChDir "\Public\Recap\Tests_Recap\ORGANISATION"
Application.GetOpenFilename
Me.Show
End Sub
je ne sais vraiment pas comment faire pour ouvrir le nouveau fichier excel choisi dans le dossier ORGANISATION sans voir la réapparition du UserForm.
Je voudrais que ce dernier ne ré apparaîsse que lorsque le fichier .xls choisi dans le dossier soit fermé (avec enregistrement ou non)
Toujours et encore MERCI pour vos aides et conseils..!!
 

Dranreb

XLDnaute Barbatruc
Re : ouverture de dossier

Bonjour.
Vous ne récupérez pas le résultat renvoyé par Application.GetOpenFilename ? Il s'utilise comme une fonction, vous savez ! Renvoie False si l'utilisateur n'a choisi aucun fichier. Il n'y a que dans ce cas qu'il faut exécuter me.Show, sinon il faut ouvrir le fichier choisi. Et il y a des paramètres à spécifier. Vous n'avez pas regardé l'aide ? Je vous avais pourtant conseillé la touche F1 !

P.S. Par ailleurs je vois que vous avez remplacé le ChDrive X par ChDir "\\lm20\DOC_Rout". Êtes vous sûr que ça marche ? Si , lorsque c'est un serveur qui lui est précisé, le ChDir change exceptionnellement le lecteur courant au lieu de changer le dossier courant, alors c'est super intéressant ! Je n'ai pas de réseau à la maison. Pouvez vous tester ça :
VB:
Sub Essai()
ChDrive "C"
MsgBox "ChDrive ""C""" & vbLf & "==> Curdir = """ & CurDir & """."
ChDir "\\lm20\DOC_Rout"
MsgBox "ChDir ""\\lm20\DOC_Rout""" & vbLf & "==> Curdir = """ & CurDir & """."
End Sub
 
Dernière édition:

paul87

XLDnaute Impliqué
Re : ouverture de dossier

Bonjour, si, j'ai bien fait F1 pour GetOpenFilename seulement mon but n'est pas d'ouvrir directement un fichier...(.xls ou autre) mais de me positionner directement sur un dossier spécifique de mon arborescence...en l'occurence le dossier "ORGANISATION" dans lequel il y a, entres autres, des fichiers .xls que je souhaite ouvrir indépendamment du fichier qui gère le UserForm.
s'il y a une erreur de ma part...je ne sais pas d'ou elle vient...ou je ne comprends pas..car là avec le code présenté plus haut, je me positionne bien sur le dossier choisi.
mon problème est de pouvoir choisir "manuellement" le fichier .xls que je souhaite ouvrir..
 

paul87

XLDnaute Impliqué
Re : ouverture de dossier

j'ai bien conscience que ce n'est pas très clair...dsl.
en fait, ce dont j'ai besoin, c'est de pouvoir ouvrir (manuellemnt) n'importe quel fichier .xls localisé dans un dossier imposé (ORGANISATION) à partir d'un CommandButton1 localisé dans un UserForm.
Le problème actuel est la "cohabitation" ou le conflit d'ouverture de 2 fichiers .xls. Celui avec le Userform et celui dont l'ouverture est choisie dans le dossier cible.
Par ailleurs, le code que j'utilise actuellement fonctionne bien pour ouvrir le DOSSIER "ORGANISATION"

Merci pour votre patience...
 

Dranreb

XLDnaute Barbatruc
Re : ouverture de dossier

Eh bien essayez comme ça :
VB:
Private Sub CommandButton1_Click()
Dim Z As Variant
Me.Hide
ChDir "\\lm20\DOC_Rout" ' j'ai de sérieux doutes.
ChDir "\Public\Recap\Tests_Recap\ORGANISATION"
Z = Application.GetOpenFilename("Classeurs, *.xls*")
If VarType(Z) = vbBoolean Then Me.Show: Exit Sub
Workbooks.Open Z
End Sub
Et mettez dans le ThisWorkbook :
VB:
Private Sub Workbook_Activate()
Userform1.Show
End Sub
Et tant qu'à faire :
VB:
Private Sub Workbook_Deactivate()
Userform1.Hide
End Sub
comme ça vous n'avez plus besoin de vous en occuper dans l'Userform.
 
Dernière édition:

paul87

XLDnaute Impliqué
Re : ouverture de dossier

en fait, je souhaite pouvoir ouvrir éventuellemnt n'importe quel type de fichier....xls, .doc, .ppt, .pdf qui se trouvent dans ce dossier.
avec votre code, (qui fonctionne : le fichier choisi s'ouvre bien) on trie uniquement les extensions .xls
de plus, j'ai toujours ce problème du UserForm qui reste en avant-plan
 

Discussions similaires

Réponses
11
Affichages
248
Réponses
1
Affichages
112
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…