Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel > VBA Excel

Réponse
 
Outils de la discussion
Vieux 27/08/2008, 21h44   #1 (permalink)
Invité de passage
 
Date d'inscription: août 2008
Messages: 2
Par défaut Pb interaction UserForm/Explorer

Bonjour,

Voici mon pb : j'ai une macro VBA Excel avec interface UserForm (application.visible = false). Dans un onglet, je fais appel à une procédure "GetOpenFilename". L'utilisateur doit donc sélectionner un fichier via la fenêtre "Ouvrir" de l'explorer Windows. Hors, si un explorateur est déjà ouvert, après la sélection du fichier, celui-ci se met en avant-plan par rapport au UserForm, la reprise en main du UserForm oblige donc l'utilisateur à le remettre au premier plan via la barre de tâches Windows. Etant donné que l'utilisateur a 7 "GetOpenFilename" à effectuer pour valider l'opération, il doit faire un nombre incalculable de clics souris. Connaissez-vous une astuce pour laisser ce fichu explorateur en arrière plan sur le bureau.

Merci d'avance pour votre précieuse aide !!!
madmastergui est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 28/08/2008, 18h46   #2 (permalink)
Responsable Excel
 
Avatar de SilkyRoad
 
Date d'inscription: août 2005
Messages: 3 113
Par défaut

bonsoir

Tu peux masquer l'explorateur pendant la durée de ta procédure.
Tu utilises IE.Visible = False en début de procédure
et IE.Visible = True pour le réafficher.


Code :
Sub MasquerExplorateurWindows()
    'Nécessite d'activer la référence
        '"Microsoft Internet Controls"
        
        'Testé avec IE6
        '
        '
    Dim IE As InternetExplorer
    Dim winShell As New ShellWindows
    Dim t As Date
    
    On Error GoTo Fin
    
    On Error Resume Next
    For Each IE In winShell
        If IE.FullName = "C:\WINDOWS\Explorer.EXE" Then
            IE.Visible = False
            Exit For
        End If
    Next IE
 
    'Temporisation de 4 secondes
    t = Timer + 4: Do Until Timer > t: DoEvents: Loop
 
Fin:
    IE.Visible = True
End Sub


bonne soirée
michel
SilkyRoad est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel > VBA Excel

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide


Fuseau horaire GMT +1. Il est actuellement 00h01.


Publiez vos articles, tutoriels et cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter
Copyright 2000-2008 www.developpez.com - Legal informations