CommandBars VBA

ljoue

XLDnaute Junior
Bonjour à tous,

Voici un code que j'utilise pour permettre de ne pas afficher les menu, croix pour fermer Excel...etc.

Le problème avec ce code c'est qu'il supprime toutes les commandBars. Je voudrais toutes les supprimer sauf celles pour "réduire et agrandir" Excel.

Pouvez vous m'aider à modifier le code en fonction ?

Merci beaucoup.

Code :

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 Sub Workbook_open()
Dim hwnd As Long
hwnd = FindWindowA(vbNullString, Application.Caption)
SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) And &HFFF7FFFF
Dim CmdB As CommandBar
For Each CmdB In Application.CommandBars
CmdB.Enabled = False
Next CmdB

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim hwnd As Long
hwnd = FindWindowA(vbNullString, Application.Caption)
SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) Or &H80000
Dim CmdB As CommandBar
For Each CmdB In Application.CommandBars
CmdB.Enabled = True
Next CmdB

End Sub
 

jeanpierre

Nous a quitté
Repose en paix
Re : CommandBars VBA

Bonjour ljoue,

Si ce n'est pas de l'impatience ça..... Moins de 2 heures...................

XLD est ouvert 7 jours/7 et 24 heures/24 mais il n'a pas la prétention de répondre à la minute, encore que............

N'ayant plus l'âge de jouer les pompiers de service, je n'ai pas lu ton code et crois moi, pas l'envie de le tester....

Alors, sois patient et au besoin, demain ou après, remontes ton post, j'ai bien dit Remontes....


Edit : cela semble urgent et pourtant déjà parti...... notre questionneur....
 
Dernière édition:

ljoue

XLDnaute Junior
Re : CommandBars VBA

Merci pour ces quelques infos .. je vais essayer de me débrouiller avec ça .. n'est ce pas mon cher Jean-Pierre !

Et bien sûr excuse moi (JP) si tu ne t'es pas levé tu bon bien ce matin...Comme tu le dis plus bas j'ai simplement voulu remonter mon post car tellement actif ce forum..si tu ne regardes pas souvent tu passes à la trape !!
Voilà tout simplement..une bonne nuit de sommeil te rendra peut être plus sympathique !

Merci et bonne soirée.

Cordialement,
Laurent.
 

ljoue

XLDnaute Junior
Re : CommandBars VBA

Salut Cmoa

Pour fermer le classeur j'utilise une Macro affectée à un bouton qui me permet d'obliger l'utilisateur à passer par là et surtout de ne pas pouvoir enregistrer toutes modifications sur le fichier.

code : (je passe par un Call de Userform)

Option Explicit
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then Cancel = True
End Sub

Private Sub UserForm_Activate()
Dim Msg
Application.Wait Now + TimeValue("00:00:03")
Unload Me

Application.DisplayAlerts = False
'Supprime la fonction de demande de sauvegarde de Windows
'ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub

Private Sub UserForm_Initialize()
Label1.Caption = "Fermeture du logiciel en cours...Merci de patienter"
End Sub
 
Dernière édition:

jeanpierre

Nous a quitté
Repose en paix
Re : CommandBars VBA

Re,

14h31 et tu appelles cela une remontée de post....

Personne ici n'est aux ordres.... donc, je réitère : "Alors, sois patient et au besoin, demain ou après, remontes ton post, j'ai bien dit Remontes...."

Pour mon autre phrase : "N'ayant plus l'âge de jouer les pompiers de service, je n'ai pas lu ton code et crois moi, pas l'envie de le tester....", tu fais quoi s'il y a plantage de poste ou simplement une coupure d'électicité ?

Mon cher Laurent, je te remercie de revoir tes propos... Un peu legers ou graves pour quelqu'un qui demande de l'aide....

Si tu as peur de ne pas retrouver ton post, tu cliques sur ton pseudo, et tu selectionnes Toutes les discussions ouvertes..... Simple
 

ljoue

XLDnaute Junior
Re : CommandBars VBA

Re,

Pour finir j'avoue de mon côté avoir "remonté" mon post un peu vite et en suis désolé si cela ta irrité, mais ça ne reste pas une raison pour moi d'être aussi désagréable en vers les utilisateurs qui font eux aussi de leur côté vivre le Forum.
Pour ma part j'ai été longtemps équipier sur des Forums de ce style et je ne me souviens pas avoir été aussi dur et antipathique envers un utilisateur. Les personnes actives sur les forums m'ont énormément appris c'est pourquoi je les respecte au mieux et participe aussi sur d’autres Forum à aider les utilisateurs dès que je peux et quand cela est dans mes moyens.

Voila, sur ce bonne soirée.

@+
 

jeanpierre

Nous a quitté
Repose en paix
Re : CommandBars VBA

Re,

La remonté rapide ne m'a pas irritée, je t'ai simplement dit mon sentiment et SANS AGRESSIVITE. Je ne vois pas où je suis déagréable, voire aussi désagréable, mais c'est cela aussi l'instantané des réponses, et/ou des questionnements.

Je t'ai même donné une solution pour retrouver tes posts....

Pour le reste et concernant ta question, j'ai quelques inquiètudes sur une solution pérenne... C'est tout.

Bonne soirée également, mais relis bien....
 

ljoue

XLDnaute Junior
Re : CommandBars VBA [Résolu]

Re bonjour à tous,

J'ai finalement trouvé une solution qui est tellement simple que je n'y avais pas pensé... :(

J'ai en fait tout simplement intégré dans mon fichier 2 boutons liées à des macros qui permettent de réduire ou agrandir la fenêtre d'Excel.

Sub agrandir()
Application.WindowState = xlMaximized
End Sub

Sub reduire()
Application.WindowState = xlNormal
End Sub

Voilà, Merci encore pour votre aide et votre temps.

@+
Laurent

ps : sans rancune JP, bonne journée ;)
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 329
Messages
2 087 334
Membres
103 520
dernier inscrit
Azise