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 :

Modification code pour Excel en Plein Ecran [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Invité
    Invité(e)
    Par défaut Modification code pour Excel en Plein Ecran
    Bonjour,

    Je sais ce sujet a déjà été traité. J'ai testé pas mal de codes, avec certains j'ai eu quelques soucis.

    Le code mis à notre disposition pas PMO2017 (que je remercie beaucoup pour sa gentillesse), me convient à peu de choses près.
    Si j'ai bien compris ce code fait appel aux "API", que je n'ose pas manipuler vu mes maigres connaissances en programmation.

    Donc ce code, affiche excel en plein écran dés l'ouverture de mon fichier.
    La barre des titres d'excel n'est pas visible par contre la barre des formules l'est.
    Je voudrais inverser ceci, c'est à dire rendre la barre des formules non visible et la barre de titre d'excel visible.

    Je voudrais qu'excel reste tout le temps en plein écran malgré la navigation entre feuilles par boutons.

    En vous remerciant.

    Cordialement,

    ps: le fichier se mettra en plein écran à l'ouverture, j'ai mis un bouton de sortie du mode plein écran.

    voici le 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
    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
    'Adaptation Source : Ivan F Moala
    'http://www.mrexcel.com/forum/excel-questions/6148-possible-hide-excel-title-bar.html
     
    Private Declare Function FindWindow& Lib "user32" Alias "FindWindowA" ( _
      ByVal lpClassName As String, ByVal lpWindowName As String)
    Private Declare Function SetWindowLong& Lib "user32" Alias "SetWindowLongA" ( _
      ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long)
    Private Declare Function GetWindowLong& Lib "user32" Alias "GetWindowLongA" ( _
      ByVal hwnd As Long, ByVal nIndex As Long)
     
    Private Const GWL_STYLE = (-16)
    Private Const WS_CAPTION = &HC00000
    Private Const WS_MAXIMIZEBOX = &H10000
    Private Const WS_MINIMIZEBOX = &H20000
    Private Const WS_SYSMENU = &H80000
     
    Private 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)
     
    Private Enum ESetWindowPosStyles
      SWP_SHOWWINDOW = &H40
      SWP_HIDEWINDOW = &H80
      SWP_FRAMECHANGED = &H20
      SWP_NOACTIVATE = &H10
      SWP_NOCOPYBITS = &H100
      SWP_NOMOVE = &H2
      SWP_NOOWNERZORDER = &H200
      SWP_NOREDRAW = &H8
      SWP_NOREPOSITION = SWP_NOOWNERZORDER
      SWP_NOSIZE = &H1
      SWP_NOZORDER = &H4
      SWP_DRAWFRAME = SWP_FRAMECHANGED
      HWND_NOTOPMOST = -2
    End Enum
     
    Private Declare Function GetWindowRect& Lib "user32" ( _
      ByVal hwnd As Long, lpRect As RECT)
     
    Private Type RECT
      Left As Long
      Top As Long
      Right As Long
      Bottom As Long
    End Type
     
    Sub Title_Show()
    ShowTitleBar True
    Application.OnKey "{ESC}"
    End Sub
     
    Sub Title_Hide()
    ShowTitleBar False
    Application.OnKey "{ESC}", "ToucheEscape"
    End Sub
     
    Sub ToucheEscape(Optional dummy As Byte)
    '/// Procédure vide mais nécessaire pour le contrôle de la touche Escape (Echap) ///
    End Sub
     
    Sub ShowTitleBar(bShow As Boolean)
    Dim lStyle As Long
    Dim tRect As RECT
    Dim sWndTitle As String
    Dim xlhnd
    '// Untested should perhaps look for the class ?!
    sWndTitle = "Microsoft Excel - " & ActiveWindow.Caption
    xlhnd = FindWindow(vbNullString, sWndTitle)
    '// Get the window's position:
    GetWindowRect xlhnd, tRect
    '// Show the Title bar ?
    If Not bShow Then
      lStyle = GetWindowLong(xlhnd, GWL_STYLE)
      lStyle = lStyle And Not WS_SYSMENU
      lStyle = lStyle And Not WS_MAXIMIZEBOX
      lStyle = lStyle And Not WS_MINIMIZEBOX
      lStyle = lStyle And Not WS_CAPTION
    Else
      lStyle = GetWindowLong(xlhnd, GWL_STYLE)
      lStyle = lStyle Or WS_SYSMENU
      lStyle = lStyle Or WS_MAXIMIZEBOX
      lStyle = lStyle Or WS_MINIMIZEBOX
      lStyle = lStyle Or WS_CAPTION
    End If
    SetWindowLong xlhnd, GWL_STYLE, lStyle
    Application.DisplayFullScreen = Not bShow
    '// Ensure the style is set and makes the xlwindow the
    '// same size, regardless of the title bar.
    SetWindowPos xlhnd, 0, tRect.Left, tRect.Top, tRect.Right - tRect.Left, _
      tRect.Bottom - tRect.Top, SWP_NOREPOSITION Or SWP_NOZORDER Or SWP_FRAMECHANGED
    End Sub
    Fichiers attachés Fichiers attachés
    Dernière modification par cathodique ; 24/12/2013 à 14h48. Motif: omission

  2. #2
    Invité
    Invité(e)
    Par défaut
    Re,

    J'ai complété le code, Existe-t-il une écriture équivalente de ces 2 lignes en API
    Application.DisplayFormulaBar = False
    ActiveWindow.DisplayHeadings = False
    Ainsi ça semble bien fonctionner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Title_Show()
    ShowTitleBar True
    Application.DisplayFormulaBar = True
    ActiveWindow.DisplayHeadings = True
    Application.OnKey "{ESC}"
    End Sub
     
    Sub Title_Hide()
    ShowTitleBar False
    Application.DisplayFormulaBar = False
    ActiveWindow.DisplayHeadings = False
    Application.OnKey "{ESC}", "ToucheEscape"
    End Sub
    En vous remerciant pour votre aide.

    Cordialement,

  3. #3
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Points : 1 499
    Points
    1 499
    Par défaut modification code plein ecran
    bonjour,

    et sans rentrer dans les api mais uniquement en jouant sur les options avancées cela ne suffit-il pas.

    dans le fichier joint le cocode est dans thisworkbook

    Cordialement,
    Fichiers attachés Fichiers attachés

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour Nibledispo,

    sans rentrer dans les api mais uniquement en jouant sur les options avancées cela ne suffit-il pas.
    En effet, ça aurait pu être largement suffisant. Me considérant comme débutant, le code que j'ai trouvé sur le forum m'a plu pour plusieurs raisons.

    La touche "Echap" est inhibée (j'ai prévu un bouton de sortie), le code est rapide, à la fermeture du fichier les options par défauts d'excel sont rétablies.

    De plus dans le module workbook_open, j'y ai mis un code pour activer certaines bibliothèques. Mon fichier semble bien fonctionner.

    Je crains l'abimer en y ajoutant du code surtout dans ce module (workbook_open).

    En parcourant le forum, il parait que le spécialiste des APIs est Patricktoulon, j'essaierai de lui poser la question si je n'ai pas de réponse d'ici quelques jours.

    Cher collègue, je vous remercie beaucoup pour aide.

    Joyeuses fêtes de fin d'année.

    Cordialement,

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Après quelques jours de recherches et de tatonnements, j'ai ce code qui semble bien fonctionner pour mes besoins. Je vous le soumets pour critique et éventuellement à améliorer car mes compétences en VBA sont très sommaires.
    Dans ThisWorkbook mettre ces 2 macros
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Sub auto_open()
    Plein_Ecran
    End Sub
    Sub auto_close()
    Ecran_Normal
    End Sub
    Dans un module standard
    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
    Sub Plein_Ecran()
    ActiveWindow.DisplayHeadings = False        'Masquer entete ligne colonne
    Application.DisplayScrollBars = False       'Masquer barre defilement
    Application.DisplayFormulaBar = True        'Masquer barre formules
    ActiveWindow.DisplayWorkbookTabs = False    'Masquer onglets
    Application.DisplayFullScreen = True        'Afficher plein ecran
    'ActiveWindow.DisplayGridlines = False       'Masquer cadrillage
     
    Application.EnableCancelKey = xlDisabled
    End Sub
     
    Sub Ecran_Normal()
    ActiveWindow.DisplayHeadings = True         'Afficher entete ligne colonne
    Application.DisplayScrollBars = True        'Afficher barre defilement
    Application.DisplayFormulaBar = False         'Afficher barre formules
    ActiveWindow.DisplayWorkbookTabs = True     'Afficher onglets
    Application.DisplayFullScreen = False       'Afficher ecran mode normal
    'ActiveWindow.DisplayGridlines = True        'Afficher cadrillage
     
    Application.EnableCancelKey = xlInterrupt
    End Sub
    En vous remerciant.

    Cordialement,

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut heu....
    Bonjour cathodique
    je constate que mes petits modules font leurs petits chemin
    bien que celui la il commence a dater regarde dans les récente discutions il y a eu un sujet similaire au quel j'ai apporté une solution
    la titre de la discution est "masquer barre titre "
    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

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonsoir Patricktoulon,

    En effet, tes modules ont fait leur chemin. J'envisageais de te solliciter pour me venir en aide. Mais vu que nous sommes en pleine périodes de fêtes, j'ai reporté cela à plus tard dans le cas où je ne trouverai pas de solution.

    J'ai eu quelques soucis en utilisant certains codes que j'ai trouvé dans différentes discussions relatives à ce sujet. Comme par exemple, quand j'ouvre par double-clic des fichiers excel, il s'ouvre tous dans la même fenêtre. Dans la barre des tâches de Windows, je n'ai qu'une seule fois excel. Alors qu'auparavant, j'avais pour chaque fichier ouvert son icône dans la barre des tâche (la barre du bas où il y a "démarrer".

    Je vais faire une recherche pour trouver ta plus récente discussion. Merci beaucoup pour ton retour. Mon présent code fonctionne apparemment bien. Etant "un développeur du dimanche", je suis intéressé pour apprendre un peu plus à ce sujet et est-ce que mon code est fiable?

    Joyeuses fêtes de fin d'année et Bonne année 2014.

    Cordialement,

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    J'ai regardé tes contributions, je tenais à te dire bravo. J'ai testé mon bout de code sur plusieurs fichiers, il donne un bon résultat.
    N'ayant pas eu de retour, je libère la discussion.

    Bonne année 2014.

    Cordialement,

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

Discussions similaires

  1. Modif code pour PIC 16F84A
    Par bg94000 dans le forum Autres architectures
    Réponses: 1
    Dernier message: 15/01/2013, 17h54
  2. Modification code VB excel et création nouveau classeur
    Par domes85 dans le forum Général VBA
    Réponses: 4
    Dernier message: 13/01/2012, 11h41
  3. modification Code pour passer un exe en dll
    Par ehkhalid dans le forum C++
    Réponses: 4
    Dernier message: 23/01/2010, 10h38
  4. [E-07] Ouvrir excel en plein ecran
    Par chrnoe dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 12/01/2009, 14h33
  5. Affichage classeur excel en plein ecran
    Par didou78 dans le forum Excel
    Réponses: 5
    Dernier message: 17/12/2007, 10h58

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