IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Faire revenir Excel au premier plan [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 168
    Par défaut Faire revenir Excel au premier plan
    Bonjour, j'utilise plusieurs logiciel pour le travail et je voulais savoir comment je pourrais faire revenir excel au premier plan.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Option Explicit
     
    Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
    Private Declare Function BringWindowToTop Lib "user32" (ByVal hwnd As Long) As Long
    Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassname As String, ByVal lpWindowName As String) As Long
     
    Sub applicationpremierplan()
      Dim hwnd As Long
    Dim Logiciel As String
     Logiciel = "Microsoft Excel - " & ThisWorkbook.Name
     hwnd = FindWindow(vbNullString, Logiciel)
     If hwnd = 0 Then
      Logiciel = ThisWorkbook.Name
      hwnd = FindWindow(vbNullString, Logiciel)
     End If
     If hwnd = 0 Then
     Logiciel = "Microsoft Excel - " & ThisWorkbook.Name & " [Lecture seule]"
      hwnd = FindWindow(vbNullString, Logiciel)
     End If
     If hwnd = 0 Then
     Logiciel = ThisWorkbook.Name & " [Lecture seule]"
      hwnd = FindWindow(vbNullString, Logiciel)
     End If
     BringWindowToTop hwnd
     ShowWindow hwnd, 1
     Message.Show 0
    End Sub
    j'ai déjà essayé ceci mais cela ne fonctionne pas

    Merci de votre aide

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Option Explicit
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function SetForegroundWindow Lib "user32" (ByVal hWnd As Long) As Long
     
    Sub test()
    Dim lhWnd As Long
    lhWnd = FindWindow(vbNullString, Application.Caption)
    Call SetForegroundWindow(lhWnd)
    End Sub

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 168
    Par défaut
    Que ça soit ta macro ou ma macro, soit l'application revient au premier plan soit l'onglet windows clignote

    une raison que ça clignote plutôt que de revenir au premier plan ? Je suis au travail et les ordinateurs sont en réseau

    Merci

  4. #4
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Je n'arrive pas à reproduire ce phénomène

    Essaie avec l'Api ShowWindow
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Private Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal lCmdShow As Long) As Long
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
     
    Sub AfficherFenetre()
    Dim lHwnd As Long
     
    lHwnd = FindWindow(vbNullString, Application.Caption)
     
    'Les paramètres pour ShowWindow sont :
    '0 = cache la fenêtre et en active une autre
    '2 = active et réduit la fenêtre
    '3 = active et agrandit la fenêtre
    '5 = active et affiche la fenêtre
    '6 = réduit la fenêtre et active la suivante dans l'ordre des tâches Windows
    '9 = active et affiche la fenêtre à sa taille et position initiales
    '8 = affiche la fenêtre sans l'activer
     
    ShowWindow lHwnd, 3
     
    'si plusieurs classeurs ouverts dans cette instance
    ThisWorkbook.Activate
     
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment Ramener Excel au premier plan
    Par Godzestla dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 18/01/2017, 20h28
  2. fenetre excel au premier plan
    Par mike42 dans le forum VBA Access
    Réponses: 2
    Dernier message: 13/09/2009, 17h30
  3. Ourvrir Excel au premier plan
    Par curt dans le forum IHM
    Réponses: 7
    Dernier message: 31/12/2008, 03h57
  4. [ VBA / EXCEL ] Fenêtre Excel au Premier Plan
    Par mike42 dans le forum Access
    Réponses: 1
    Dernier message: 14/06/2006, 13h55
  5. Ramener Excel au premier plan
    Par Keiko dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 19/04/2006, 21h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo