XL 2010 double clic barre de titre

  • Initiateur de la discussion Initiateur de la discussion cajuba
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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...
allez je sais que tu a la flemme mais..
je te propose d’être un voyou et de ne pas déclarer les api 😛 😛 😛 😛

toujours une seule api mais sans la déclarer compatible 32/64
VB:
Option Explicit

Sub opening()

'Dim hwnd&' on vire!!!!
'hwnd = FindWindowA(vbNullString, Application.Caption)' on vire!!!
    ExecuteExcel4Macro ("CALL(""user32"",""SetWindowLongA"",""JJJJJ""," & Application.hwnd & ", " & -16 & ", " & &H16070000 & ")")     'api SetWindowLongA
 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
  
   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
là pour le coup t'tranquille 😉
 
Bien vu Pat,
cela fonctionne mais... 😉 (trop boooo)
Les classeurs qu'on ouvre après celui-ci tant qu'il est actif, héritent de l'état applicatif ( pas de ruban,etc... mais titre de fenêtre quand même)

Un autre effet collatéral si on a la barre des taches en masquage automatique fait que celle-ci n'est visible qu'en appuyant sur la touche Windows (scrogneugneu, je chipote ...)

Mais je pense que ta solution est à conseiller.
Maintenant je vais à la Pétanque, à plus.😎
 
a ben oui tout ce que tu fait sur l'application a partir d'un classeur et valable sur tout les classeur de l'instance a moins d'y ajouter le deactivate dans le thisworkbook

et maintenant une seule api une seule sub sans déclaration

tu la lance pour les deux modes 😉
VB:
Sub trucbidulechouette()
    With Application
        If CommandBars("Ribbon").Visible Then
            ExecuteExcel4Macro ("CALL(""user32"",""SetWindowLongA"",""JJJJJ""," & Application.hwnd & ", " & -16 & ", " & &H16070000 & ")")     'api SetWindowLongA
        End If
        .ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon""," & Abs(Not CommandBars("Ribbon").Visible) & ")"    'voila comment on vire le ruban
        .DisplayStatusBar = Not .DisplayStatusBar
        .DisplayFormulaBar = Not .DisplayFormulaBar
        .WindowState = IIf(.WindowState <> xlNormal, xlNormal, xlMaximized)   'si tu veux plein ecran
    End With

    With ActiveWindow    ' vire les display
        .DisplayWorkbookTabs = Not .DisplayWorkbookTabs
        .DisplayVerticalScrollBar = Not .DisplayVerticalScrollBar
        .DisplayHorizontalScrollBar = Not .DisplayHorizontalScrollBar
    End With

End Sub
tu voulais du pas trop invasif
ben là t'servi 😛 😛 😛 😛 😛
bonne partie pétanque😉
j’arrête moi aussi si ça continue je vais coder a blanc 😛😛😛😀😀😀😀
 
De retour …...
Juste une remarque avec la dernière proposition : "une seule api une seule sub sans déclaration"
ça cache la barre de tache de Windows, c'est possible d'avoir tout pareil avec la barre de tache apparente pour pouvoir jongler entre applications ?
 
bonsoir en fait ca depend si la fentre est maximisée au depart ca le fait aussi avec displayfullscreen
VB:
Sub trucbidulechouette()
    With Application
        If CommandBars("Ribbon").Visible Then
            ExecuteExcel4Macro ("CALL(""user32"",""SetWindowLongA"",""JJJJJ""," & Application.Hwnd & ", " & -16 & ", " & &H16070000 & ")")     'api SetWindowLongA
        End If
        .DisplayFullScreen = Not .DisplayFullScreen
        If .DisplayFullScreen Then .OnKey ("{ESC}"), "keyvide" Else .OnKey ("{ESC}")
        CommandBars("cell").Controls(CommandBars("cell").Controls.Count - 1).Enabled = Not .DisplayFullScreen
    End With
    With ActiveWindow    ' vire les display
        .DisplayWorkbookTabs = Not .DisplayWorkbookTabs
        .DisplayVerticalScrollBar = Not .DisplayVerticalScrollBar
        .DisplayHorizontalScrollBar = Not .DisplayHorizontalScrollBar
    End With
End Sub
Sub keyvide(): End Sub
 
re
VB:
Sub trucbidulechouette()
    With Application
        If CommandBars("Ribbon").Visible Then
            ExecuteExcel4Macro ("CALL(""user32"",""SetWindowLongA"",""JJJJJ""," & Application.Hwnd & ", " & -16 & ", " & &H16070000 & ")")     'api SetWindowLongA
        End If
        .DisplayFullScreen = Not .DisplayFullScreen
        If .DisplayFullScreen Then .OnKey ("{ESC}"), "keyvide" Else .OnKey ("{ESC}")
        'CommandBars("cell").Controls(CommandBars("cell").Controls.Count - 1).Enabled = Not .DisplayFullScreen
    CommandBars("cell").Enabled = Not .DisplayFullScreen
    
    End With
    With ActiveWindow    ' vire les display
        .DisplayWorkbookTabs = Not .DisplayWorkbookTabs
        .DisplayVerticalScrollBar = Not .DisplayVerticalScrollBar
        .DisplayHorizontalScrollBar = Not .DisplayHorizontalScrollBar
    End With
