Fermer l'explorateur à l'ouverture d'un classeur

O

olive

Guest
Voila, g ds un classeur, un lien hypertexte qui me fais
ouvrir l'explorateur windows sur un rép précis ou se
trouve plusieurs fichiers excel.

Je voudrais savoir comment faire pour fermer
automatiquement l'explorateur windows une fois que l'utilisateur a
ouvert le fichier dont il avait besoin ds le rép.

Merci d'avance.
 
S

Stéphane

Guest
Bonjour


ceci est dur mais peut-être faisable.
essaye de poster sur le groupe de discussion suivant : <news://msnews.microsoft.com/microsoft.public.fr.excel>

sur mon site j'ai une partie interaction avec autres applis, o* il devrait avoir un exemple ppour éteindre les autres applis
 
O

olive

Guest
Hum, en vérité, g trouver un moyen plus simple pour ouvrir ce dossier.
Plustot que de faire un lien hypertexte sur l'explorateur, g fais une macro qui m'ouvre la boire de dialogue "ouvrir" quand on clique sur la zone de texte.

cette macro est très simple :
Sub qualité()
Application.Dialogs(xlDialogOpen).Show
End Sub

Par contre j'aimerais savoir si on peut indiquer à la boite de dialogue "ouvrir" sur quel dossier s'ouvrir et qu'elle soit vérouillée sur ce dossier pour que mes utilisateurs n'aillent pas se balader ailleurs.
 
S

Stéphane

Guest
on peut le faire pour d'autres applis mais pour l'explorateur je ne suis pas sûr.

'===================
'utilsation de fonctions API
Declare Function WaitForSingleObject Lib "Kernel32" _
(ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Declare Function OpenProcess Lib "Kernel32" _
(ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long
Public Const INFINITE = &HFFFF

Function LanceEtAttendLaFin(ByVal CheminComplet As String) As Long
Dim ProcessHandle As Long
Dim ProcessId As Long, ret&

ProcessId = Shell(CheminComplet, vbNormalFocus)
ProcessHandle = OpenProcess(&H1F0000, 0, ProcessId)
LanceEtAttendLaFin = WaitForSingleObject(ProcessHandle, INFINITE)

End Function

Sub AttendFinDemineur()
chemin = "Winmine.exe"
If LanceEtAttendLaFin(chemin) = 0 Then MsgBox "coucou"
End Sub

'======================
'utilisation du Windows Scripting Host Model
Function WaitForEnd(Fichier) As Long
Set wsh = CreateObject("WScript.Shell")
WaitForEnd = wsh.Run(Fichier, 1, True)
End Function
 
S

Stéphane

Guest
euh bien sûr tout de suite moi je pars sur des idées follement tordues.

tu peux aller voir là http://xlbysteph.free.fr
précisément http://xlbysteph.free.fr/aideinformation/actionfichier.htm

bye
steph
 
O

olive

Guest
G un petit prob avec les arguments.

Sub qualité()
'A placer dans un module pour appliquer sur un objet
Application.Dialogs(xlDialogOpen).Show arg1:="d:\mes documents\augros\*.xls"
End Sub

En argument 1 je dis à la boite de dialogue de s'ouvrir ds le rép "D: ....etc" mais je n'arrive pas à lui dire en argument 2 d'être vérouillé sur cette fenêtre (argument read_only je suppose).

Comment faire ? Si je met ca :

Sub qualité()
'A placer dans un module pour appliquer sur un objet
Application.Dialogs(xlDialogOpen).Show arg1:="d:\mes documents\augros\*.xls" arg2:="read_only"
End Sub

ou que j'utilise les parenthèses et crochets, ca ne marche pas g un mess d'erreur.

qq'un connait la syntaxe?

Merci d'avance.
 

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 009
Membres
101 865
dernier inscrit
MLL