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 :

Problème affichage Excel Application.Height/Application.Width


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut Problème affichage Excel Application.Height/Application.Width
    Bonjour tout le monde,

    Voila, j'ai récemment posté un problème que je pensais avoir réglé.

    http://www.developpez.net/forums/sho...d.php?t=255169

    Mais le problème demeure toujours.
    Pour le moment, j'ai résolu mon problème.
    Effectivement pour laisser mes onglets actifs, j'ai du laisser tomber les méthodes :

    Application.Height = (strHeight * 2) / 3

    Application.Width = (strWidth * 2) / 3

    Mais comme je suis curieux de nature , si vous pouvez m'aider à afficher les onglets et mon application avec ces méthodes, je suis vivement intéressé.

  2. #2
    Membre éclairé
    Avatar de Theocourant
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 618
    Points : 739
    Points
    739
    Par défaut
    Bonjour,

    Sache que du moment où tu indiques que c'est urgent les gens auront tendance à prendre tout leur temps pour te répondre voire ne répondront pas du tout...
    De plus si tu as déjà un sujet à ce propos pourquoi ne pas continuer dessus ????

    +

    Théo

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    +1 à ce que vient de mettre Théo (salut Théo, bonne année)
    Je n'ai rien compris à ton pb, paloma, puisque tu dis qu'il est résolu... mais bon, comme j'ai ça dans un coin, regarde si ça peut te servir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        With ActiveWindow
            .WindowState = xlNormal
            .Height = 500
            .Width = 800
            'et pour centrer ta fenêtre :
            .Top = (Application.UsableWidth - .Width) / 2
            .Left = (Application.UsableHeight - .Height) / 2
     
        End With
    A+

  4. #4
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut
    Bon j'ai lu le code à l'instant.

    Citation Envoyé par ouskel'n'or
    Je n'ai rien compris à ton pb, paloma, puisque tu dis qu'il est résolu... mais bon, comme j'ai ça dans un coin, regarde si ça peut te servir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        With ActiveWindow
            .WindowState = xlNormal
            .Height = 500
            .Width = 800
            'et pour centrer ta fenêtre :
            .Top = (Application.UsableWidth - .Width) / 2
            .Left = (Application.UsableHeight - .Height) / 2
     
        End With
    A+
    Mon problème est différent.

    Je cherche à récupérer la taille de l'écran, ça c'est bon.
    J'aimerais que mon application, s'affiche au 2/3 de cette résolution et centre, ça c'est bon.
    Mais j'aimerais que les onglets soient affichés aussi, et la ça marche pas, il m'affiche un code erreur sur apllication.height

    Bon je cherche encore, si je trouve, je posterais la solution pour ceux que ça intéresse.

    Bien à vous.

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Citation Envoyé par Paloma
    J'aimerais que mon application, s'affiche au 2/3 de cette résolution et centre, ça c'est bon.
    Mais j'aimerais que les onglets soient affichés aussi
    Je ne comprends pas. Mon code est censé formater les feuilles de calculs, pas l'appli... Alors... ?
    Passe ton code qu'on comprenne
    A+

    Pour effacer son propre message il ne doit pas avoir reçu de réponse... si ça fonctionne toujours comme l'ancien forum (?)

  6. #6
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut
    Voici le code en question :

    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    '***************************************
    ' CATIA .CvS Generator File Name
    ' Version 1.1b beta
    ' created by pdubernet on 2007
    '
    '
    ' please contact your administrator or
    ' 
    ' 
    '***************************************
    Public strXlsFullName As String
     
    Private Declare Function FindWindowA Lib "user32" _
    (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function GetWindowLongA Lib "user32" _
    (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    Private Declare Function SetWindowLongA Lib "user32" _
    (ByVal hwnd As Long, ByVal nIndex As Long, _
    ByVal dwNewLong As Long) As Long
     
    Private Declare Function apiGetSys Lib "user32" Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long
     
    Sub Apparance()
    Dim xls As Excel.Workbook
     
    xls.DisplayFormulaBar = False
    xls.Caption = "ASSYSTEM FRANCE"
    ActiveWindow.Caption = ".CsV GENERATOR"
    'Incorrect
    MsgBox Application.Caption & " " & ActiveWindow.Caption
    'Correct
    MsgBox Application.Caption
    End Sub
     
     
    Private Sub Workbook_Open()
     
    'désactive les boutons fermer plein écran et réduire d'excel
    Dim hwnd As Long
     
    hwnd = FindWindowA(vbNullString, Application.Caption)
    SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) And &HFFF7FFFF
     
    Dim strHeight As Integer
    Dim strWidth As Integer
     
    strHeight = apiGetSys(1)
    strWidth = apiGetSys(0)
     
     
    'Application.DisplayFullScreen = True
     
    ' désactive la barre de formule
    Application.DisplayFormulaBar = False
     
    'désactive le menu
    Application.CommandBars(1).Enabled = True
     
    'active les onglets des feuilles
    ActiveWindow.DisplayWorkbookTabs = True
     
    'désactive les barres d'outil
    Dim CmdB As CommandBar
    For Each CmdB In Application.CommandBars
    CmdB.Enabled = False
    Next CmdB
    'désactive l'entête des colonnes et lignes
    ActiveWindow.DisplayHeadings = False
     
    'affichage de la "feuille"
    'Application.Height = (strHeight * 2) / 3
     
    'Application.Width = (strWidth * 2) / 3
     
            'Protège la feuille
            ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
            ActiveSheet.EnableSelection = xlNoSelection
     
    Sheets("Memory").Cells(2, 5) = ActiveWorkbook.FullName
     
     
    strXlsFullName = ActiveWorkbook.FullName 'ActiveWorkbook.FullName
     
        frmSplash.Show
    End Sub
     
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
     
    'désactive la vue en plein écran
    'Application.DisplayFullScreen = False
     
    'réactive le menu
    Application.CommandBars(1).Enabled = True
     
    ' réactive la barre de formule
    Application.DisplayFormulaBar = True
     
    'réactive les onglets des feuilles
    'ActiveWindow.DisplayWorkbookTabs = True
     
    'réactive l'entête des colonnes et lignes
    ActiveWindow.DisplayHeadings = True
     
    'réactive les boutons fermer plein écran et réduire d'excel
    Dim hwnd As Long
    hwnd = FindWindowA(vbNullString, Application.Caption)
    SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) Or &H80000
     
    'réactive les barres d'outil
    Dim CmdB As CommandBar
    For Each CmdB In Application.CommandBars
    CmdB.Enabled = True
    Next CmdB
     
     
    End Sub
    Et si j'active ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'affichage de la "feuille"
    Application.Height = (strHeight * 2) / 3
     
    Application.Width = (strWidth * 2) / 3
    ben avec ça actif :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'active les onglets des feuilles
    ActiveWindow.DisplayWorkbookTabs = True
    le code plante alors que sans ce dernier ça passe...

    Je suis désolé mais je ne comprend pas pourquoi?
    J'ai peut-être fait une erreur?

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Et si tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Windows(1).WindowState = xlMaximized
    il se passe quoi ?

  8. #8
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut
    Pareil ....



    bon je repasse tout à l'heure car j'ai un entretien pour un job.

    C'est important car je serais au chomage fin janvier.

    @ plus ouskel'n'or et Merci

  9. #9
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    t'es sure que Application.Height n'est pas en lecture seule ?

    Moi je travaillerais plutôt sur Application.WindowState

  10. #10
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    C'est la question que je me posais, dans l'aide Application.Height est en lecture/écriture mais parfois, elle raconte des bêêêtises. Faudrait un plus savant pour confirmer/infirmer ça

  11. #11
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Je viens de trouver ça dans l'aide, à Height, propriété d'application
    Hauteur de la fenêtre d'application principale. Sur Macintosh, elle est toujours égale à la hauteur totale de l'écran (en points). Sur un Macintosh, l'utilisation d'une valeur différente n'aura aucun effet. Dans Windows, si la fenêtre est réduite, cette propriété est accessible en lecture-seule et indique la hauteur de l'icône. Si la fenêtre est agrandie, cette propriété ne peut pas être définie. Utilisez la propriété WindowState pour déterminer l'état de la fenêtre.
    Cafeine a encore frappé

  12. #12
    Invité
    Invité(e)
    Par défaut


    Si je regarde l'aide dans VBA, je trouve :
    Propriété Height telle qu'elle s'applique à l'objet Application.
    Hauteur de la fenêtre d'application principale. Si la fenêtre est réduite, cette propriété est en lecture seule et se réfère à la hauteur de l'icône. Si la fenêtre est agrandie, cette propriété ne peut être définie. Utilisez la propriété WindowState pour déterminer l'état de la fenêtre. Type de données Double en lecture-écriture.
    J'ai donc utilisé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.WindowState = xlNormal
    Et là, ca maaaarche ...

    Voici le début du code :
    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
    Private Sub Workbook_Open()
     
    'désactive les boutons fermer plein écran et réduire d'excel
    Dim hwnd As Long
     
    hwnd = FindWindowA(vbNullString, Application.Caption)
    'SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) And &HFFF7FFFF
     
    Dim strHeight As Single
    Dim strWidth As Single
     
    strHeight = apiGetSys(1)
    strWidth = apiGetSys(0)
     
    ' Mettre la fenêtre en mode NoFull
    Application.WindowState = xlNormal
    ' Ensuite redimensionner l'application
    Application.Height = (strHeight * 2) / 3
    Application.Width = (strWidth * 2) / 3
     
    ...
    Voilà

  13. #13
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut
    Bonjour et bonne semaine à vous tous,

    et surtout merci à :

    - BrunoM45
    - ouskel'n'or
    - cafeine

    Je suis désolé de n'avoir pu repasser sur le forum après mon entretien de vendredi.
    Effectivement, je suis rentré très tard chez moi.

    C'est avec ravissement que j'ai pu lire vos correspondances ce matin.
    Je vous remercie donc à tous pour votre persévérance et votre sollicitude.

    Voici donc le code final mais en fait il n'y a rien à rajouter par rapport à ce qui a été dit :

    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    '***************************************
    ' CATIA .CvS Generator File Name
    ' Version 1.1b beta
    ' created by pdubernet on 2007
    '
    '
    ' please contact your administrator or
    ' euberti@assytem.com
    ' pdubernet@assystem.com
    '***************************************
    Public strXlsFullName As String
     
    Private Declare Function FindWindowA Lib "user32" _
    (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function GetWindowLongA Lib "user32" _
    (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    Private Declare Function SetWindowLongA Lib "user32" _
    (ByVal hwnd As Long, ByVal nIndex As Long, _
    ByVal dwNewLong As Long) As Long
     
    Private Declare Function apiGetSys Lib "user32" Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long
     
    Sub Apparance()
    Dim xls As Excel.Workbook
     
    xls.DisplayFormulaBar = False
    xls.Caption = "ASSYSTEM FRANCE"
    ActiveWindow.Caption = ".CsV GENERATOR"
    'Incorrect
    MsgBox Application.Caption & " " & ActiveWindow.Caption
    'Correct
    MsgBox Application.Caption
    End Sub
     
     
    Private Sub Workbook_Open()
     
    'désactive les boutons fermer plein écran et réduire d'excel
    Dim hwnd As Long
     
    hwnd = FindWindowA(vbNullString, Application.Caption)
    SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) And &HFFF7FFFF
     
    'Windows(1).WindowState = xlMaximized
    Dim strHeight As Integer
    Dim strWidth As Integer
     
    strHeight = apiGetSys(1)
    strWidth = apiGetSys(0)
     
    ' Mettre la fenêtre en mode NoFull
    Application.WindowState = xlNormal
    ' Ensuite redimensionner l'application
    Application.Height = (strHeight * 2) / 3
    Application.Width = (strWidth * 2) / 3
     
     
    'Application.DisplayFullScreen = True
     
    ' désactive la barre de formule
    Application.DisplayFormulaBar = False
     
    'désactive le menu
    Application.CommandBars(1).Enabled = True
     
    'active les onglets des feuilles
    ActiveWindow.DisplayWorkbookTabs = True
     
    'désactive les barres d'outil
    Dim CmdB As CommandBar
    For Each CmdB In Application.CommandBars
    CmdB.Enabled = False
    Next CmdB
    'désactive l'entête des colonnes et lignes
    ActiveWindow.DisplayHeadings = False
     
    'affichage de la "feuille"
    Application.Height = (strHeight * 2) / 3
     
    Application.Width = (strWidth * 2) / 3
     
            'Protège la feuille
            ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
            ActiveSheet.EnableSelection = xlNoSelection
     
    Sheets("Memory").Cells(2, 5) = ActiveWorkbook.FullName
     
     
    strXlsFullName = ActiveWorkbook.FullName 'ActiveWorkbook.FullName
     
        frmSplash.Show
    End Sub
     
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
     
    'désactive la vue en plein écran
    'Application.DisplayFullScreen = False
     
    'réactive le menu
    Application.CommandBars(1).Enabled = True
     
    ' réactive la barre de formule
    Application.DisplayFormulaBar = True
     
    'réactive les onglets des feuilles
    'ActiveWindow.DisplayWorkbookTabs = True
     
    'réactive l'entête des colonnes et lignes
    ActiveWindow.DisplayHeadings = True
     
    'réactive les boutons fermer plein écran et réduire d'excel
    Dim hwnd As Long
    hwnd = FindWindowA(vbNullString, Application.Caption)
    SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) Or &H80000
     
    'réactive les barres d'outil
    Dim CmdB As CommandBar
    For Each CmdB In Application.CommandBars
    CmdB.Enabled = True
    Next CmdB
     
     
    End Sub

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

Discussions similaires

  1. [XL-2003] Problème affichage excel 2003
    Par Grouik1er dans le forum Excel
    Réponses: 6
    Dernier message: 12/10/2012, 15h35
  2. [WD-2007] Problème CreateObject("Excel.Application") Windows 7
    Par Isa31 dans le forum VBA Word
    Réponses: 13
    Dernier message: 09/07/2012, 14h17
  3. Réponses: 8
    Dernier message: 20/07/2010, 12h25
  4. Problème affichage application wxWidgets
    Par AuraHxC dans le forum wxWidgets
    Réponses: 33
    Dernier message: 26/02/2007, 18h32
  5. [C] Problèmes affichage application console
    Par Arnaud Giuliani dans le forum MFC
    Réponses: 3
    Dernier message: 19/10/2005, 09h28

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