XL 2010 double clic barre de titre

cajuba

XLDnaute Nouveau
Bonjour,
J'ai un fichier qui au démarrage modifie l'affichage normal, bloque la touche ECHAP et le clique droit sur la feuille TEST
J'ai récupéré les codes sur le net, si modifs à apporter n'hésitez pas ….

Je voudrais que lorsqu'on clique 2 fois dans la barre de titre, l'affichage de démarrage ne se modifie pas

J'ai également un bouton "Ecran normal " qui remet l'écran à la normal
et un bouton "écran au démarrage"qui ne fonctionne pas (si vous avez une idée, je prends)
Merci de votre aide
 

Pièces jointes

  • double clic barre de titre.xlsm
    33.3 KB · Affichages: 19
Solution
bonsoir tout les deux
quand je pense qu'avec ceci plus besoins de s'occuper de touche ou menu ou quoi que ce soit
un bouton dans la feuille ou ce même code dans une sub (la même pour les deux modes )
et roulement de tambour SANS API!!!!!! SANS DISPLAYFULLSCREEN !!!!!
VB:
Private Sub CommandButton2_Click()

    With ActiveWindow
        .DisplayHeadings = Not .DisplayHeadings
        .DisplayWorkbookTabs = Not .DisplayWorkbookTabs
        .DisplayVerticalScrollBar = Not .DisplayVerticalScrollBar
        .DisplayHorizontalScrollBar = Not .DisplayHorizontalScrollBar
    End With

    With Application
        .DisplayStatusBar = Not .DisplayStatusBar
        .DisplayFormulaBar = Not .DisplayFormulaBar
        .ExecuteExcel4Macro...

cajuba

XLDnaute Nouveau
Merci pierrejean, impecc
Pour la barre de titre, en fait une idée, il faudrait que je fasse un code :
si l'écran devient normal, appliquer la macro de démarrage mais après j'ai peur d'être en boucle et ne pouvoir jamais reprendre la main ….
 

fanch55

XLDnaute Barbatruc
Salut à Tous,
Version 32/64bits de celle de @pierrejean
Pour le Double-clic, il existe des Api qui peuvent neutraliser le Double-clic sur la fenêtre Excel,
cependant, ce n'est pas stable du tout et peut même freezer l'application :

J'ai ajouté:
une variable publique "Normal" qui est à False en Fullscreen
une proc Workbook_WindowResize qui force le openworkbook si on est pas en mode "Normal".

En cas de doubleClick sur la barre de titre, l'affichage se réduit et se remet en full Screen , ce n'est pas forcément convivial visuellement mais c'est efficace .
 

Pièces jointes

  • Copie de double clic barre de titre-1.xlsm
    26.3 KB · Affichages: 19

patricktoulon

XLDnaute Barbatruc
re
je n'ai qu'un conseil à donner
si vous voulez interdire le mode fenêtre de l'application et donc forcer le plein écran (display ruban et dysplay barsetc... ,ou pas ) ne surtout pas utiliser displayfullscreen=true( la belle erreur ;) )
car il est contournable de 36 manières différentes
et il offre d'autre moyen pour ce contourner lui meme que l'on a pas quand on est fenêtre maximiséee
et surtout depuis xl 2013 ou la gestion des fenêtres a changé peut être même 2010 je crois

après il y a divers moyens de faire ce que vous voulez avec ou sans api
 
Dernière édition:

cajuba

XLDnaute Nouveau
Merci patricktoulon et pas merci car après essai, en effet la fenêtre peut se réduire mais tout reste bloqué malgré tout, ce qui est une bonne chose.
Cependant étant débutante, et surtout avec les code API, si vous avez un code ..... ce serait super cool de m'éclairée
Après vérif, j'ai la version 2013
 

patricktoulon

XLDnaute Barbatruc
Bonjour cajuba
et oui moi ausii j'ai 2013 et c'est pas du gateau certaine api que j'ai toujours utilisé ne sont plus opérante
aux grands maux les grands remèdes si tu veux on vire la barre de titre de l'app et basta ;)
la modif est simple
sinon c'est cotton
 

fanch55

XLDnaute Barbatruc
Salut à Tous,
Il est vrai que le displayfullscreen=true est facilement contournable par divers moyens .

en restant appuyé sur le reste de la caption en haut tirez vers le bas
surprise surprise ;)

Un palliatif :
VB:
Private Sub Workbook_WindowResize(ByVal Wn As Window)
    Select Case True
        Case Normal:  ' rien
        Case Application.WindowState <> xlMaximized
            Application.WindowState = xlMaximized
        Case Not Application.DisplayFullScreen: openworkbook
    End Select
End Sub

Je regarde pour un code avec Api qui ne soit pas trop destructeur/invasif .... o_O
 

patricktoulon

XLDnaute Barbatruc
ben c'est simple fanch55
fait ces remplacement
VB:
 'SetWindowLongPtr hwnd, -16, GetWindowLongPtr(hwnd, -16) And &HFFF7FFFF'je bloquue cela
        SetWindowLongPtr hwnd, -16, &H16070000 ' que je remplace par ceci



VB:
'SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) And &HFFF7FFFF 'je bloquue cela
  SetWindowLongA hwnd, -16, &H16070000 ' que je remplace par ceci

et basta la caption ;)
 

patricktoulon

XLDnaute Barbatruc
re
tu veux un truc non invasif avec une seule api !!!????
ben voila
regarde comment je fait peter le ruban
joint ces deux sub a deux boutons ou au moins la sub normal pour revenir
plus besoins de surveiller la caption , la touche esc
VB:
Option Explicit
#If VBA7 Then
    Private Declare PtrSafe Function SetWindowLongA Lib "user32" (ByVal hwnd As LongPtr, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPtr
    'on vire !!!!
    'Private Declare Function FindWindowA Lib "User32" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
    'Private Declare PtrSafe Function ShowWindow Lib "user32" (ByVal hwnd As LongPtr, ByVal nCmdShow As Long) As LongPtr
#Else
    Private Declare Function SetWindowLongA Lib "user32" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    'on vire !!!!
    'Private Declare Function FindWindowA Lib "User32" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    'Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
#End If

Sub opening()

'Dim hwnd&' on vire!!!!
'hwnd = FindWindowA(vbNullString, Application.Caption)' on vire!!!
    With Application
        '.DisplayFullScreen = True' on vire!!!!
        .ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",false)"    'voila comment on vire le ruban
        .DisplayStatusBar = False
        .DisplayFormulaBar = False
        .WindowState = xlMaximized  'si tu veux plein ecran
    End With

    With ActiveWindow    ' vire les display
        '.DisplayHeadings = False
        .DisplayWorkbookTabs = False
        .DisplayVerticalScrollBar = False
        .DisplayHorizontalScrollBar = False
    End With
    
    SetWindowLongA Application.hwnd, -16, &H16070000 ' in ONE SHOT!!!!!!!!!!!!!
End Sub
Sub normal()
    With Application
        '.DisplayFullScreen = False'on vire!!!
        .ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",true)"    'voila comment on récupere  le ruban
        .DisplayStatusBar = True
        .DisplayFormulaBar = True
        .WindowState = xlNormal    ' mode fenetre
    End With

    With ActiveWindow
        .DisplayHeadings = True
        .DisplayWorkbookTabs = True
        .DisplayVerticalScrollBar = False
        .DisplayHorizontalScrollBar = False
    End With

End Sub

;)
 

Discussions similaires

Réponses
21
Affichages
1 K

Statistiques des forums

Discussions
311 733
Messages
2 082 015
Membres
101 870
dernier inscrit
Dethomas