EnleverBarreDeTitreUserform

M

Moa

Guest
Est-il possible d'enlever la barre de titre d'un userform ?

En fait, j'ai chercher, dans les propriétés "Apparence", mais apparement, il n'y a pas ce genre d'option.

Si qqn à déjà fait ça, en Vba, je suppose, merci d'avance.

@ +

Moa
 
@

@christophe@

Guest
bonjour Moa

Voila une solution que j'ai trouvé sur un site internet, a toi d'essayer, je t'ai copie l'explication.

Dans le module de ton UserForm:

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowLong Lib "user32" Alias _
"GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
(ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As
Long

Private Sub UserForm_Initialize()
Dim hWnd As Long, Style As Long

hWnd = FindWindow(vbNullString, Me.Caption)
Style = GetWindowLong(hWnd, -16) And Not &HC00000
SetWindowLong hWnd, -16, Style
DrawMenuBar hWnd
End Sub

Bien évidemment, tu ne pourras plus dans ce cas déplacer ton UserForm avec
la souris.

Christophe
 
@

@+Thierry

Guest
Bonjour Moa; Re @Xtof@

Moa ce n'est pas une Function normale... c'est une API... Selon la version de Windoze çà peut ne pas marcher.

Chez moi ça marche, Win ME / Office 2000

Il faut aussi respecter DEUX choses :

111°) la partie :
Private Declare Function blah blah blah...

Doit être en top du Module... Rien d'autre au dessus (mis à part Option Explicit ou autre Option)

222°) dans la partie
Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As
Long

Il y a une coupure dûe au copié/collé de Christophe il faut que cette ligne soit entière of course.
Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long

Sinon ça marche...

Tu es sous quel OS Moa ?
@+Thierry
 
@

@+Thierry

Guest
RE Moa,

Le fait de double cliquer sur ton UserForm te met bien sur le private module du UserForm en Question par contre çà te créé un évènement "Click" ... Ou si un évènement existe déjà çà te place dans cet évènement...

le mieux pour afficher le Code d'un UserForm est de passer par l'explorateur de projet de sélectionner ton UserForm et de faire (au choix):

- Soit un click droit et choisir Code dans le menu contextuel
- Soit cliquer sur le bouton "Afficher Le Code" en haut de cette fenetre explorateur de projet.

Un private module de UserForm est identique aux autres modules... Et dans ce cas les quatres Functions doivent être en haut du module...

Private Declare Function FindWindow
blah blah blah
....
Suivie de :
Private Declare Function GetWindowLong
et de :
Private Declare Function SetWindowLong
et de :
Private Declare Function DrawMenuBar

ce n'est QU'EN DESSOUS que tu dois mettre

Private Sub UserForm_Initialize()


Mais il y a des chances que ces API ne fonctionnent pas sous Win XP ....

Enfin comme çà tu auras un peu survolé les modules de UserForm...

@+Thierry
 
M

Moa

Guest
Bon, je laisse tomber.


Je viens de tout recommencer depuis le début.

En faisant la manip de Thierry, click droit et code.

Quand je colle le code de Chrsitophe, Excel, me met systématiquement, "Initialize", en haut à droite.

Et pas moyen de trouver, en haut à gauche , les 4 fonctions de Thierry.

Donc, je laisse tomber.

Ti, "une barre de commande dédiée", désolé mais je ne sais pas comment faire ça.

Merci beaucoup, à vous tous.

@ +

Moa
 
@

@+Thierry

Guest
Mais non Moa.......

Je te parle du Cas présent !! du Code que Christophe t'a proposé !! pas de ce que tu peux trouver en haut à droite !!! dans le menu déroulant !! je ne parle pas de ça !!

Je t'expliquais juste que ces Functions pour des appels à des API devaient être placées en haut de module....

Mais tu as raison laisse tomber, de toutes manières faire appel à des API n'est jamais trop recommandé si on peut trouver sa solution ailleurs en plus simple.

Pour Créer des Barres d'outils persos cherche à "CommandBar"...

@+Thierry
 
M

Moa

Guest
hihihi...je sens, que je vais vous fatiguer....hihihi.

T'as raison, je vais chercher ailleurs, de toute façon, c'est aussi bien, car comme tu le sais, c'est une appli, que je vais donner et il se peut que ce genre de truc, ne fonctionne pas chez tout le monde, ou même pire, fasse des bugs.

Donc, je vais de ce pas, voir du côté de command.bar.

Encore merci beaucoup

@ +

Moa
 

Discussions similaires