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 :

Réduction excel barre des tâches


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 58
    Par défaut Réduction excel barre des tâches
    Bonjour,

    Après pas mal de recherche j'ai réussis à trouver une macro qui à l'ouverture de mon fichier excel réduit excel tout en ouvrant mon formulaire.
    Cependant lorsque je quitte mon formulaire et donc excel, puis que je souhaite ré-ouvrir n'importe quel fichier excel, excel ce lance mais mon classeur ne s'ouvre pas, je dois passer par fichier/ouvrir
    Le moyen que j'ai trouver pour remédier à cela est de décocher la case "ignorer les autres applications" dans outils/options/général

    Ainsi je souhaiterais que soit lorsque je quitte le formulaire l'option "ignorer…." se désactive (au workbook.close) ou sinon que la macro ne change pas cette propriété?

    De plus, si j'ai plusisuers fichiers excel d'ouvert, ma macro réduire dans la barre tous les fichiers excels ouverts alors que je voudrais qu'elle cache uniquement le workbook auquel elle apartient, est-ce possible?

    Voici le code dans thisworkbook:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Workbook_Open()
    Application.WindowState = xlMaximized
    ActiveWindow.WindowState = xlMaximized
    Application.DisplayAlerts = False
    Application.IgnoreRemoteRequests = True
    Application.DisplayAlerts = True
    'cache excel
    Parent.Visible = False
    'affiche le formulaire
    UserForm1.Show
    End Sub
    Voici le code dans le userform:
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Option Explicit
    Private Declare Function FindWindow& Lib "user32" Alias "FindWindowA" (ByVal lpClassName$, ByVal lpWindowName$)
    Private Declare Function SetWindowLong& Lib "user32" Alias "SetWindowLongA" (ByVal hWnd&, ByVal lngWinIdx&, ByVal dwNewLong&)
    Private Declare Function ShowWindow& Lib "user32" (ByVal hWnd&, ByVal nCmdShow&)
    Private Declare Function SendMessage& Lib "user32" Alias "SendMessageA" (ByVal hWnd&, ByVal wMsg&, ByVal wParam%, ByVal lParam As Any)
    Private hWnd&
    Private Const SC_CLOSE = &HF060&
    Private Const MF_BYCOMMAND = &H0&
    Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, ByVal bRevert As Long) As Long
    Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
    Private Declare Function FindWindowA Lib "user32" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
     
     
    Private Sub CommandButton1_Click()
    'pour fermer le formulaire et reactiver excel
    Me.Hide
    Application.Visible = True
    End Sub
     
     
    Private Sub UserForm_Activate()
    Application.ScreenUpdating = False
    ShowWindow hWnd, 0
    SetWindowLong hWnd, -20, &H40101
    ShowWindow hWnd, 1
    Application.ScreenUpdating = True
    End Sub
     
    Private Sub UserForm_Initialize()
    hWnd = FindWindow(vbNullString, Me.Caption)
    SetWindowLong hWnd, -16, &H84CA0080
    'desactive et cache la croix de fermeture:
    Dim hSysMenu As Long
    Dim MeHwnd As Long
        MeHwnd = FindWindowA(vbNullString, Me.Caption)
        If MeHwnd > 0 Then
            hSysMenu = GetSystemMenu(MeHwnd, False)
            RemoveMenu hSysMenu, SC_CLOSE, MF_BYCOMMAND
        Else
            MsgBox "Handle de " & Me.Caption & " Introuvable", vbCritical
        End If
    'charger un logo (attention réactiver la ligne de déclaration "sendmessage"):
    SendMessage hWnd, &H80, 0, Image1.Picture.Handle
     
    End Sub

    Si vous pouviez m'éclairer! Merci beaucoup.

    Elumastebit

  2. #2
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 395
    Par défaut
    Bonjour,

    est-ce obligatoire de réduire excel dans la barre de tâche ou peux-tu te contenter de cacher excel derrière ton formulaire (que je suppose modal)?

  3. #3
    Membre émérite
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2006
    Messages
    542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 542
    Par défaut
    Bonjour à tous
    Bonjour Elumastebit, Godzestla

    Je ne sais pas si j'ai bien compris, mais peut être une solution avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Workbook_Activate()
     
    End Sub
     
    Private Sub Workbook_Deactivate()
     
    End Sub
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
     
    End Sub
    Eric

  4. #4
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 395
    Par défaut
    Salut Eric,

    j'avais pensé à tout autrechose.

    Si je suppose que le Formulaire est Userform2

    Dans Thisworkbook
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Workbook_Open()
    XL_Reduit
    End Sub
    et dans un module
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Xl_réduit()
    'réduit la fenêtre et la positionne
    'dans le coin supérieur gauche
        With Application
            .WindowState = xlNormal
            .Height = UserForm2.Height
            .Width = UserForm2.Width
            .Top = 0
            .Left = 0
        End With
    End Sub
    Et quand on ferme le formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Sub Xl_plein_ecran()
    'redimensionne la fenêtre en plein écran
        Application.WindowState = xlMaximized
    End Sub

  5. #5
    Membre émérite
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2006
    Messages
    542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 542
    Par défaut
    Salut G@dz

    Tout à fait d'accord avec toi.

    Cordialement

    Eric

  6. #6
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 58
    Par défaut
    Bonjour à vous 2,

    est-ce obligatoire de réduire excel dans la barre de tâche ou peux-tu te contenter de cacher excel derrière ton formulaire (que je suppose modal)?
    Si j'utilise cette méthode alors l'utilisateur peux déplacer le formulaire et modifier ce qu'il veut dans le tableau. De plus je ne veux pas qu'il se rende coimpte qu'il s'agit d'une appli Excel.

    Je ne sais pas si j'ai bien compris, mais peut être une solution avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Workbook_Activate()
     
    End Sub
     
    Private Sub Workbook_Deactivate()
     
    End Sub
    au lieu de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
     
    End Sub
    Eric
    Alors en fait j'ai trouver la solution, il suffit de rentrer la valeur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.IgnoreRemoteRequests = False
    Et du coup cela fonctionne! ceci autorise l'ouverture d'un workbook.

    Enfin:

    j'avais pensé à tout autrechose.

    Si je suppose que le Formulaire est Userform2
    C'est une solution qui marche aussi, et elle évite le ignoreremoterequests.
    Cependant avec ta méthode, il n'est toujours pas possible quand mon userform est affiché d'ouvrir un autre fichier excel séparément.

    Si vous avez des idées pour ce second problème...

    Merci à vous!

    Elumastebit

  7. #7
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 58
    Par défaut
    J'ajoute une précision,

    Si j'ai un classeur Excel quelconque ouvert, et ensuite que j'ouvre mon classeur excel contenant la macro cachant le workbook et qui affiche donc uniquement le userform, alors tout fonctionne; je peux également modifier le premier fichier excel précedemment ouvert. Je peux également a partir de la fnêtre du premier classeur faire fichier\ouvrir\toto.xls mon classeur toto.xls s'ouvrira bien dans une autre instance de excel bien qu'ayant mon userform affiché.

    Mon seul problème réside donc dans le fait que quand j'ai mon formulaire affiché et excel caché, je ne peux ouvrir de fichier excel en double cliquant sur un fichier existant.

    Euh après re-test de la macro, eh bien en fait non :/

    elumastebit:
    J'ajoute une précision,

    Si j'ai un c...mon userform affiché.

    Mon seul... existant.
    -->Ne pas en tenir compte

    Désolé! Aidez-moi svpppp

  8. #8
    Invité de passage
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Workbook_Open()
    Application.WindowState = xlMinimized     
     
    End Sub

  9. #9
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 079
    Par défaut
    Salut
    Je ne sais pas si j'ai bien compris tout les tenants et les aboutissants de la conversation. Je propose néanmoins quelque chose.
    Pourquoi tu n'utilises pas une fichier xla ou xlam, il lancera excel, mais le classeur restera invisible, par contre tu pourras exécuter du code et utiliser la ou les UserForm(s) incluse(s) dans ton xla (xlam).
    Pour créer un xlam, il suffit d'enregistrer sous ton fichier xls (xlsm) et de choisir "Macro complémentaires excel" dans la liste d'extension en bas.
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/07/2011, 19h39
  2. Etat Barre des tâches
    Par portu dans le forum Windows
    Réponses: 2
    Dernier message: 20/08/2004, 13h09
  3. Faire clignoter la barre des tâches
    Par SteelBox dans le forum C++Builder
    Réponses: 2
    Dernier message: 18/01/2004, 18h16
  4. Comment masquer le MessageBox de la barre des tâches ?
    Par Coussati dans le forum Langage
    Réponses: 7
    Dernier message: 25/08/2003, 14h33
  5. HAUTEUR de la barre des tâches de Windows ?
    Par Lung dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 13/12/2002, 11h43

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