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 :

Comment ramener la fenêtre Excel au premier plan après avoir ouvert un document Word [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2018
    Messages : 9
    Par défaut Comment ramener la fenêtre Excel au premier plan après avoir ouvert un document Word
    Bonjour,

    J'aimerai ramener la fenetre Excel qui contient la macro que j'éxécute au premier plan après avoir ouvert un document word depuis Excel. J'ai essayé les solutions trouvées sur le forum mais rien ne fonctionne. Pourtant ici c'était le meme problème et la solution a fonctionnée pour lui je ne comprends vraiment pas pourquoi cela ne fonctionne pas.

    J'ai aussi essayé celui-ci mais rien n'y fait...

    Pouvez-vous m'aider svp?

  2. #2
    Rédacteur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2013
    Messages
    1 023
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 1 023
    Par défaut
    Il faut essayer ceci dans un module EXCEL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long
    Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
     
    Sub PremierPlan()
    MoveWindow Application.hwnd, 0, 0, GetSystemMetrics(0), GetSystemMetrics(1), 1
    End Sub

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Quand tu parles de "fenêtre Excel", est-ce une feuille de calcul ou un UserForm ?

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re

    sujet plusieurs fois dans le forum
    soit la macro dans le word
    soir une mcro différée(application.ontime)ou pire un timer

    toutes les autres solutions a ma connaissance ne sont pas fiables
    si tu ouvre ton word a partir d'excel cela devrait etre facile a mettre en place
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2018
    Messages : 9
    Par défaut
    Bonjour à vous 3,


    Menhir, j'ouvre un document Word depuis Excel, celui s'affiche par dessus, je voudrais remettre la fenêtre Excel (où se trouve la feuille de calcul pas un UserForm) au premier plan quand l'ouverture est terminée.

    Laurent j'ai essayé ta solution, au début ça ne reconnaissait pas car getSystemMetrics n'était pas reconnu, je les ai donc changé pour des valeurs en dure pour tester (500x500), ça redimensionne la fenêtre mais elle ne passe pas par dessus la fenêtre Word.

    J'ai donc fait la macro différée comme le conseil Patrick mais ca ne fonctionne pas. Je ne peux pas mettre la macro pour ramener devant dans le word car la macro que je fait sur excel est destinée à plusieurs utilisateurs et peut utiliser plusieurs documents word différents.

    Actuellement le code de cette partie ressemble à ça :
    Ouverture Word + fonction ontime pour appeler la macro premier plan :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Set DocWD = AppWD.Documents.Open(path) 
        AppWD.Visible = True
        DocWD.Activate
     
        Application.OnTime Now + TimeValue("00:00:10"), "PremierPlan"
    Et dans premier plan j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub PremierPlan()
     
    AppActivate "Microsoft Excel"
    End Sub
    Cela correspond bien à ce que tu me disais Patrick?

    Merci à vous 3 pour les réponses

  6. #6
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub testword()
    Dim Wapp As Word.Application, Wdoc As Object
       Set Wapp = New Word.Application
       Set Wdoc = AppWD.Documents.Open(Path)
        Wapp.Visible = True
        Wdoc.Activate
        Wapp.ActiveWindow.WindowState = wdWindowStateMinimize
    End Sub

  7. #7
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Ou encore, pour laisser le temps de réaliser une/des actions :
    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
    Option Explicit
     
    Dim Wapp As Word.Application
     
    Sub testword()
    Dim Wdoc As Word.Document
       Set Wapp = New Word.Application
       Set Wdoc = Wapp.Documents.Add
       Wapp.Visible = True
       Wapp.Application.Activate
       Wdoc.Activate
       Wapp.ActiveWindow.WindowState = wdWindowStateMaximize
       Application.OnTime Now + TimeValue("00:00:10"), "PremierPlan"
    End Sub
     
    Private Sub PremierPlan()
        Wapp.ActiveWindow.WindowState = wdWindowStateMinimize
    End Sub

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut
    re
    on dit que la curiosité est un defaut perso je suis pas d'accords
    si tu avais fait une recherche google ou meme sur ce forum tu aurais trouver ton bonheur tout du moins une base ICI
    PArti de la une adaptation a ton besoins en 2 secondes et qui fonctionne meme si l'instance de word n'a pas éte ouverte par excel
    j'ai simplement repris le code en bloquant les ligne dont tu n'a pas besoins et ajouté me minimisé de word point barre
    voila apres ton ouverture ou au moment que tu veux tu lance ca
    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
    Sub minimizeword()
    Dim objWord As Object
    Dim c As Object
    On Error Resume Next
    Set objWord = GetObject(, "Word.Application")
    If Not objWord Is Nothing Then
      objWord.WindowState = 2
       ' Set c = objWord.ActiveDocument
        'If Not c Is Nothing Then
             'MsgBox c.Name
             'Set c = Nothing
        'End If
    End If
    Set objWord = Nothing '-- détruire l'objet Word
    End Sub
    voila tu a le lien et l'adaptation
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

+ 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, 19h28
  2. Réponses: 12
    Dernier message: 05/09/2007, 14h46
  3. [ VBA / EXCEL ] Fenêtre Excel au Premier Plan
    Par mike42 dans le forum Access
    Réponses: 1
    Dernier message: 14/06/2006, 12h55
  4. Ramener Excel au premier plan
    Par Keiko dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 19/04/2006, 20h14
  5. Réponses: 2
    Dernier message: 02/12/2004, 08h33

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