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

ChDrive, instruction


Change le lecteur en cours.
Syntaxe
ChDrive drive
L'argument drive est une expression de chaîne désignant un lecteur existant. Si vous indiquez une chaîne de longueur nulle (""), le lecteur courant reste le même. Si l'argument drive est une chaîne à plusieurs caractères, l'instruction ChDrive n'utilise que la première lettre.
Sur le Macintosh, l'instruction ChDrive remplace le dossier en cours par le dossier racine du lecteur spécifié.
ChDir, instruction


Change le répertoire ou le dossier courant.
Syntaxe
ChDir path
L'argument path est une expression de chaîne identifiant le répertoire ou le dossier devenant le nouveau répertoire ou dossier par défaut. L'argument path peut préciser le lecteur. Si aucun lecteur n'est indiqué, ChDir change le répertoire ou le dossier par défaut du lecteur courant.
Remarques
L'instruction ChDir change le dossier par défaut mais pas le lecteur par défaut. Par exemple, si C est le lecteur par défaut, l'instruction ci-dessous change le dossier par défaut sur le lecteur D, mais C reste le lecteur par défaut :

ChDir "D:\TMP" Sur le Power Macintosh, le lecteur par défaut devient le lecteur spécifié dans le chemin path. Les spécifications complètes de chemin d'accès commencent par le nom de volume et les chemins d'accès relatifs commencent par deux points :)). ChDir trouve une solution pour les alias spécifiés dans le chemin d'accès :

ChDir "MacDrive:Tmp" ' Sur le Macintosh. Notez que lors des modifications apportées aux dossiers, les symboles utilisés sont différents sur Macintosh et Microsoft Windows :

ChDir ".." ' Remonte d'un dossier dans Microsoft Windows. ChDir "::" ' Remonte d'un dossier sur le Macintosh.
Un GetOpenFileName démarre sur le dossier courant du lecteur courant.
 

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ésolu(e)
Microsoft 365 requête Dossier
Réponses
6
Affichages
425

Statistiques des forums

Discussions
314 588
Messages
2 110 988
Membres
111 002
dernier inscrit
Lolo73i