End Sub
Sub keyvide(): End Sub
 
bonjour @cajuba
Bonjour,
Après essayage, on peut toujours faire un clic droit sur l'onglet dans la barre de tache …..
????????????????????????????????????????????? 😵
de quoi tu me parles là 😵
la barre des taches n'a rien a voir avec excel
pour bloquer les events sur la barre des taches, il te faut utiliser pour cela d'autres api mais c'est un bordel sans nom
tu disais plus haut vouloir garder la barre des taches justement 😉
ne saurais tu pas ou tu a mal toi ???😀😉

avec la version sans displayfullscreen tu n'a plus la barre des taches il te suffit de taper sur la touche "Windows" pour la retrouver

il y a quand même des restrictions, tu pense bien que Windows ne peut pas te laisser la main libre d’accès a tous sinon nous serions plus d'un!!!! a éteindre le pc brutalement par ce qu'il y a eu un bug et on a plus accès a rien 😀😀😀😛😛 ce qui est arrivé a certains déjà( moi même au début des années folles)
réfléchi 1 seconde va 😉
je pense que tu es comme beaucoup a vouloir transformer excel en logiciel perso (éliminer tout ce qui est visible d'excel, le rendre méconnaissable ) mais..... excel et Vba ont leurs limites 😉
d'autant plus que tu me parais pas très a l'aise avec les api Windows
peut être devrais tu te tourner alors vers vb.net avec visualstudio et te faire tes propres interfaces et masquer ceci ou cela de Windows a tes risques et périls bien sur 😉
A méditer 😉
on t' a donné 4 méthodes , a toi de t'en accommoder
je n'ai pas donné la 5 eme qui consiste a agrandir la fenêtre en mode windowstate xlnormal a la taille du windowstate xlmaximized - top caption
si tu prends la peine de chercher un peu sur ce forum voir les contributions aussi, je suis sur que tu trouvera LOL
 
tiens comme ca vite fait un hersât de celle que tu trouvera si tu cherche bien
sans api pour couper la caption et la tu peux y aller mon ami pour la bouger

un bouton dans la feuille et ...
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 "SHOW.TOOLBAR(""Ribbon""," & IIf(CommandBars("Ribbon").Visible, "false", "true") & ")"  'voila comment on vire le ruban
        etat = CommandBars("Ribbon").Visible
        .WindowState = xlMaximized
        w = .Width: h = .Height
        .WindowState = xlNormal
        .Width = IIf(etat, 600, w): .Height = IIf(etat, 500, h + 12): .Left = 0: .Top = IIf(etat, 0, -21)
    End With
End Sub
le principe est tres simple
comme je n'utilise pas displayfulscreen la fenêtre n'est même pas maximisée
tout les contraintes qu'exigent ces deux etats ne sont plus nécessaires

pas de touche esc a gérer
pas de barre de titre a gérer
pas d'item menu contextuel a gérer
etc..etc..
 
Salut à tous,

Vu que la barre des taches peut être un peu partout (de chaque côté de l'écran) et que sa taille est dépendante du bon vouloir de l'utilisateur, il est assez utopique de prendre en compte celle-ci dans le calcul de l'affichage de la fenêtre Excel ( à moins de passer par une usine à gaz avec des API lourdes 😱)

Pour afficher la barre des taches telle qu'elle a été customisée par l'utilisateur ou son service de maintenance, il suffit d'appuyer sur la touche Window ( y'a pas plus simple )
Pour pouvoir basculer rapidement entre les applications en cours ce sont les touches Windows + Tabulation ( le plus rapide )

Sinon, on peut prévoir un bouton affichant la barre des taches :
VB:
#If VBA7 Then
    Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" ( _
        ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
    Declare PtrSafe Function SetWindowPos Lib "user32" ( _
        ByVal hwnd As LongPtr, ByVal hWndInsertAfter As LongPtr, _
        ByVal x As Long, ByVal y As Long, _
        ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
#Else
    Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
        ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    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
#End If
Sub Show_Taskbar()
    SetWindowPos FindWindow("shell_traywnd", ""), 0, 0, 0, 0, 0, &H40
End Sub

Pour ma part, j'aime bien la version du post #18 mais je maintiendrai l'affichage des scrollbars pour se déplacer plus rapidement dans la feuille ( question de goûts 😉 ).
 
Bonjour,
de retour ….déjà !
J'ai 2 fichiers 1 et 2, j'ai utilisé sur chacun des fichiers la macro pour tout cacher
J'ouvre le fichier 1, dessus il y a un lien pour aller dans le fichier 2.
Je ferme le fichier 2
Il reste donc le fichier 1. Si par erreur je fais ECHAP, le fichier 2 s'ouvre ! et la mise en page de l'écran se modifie .....au secoursssssss SVP
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour