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 :

Affichage plein écran + VBA Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Avril 2005
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1
    Par défaut Affichage plein écran + VBA Excel
    Bonjour,

    J'ai finalisé une application VBA et je me casse la tête sur des problèmes apparaissant quand je change d'ordi (bien sûr qui ont des versions d'excell antérieures ou postérieures). Car je suppose que ceci est lié à ces différences de version.
    Parmi eux, il en ai un qui commence à bien m'énerver : afficher en plein écran mes différentes USERFORM.

    J'ai donc utilisé les procédures des tutoriels :

    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
    'Dans l'userform
     
    Private Sub UserForm_Activate()
     
        With Me
            .StartUpPosition = 3
            .Width = Application.Width
            .Height = Application.Height
            .Left = 0
            .Top = 0
        End With
    End Sub
     
    Private Sub UserForm_Initialize()
    'On passe en arguments :
    '    - le titre de la fenêtre
    '    - False pour masquer la barre de titre
        AfficheTitleBarre Me.Caption, False
    End Sub
    Associé au programme inscrit dans un module (pour enlever la barre de menu) :
    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
    46
    47
    48
    49
    50
    51
    52
     
    Public Type RECT
            Left As Long
            Top As Long
            Right As Long
            Bottom As Long
    End Type
     
    Const GWL_STYLE = (-16)
    Const WS_CAPTION = &HC00000
    Const SWP_FRAMECHANGED = &H20
     
    Public Declare Function FindWindowA Lib "user32" _
            (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
     
    Public Declare Function GetWindowRect Lib "user32" _
            (ByVal hwnd As Long, lpRect As RECT) As Long
     
    Public Declare Function GetWindowLong Lib "user32" Alias _
            "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
     
    Public Declare Function SetWindowLong Lib "user32" Alias _
            "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, _
            ByVal dwNewLong As Long) As Long
     
    Public Declare Function SetWindowPos Lib "user32" _
            (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, _
            ByVal y As Long, ByVal cx As Long, ByVal cy As Long, _
            ByVal wFlags As Long) As Long
     
     
    Sub AfficheTitleBarre(stCaption As String, pbVisible As Boolean)
    Dim vrWin As RECT
    Dim style As Long
    Dim lHwnd As Long
    '- Recherche du handle de la fenêtre par son Caption
        lHwnd = FindWindowA(vbNullString, stCaption)
        If lHwnd = 0 Then
            MsgBox "Handle de " & stCaption & " Introuvable", vbCritical
            Exit Sub
        End If
     
        GetWindowRect lHwnd, vrWin
        style = GetWindowLong(lHwnd, GWL_STYLE)
        If pbVisible Then
            SetWindowLong lHwnd, GWL_STYLE, style Or WS_CAPTION
        Else
            SetWindowLong lHwnd, GWL_STYLE, style And Not WS_CAPTION
        End If
        SetWindowPos lHwnd, 0, vrWin.Left, vrWin.Top, vrWin.Right - vrWin.Left, _
                vrWin.Bottom - vrWin.Top, SWP_FRAMECHANGED
    End Sub
    Mon souci :

    Ce programme fonctionne très bien sur mon Excel 2007. Quand je l'utilise sur Excell 2010, l'userform est réduite à sa plus petite expression.

    Sous excell 2007 , application.width et .height fonctionnent en récupérant la taille de l'écran
    Sous excell 2010, ils renvoient que des versions minimales d'une Userform (je ne vois donc qu'un confeti de mon Userform).

    Est-ce un problème de version excel comme je le soupçonne ?
    Comment modifier mes procédures pour que l'affichage plein écran fonctionne quelle que soit la version Excell utilisée ?

    Merci d'avance.

    Question subsidiaire : lorsque je passe d'une userform à une autre, on voit mes onglets excel qui apparaissent et ça ne donne pas un super rendu même en essayant d'insérer des application.screenupdating :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Private sub_fermeture_fenetre1
     
    application.screenupdating = false
     
    Unload USF_Fenetre1
    USF fenetre2.show
     
    application.screenupdating = true
     
    end sub
    Comment ne pas faire "sauter" l'image et faire un liant parfait entre différentes Userform qui "normalement" sont en plein écran.

    Merci d'avance


    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,

    Pour le problème sur la version 2010 je ne peux pas te répondre, je n'ai pas cette version.

    Pour l'enchaînement des deux UserForm, une solution serait d'afficher le premier en mode Non Modal UserForm1.Show 0 et d'afficher le second par dessus sans décharger le premier.

Discussions similaires

  1. Affichage plein écran MDIChild
    Par Xav++ dans le forum C++Builder
    Réponses: 6
    Dernier message: 21/11/2006, 20h53
  2. affichage plein écran
    Par Davik dans le forum Access
    Réponses: 2
    Dernier message: 13/04/2006, 14h44
  3. Affichage plein écran en multi-écrans
    Par Martin Guélat dans le forum Périphériques
    Réponses: 4
    Dernier message: 12/04/2006, 11h20
  4. affichage plein écran
    Par TERRIBLE dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/11/2005, 00h54
  5. affichage plein écran d'un formulaire
    Par le géologue dans le forum IHM
    Réponses: 6
    Dernier message: 17/10/2005, 10h29

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