OVH Cloud OVH Cloud

créer une barre de menu

6 réponses
Avatar
phil
J'ai commenc=E9 =E0 faire une barre de menu personnalis=E9e en=20
utilisant du code VBA.
Pour cela, j'ai coch=E9 la r=E9f=E9rence MSO9.dll (j'ai trouv=E9=20
le dll dans un Runtime Access).

Je peux donc ins=E9rer des boutons, des combobox, des sous-
menu, mais quand j'ai essay=E9 d'ins=E9rer des label, ca n'a=20
pas fonctionn=E9.

Quelqu'un peut-il m'aider ?

J'ai test=E9 dans un nouveau module avec juste ca : =20

Dim CB As CommandBar
Dim CBBouton As CommandBarControl
Const CB_Nom =3D "Nom"

Sub CreeMenu()
Set CB =3D CommandBars.Add(CB_Nom)
Set CBBouton =3D CB.Controls.Add(msoControlLabel) 'plante
CBBouton.Caption =3D "hello"
CBBouton.Enabled =3D True
End Sub


Sur la ligne o=F9 j'ai mis le commentaire, la compilation=20
plante : argument ou appel de proc=E9dure incorrect.

Pas mal d'autres types de controles plantent...

merci pour l'aide

Phil

6 réponses

Avatar
Jessy Sempere [MVP]
Salut Phil

J'ai suivie depuis le début ta discussion avec Raymond mais là...

J'ai le même problème que toi, c'est assez ambigue, dans l'aide d'access
il est dit que la constante (et d'autres aussi) sont "réservée", donc en
gros
ne sont pas utilisable...

Par contre à un autre endroit dans l'aide, il est dit que l'on peut
l'utiliser
donc honnêtement je ne comprends pas trop sur ce coup... ;-)))

PS : Je suis sous Access 97

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"phil" a écrit dans le message news:
1a0f901c41d76$9dd9a750$
J'ai commencé à faire une barre de menu personnalisée en
utilisant du code VBA.
Pour cela, j'ai coché la référence MSO9.dll (j'ai trouvé
le dll dans un Runtime Access).

Je peux donc insérer des boutons, des combobox, des sous-
menu, mais quand j'ai essayé d'insérer des label, ca n'a
pas fonctionné.

Quelqu'un peut-il m'aider ?

J'ai testé dans un nouveau module avec juste ca :

Dim CB As CommandBar
Dim CBBouton As CommandBarControl
Const CB_Nom = "Nom"

Sub CreeMenu()
Set CB = CommandBars.Add(CB_Nom)
Set CBBouton = CB.Controls.Add(msoControlLabel) 'plante
CBBouton.Caption = "hello"
CBBouton.Enabled = True
End Sub


Sur la ligne où j'ai mis le commentaire, la compilation
plante : argument ou appel de procédure incorrect.

Pas mal d'autres types de controles plantent...

merci pour l'aide

Phil
Avatar
phil
moi je suis sur Access 2002...

et sans utiliser le label, tu me conseille de faire
comment pour afficher constamment le nom de l'utilisateur
en cours ?

Phil


-----Message d'origine-----
Salut Phil

J'ai suivie depuis le début ta discussion avec Raymond
mais là...


J'ai le même problème que toi, c'est assez ambigue, dans
l'aide d'access

il est dit que la constante (et d'autres aussi)
sont "réservée", donc en

gros
ne sont pas utilisable...

Par contre à un autre endroit dans l'aide, il est dit que
l'on peut

l'utiliser
donc honnêtement je ne comprends pas trop sur ce
coup... ;-)))


PS : Je suis sous Access 97

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"phil" a écrit dans
le message news:

1a0f901c41d76$9dd9a750$
J'ai commencé à faire une barre de menu personnalisée en
utilisant du code VBA.
Pour cela, j'ai coché la référence MSO9.dll (j'ai trouvé
le dll dans un Runtime Access).

Je peux donc insérer des boutons, des combobox, des sous-
menu, mais quand j'ai essayé d'insérer des label, ca n'a
pas fonctionné.

Quelqu'un peut-il m'aider ?

J'ai testé dans un nouveau module avec juste ca :

Dim CB As CommandBar
Dim CBBouton As CommandBarControl
Const CB_Nom = "Nom"

Sub CreeMenu()
Set CB = CommandBars.Add(CB_Nom)
Set CBBouton = CB.Controls.Add(msoControlLabel) 'plante
CBBouton.Caption = "hello"
CBBouton.Enabled = True
End Sub


Sur la ligne où j'ai mis le commentaire, la compilation
plante : argument ou appel de procédure incorrect.

Pas mal d'autres types de controles plantent...

merci pour l'aide

Phil




.



Avatar
Jessy Sempere [MVP]
Bonjour

Si ce n'est que ça, je le mettrais dans le titre de l'application...
Regardes le code qui suit, pour l'utiliser il te suffit de faire par exemple
:

Function LancerTitre()
EditTitleApp "Utilisateur connecté : " & CurrentUser
End Function

*****************************************************
Function EditTitleApp(strTitle As String)
Dim db As Database, prp As Property
Const conErrPropNonTrouvée = 3270

On Error GoTo Err_EditTitleApp
Set db = CurrentDb
db.Properties!AppTitle = strTitle
Application.RefreshTitleBar
Exit Function

Err_EditTitleApp:
If Err.Number = conErrPropNonTrouvée Then

Set prp = db.CreateProperty("TitreAppl", dbText, strTitle)
db.Properties.Append prp
Else
MsgBox "Erreur : " & Err.Number & vbCrLf & Err.Description
End If
Resume Next
End Function
*****************************************************

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"phil" a écrit dans le message news:
1a5b701c41dfe$3438e8a0$
moi je suis sur Access 2002...

et sans utiliser le label, tu me conseille de faire
comment pour afficher constamment le nom de l'utilisateur
en cours ?

Phil


-----Message d'origine-----
Salut Phil

J'ai suivie depuis le début ta discussion avec Raymond
mais là...


J'ai le même problème que toi, c'est assez ambigue, dans
l'aide d'access

il est dit que la constante (et d'autres aussi)
sont "réservée", donc en

gros
ne sont pas utilisable...

Par contre à un autre endroit dans l'aide, il est dit que
l'on peut

l'utiliser
donc honnêtement je ne comprends pas trop sur ce
coup... ;-)))


PS : Je suis sous Access 97

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"phil" a écrit dans
le message news:

1a0f901c41d76$9dd9a750$
J'ai commencé à faire une barre de menu personnalisée en
utilisant du code VBA.
Pour cela, j'ai coché la référence MSO9.dll (j'ai trouvé
le dll dans un Runtime Access).

Je peux donc insérer des boutons, des combobox, des sous-
menu, mais quand j'ai essayé d'insérer des label, ca n'a
pas fonctionné.

Quelqu'un peut-il m'aider ?

J'ai testé dans un nouveau module avec juste ca :

Dim CB As CommandBar
Dim CBBouton As CommandBarControl
Const CB_Nom = "Nom"

Sub CreeMenu()
Set CB = CommandBars.Add(CB_Nom)
Set CBBouton = CB.Controls.Add(msoControlLabel) 'plante
CBBouton.Caption = "hello"
CBBouton.Enabled = True
End Sub


Sur la ligne où j'ai mis le commentaire, la compilation
plante : argument ou appel de procédure incorrect.

Pas mal d'autres types de controles plantent...

merci pour l'aide

Phil




.



Avatar
phil
oui pourquoi pas ?

mais c vrai que le plus simple, c'était dans le menu...

si tu te souviens de mon premier problème (voir
sujet : "largeur d'un formulaire"), je voulais pouvoir
tout afficher dans un menubar... tu crois qu'un bouton qui
ne réagit pas devrait faire l'affaire ? Ou alors dans
une "textbox" (edit)...

merci

Phil


-----Message d'origine-----
Bonjour

Si ce n'est que ça, je le mettrais dans le titre de
l'application...

Regardes le code qui suit, pour l'utiliser il te suffit
de faire par exemple

:

Function LancerTitre()
EditTitleApp "Utilisateur connecté : " & CurrentUser
End Function

*****************************************************
Function EditTitleApp(strTitle As String)
Dim db As Database, prp As Property
Const conErrPropNonTrouvée = 3270

On Error GoTo Err_EditTitleApp
Set db = CurrentDb
db.Properties!AppTitle = strTitle
Application.RefreshTitleBar
Exit Function

Err_EditTitleApp:
If Err.Number = conErrPropNonTrouvée Then

Set prp = db.CreateProperty("TitreAppl", dbText,
strTitle)

db.Properties.Append prp
Else
MsgBox "Erreur : " & Err.Number & vbCrLf &
Err.Description

End If
Resume Next
End Function
*****************************************************

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"phil" a écrit dans
le message news:

1a5b701c41dfe$3438e8a0$
moi je suis sur Access 2002...

et sans utiliser le label, tu me conseille de faire
comment pour afficher constamment le nom de l'utilisateur
en cours ?

Phil


-----Message d'origine-----
Salut Phil

J'ai suivie depuis le début ta discussion avec Raymond
mais là...


J'ai le même problème que toi, c'est assez ambigue, dans
l'aide d'access

il est dit que la constante (et d'autres aussi)
sont "réservée", donc en

gros
ne sont pas utilisable...

Par contre à un autre endroit dans l'aide, il est dit que
l'on peut

l'utiliser
donc honnêtement je ne comprends pas trop sur ce
coup... ;-)))


PS : Je suis sous Access 97

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"phil" a écrit dans
le message news:

1a0f901c41d76$9dd9a750$
J'ai commencé à faire une barre de menu personnalisée en
utilisant du code VBA.
Pour cela, j'ai coché la référence MSO9.dll (j'ai trouvé
le dll dans un Runtime Access).

Je peux donc insérer des boutons, des combobox, des sous-
menu, mais quand j'ai essayé d'insérer des label, ca n'a
pas fonctionné.

Quelqu'un peut-il m'aider ?

J'ai testé dans un nouveau module avec juste ca :

Dim CB As CommandBar
Dim CBBouton As CommandBarControl
Const CB_Nom = "Nom"

Sub CreeMenu()
Set CB = CommandBars.Add(CB_Nom)
Set CBBouton = CB.Controls.Add(msoControlLabel) 'plante
CBBouton.Caption = "hello"
CBBouton.Enabled = True
End Sub


Sur la ligne où j'ai mis le commentaire, la compilation
plante : argument ou appel de procédure incorrect.

Pas mal d'autres types de controles plantent...

merci pour l'aide

Phil




.




.




Avatar
phil
c'est bon, j'ai trouvé...

Je vais mettre le nom dans le label de la combobox...
Comme il n'y a pas de zone de liste pour afficher une
liste de news (messages), j'ai utilisé une combobox.
Au lieu de mettre "News : " dans le label de la combobox,
j'ai mis "News de Nom Prénom : "

c'est plutot bien...

mais si quelqu'un sait comment régler le problème qui
m'empeche de mettre des labels et plein d'autres
controles, qu'il n'hésite pas...

merci encore de votre aide à tous

phil


-----Message d'origine-----
oui pourquoi pas ?

mais c vrai que le plus simple, c'était dans le menu...

si tu te souviens de mon premier problème (voir
sujet : "largeur d'un formulaire"), je voulais pouvoir
tout afficher dans un menubar... tu crois qu'un bouton
qui

ne réagit pas devrait faire l'affaire ? Ou alors dans
une "textbox" (edit)...

merci

Phil


-----Message d'origine-----
Bonjour

Si ce n'est que ça, je le mettrais dans le titre de
l'application...

Regardes le code qui suit, pour l'utiliser il te suffit
de faire par exemple

:

Function LancerTitre()
EditTitleApp "Utilisateur connecté : " & CurrentUser
End Function

*****************************************************
Function EditTitleApp(strTitle As String)
Dim db As Database, prp As Property
Const conErrPropNonTrouvée = 3270

On Error GoTo Err_EditTitleApp
Set db = CurrentDb
db.Properties!AppTitle = strTitle
Application.RefreshTitleBar
Exit Function

Err_EditTitleApp:
If Err.Number = conErrPropNonTrouvée Then

Set prp = db.CreateProperty("TitreAppl", dbText,
strTitle)

db.Properties.Append prp
Else
MsgBox "Erreur : " & Err.Number & vbCrLf &
Err.Description

End If
Resume Next
End Function
*****************************************************

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"phil" a écrit
dans


le message news:
1a5b701c41dfe$3438e8a0$
moi je suis sur Access 2002...

et sans utiliser le label, tu me conseille de faire
comment pour afficher constamment le nom de l'utilisateur
en cours ?

Phil


-----Message d'origine-----
Salut Phil

J'ai suivie depuis le début ta discussion avec Raymond
mais là...


J'ai le même problème que toi, c'est assez ambigue, dans
l'aide d'access

il est dit que la constante (et d'autres aussi)
sont "réservée", donc en

gros
ne sont pas utilisable...

Par contre à un autre endroit dans l'aide, il est dit
que



l'on peut
l'utiliser
donc honnêtement je ne comprends pas trop sur ce
coup... ;-)))


PS : Je suis sous Access 97

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"phil" a écrit
dans



le message news:
1a0f901c41d76$9dd9a750$
J'ai commencé à faire une barre de menu personnalisée en
utilisant du code VBA.
Pour cela, j'ai coché la référence MSO9.dll (j'ai trouvé
le dll dans un Runtime Access).

Je peux donc insérer des boutons, des combobox, des
sous-



menu, mais quand j'ai essayé d'insérer des label, ca n'a
pas fonctionné.

Quelqu'un peut-il m'aider ?

J'ai testé dans un nouveau module avec juste ca :

Dim CB As CommandBar
Dim CBBouton As CommandBarControl
Const CB_Nom = "Nom"

Sub CreeMenu()
Set CB = CommandBars.Add(CB_Nom)
Set CBBouton = CB.Controls.Add(msoControlLabel) 'plante
CBBouton.Caption = "hello"
CBBouton.Enabled = True
End Sub


Sur la ligne où j'ai mis le commentaire, la compilation
plante : argument ou appel de procédure incorrect.

Pas mal d'autres types de controles plantent...

merci pour l'aide

Phil




.




.

.






Avatar
Jessy Sempere [MVP]
Ben le problème de la textbox, c'est qu'elle peut être modifiée...
Pour le bouton qui ne lance rien, oui y a pas de problème, je
crois que tu dois pouvoir utiliser le type : msoButtonCaption...

Mais honnêtement perso je passerais par la barre de titre je pense
sincèrement que c'est le plus facile à gérer et sûrement plus propre
que d'avoir un bouton qui ne sert à rien dans la barre de menu mais
bon, c'est toi qui voit... ;-))

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"phil" a écrit dans le message news:
1a64201c41e01$7640df20$
oui pourquoi pas ?

mais c vrai que le plus simple, c'était dans le menu...

si tu te souviens de mon premier problème (voir
sujet : "largeur d'un formulaire"), je voulais pouvoir
tout afficher dans un menubar... tu crois qu'un bouton qui
ne réagit pas devrait faire l'affaire ? Ou alors dans
une "textbox" (edit)...

merci

Phil


-----Message d'origine-----
Bonjour

Si ce n'est que ça, je le mettrais dans le titre de
l'application...

Regardes le code qui suit, pour l'utiliser il te suffit
de faire par exemple

:

Function LancerTitre()
EditTitleApp "Utilisateur connecté : " & CurrentUser
End Function

*****************************************************
Function EditTitleApp(strTitle As String)
Dim db As Database, prp As Property
Const conErrPropNonTrouvée = 3270

On Error GoTo Err_EditTitleApp
Set db = CurrentDb
db.Properties!AppTitle = strTitle
Application.RefreshTitleBar
Exit Function

Err_EditTitleApp:
If Err.Number = conErrPropNonTrouvée Then

Set prp = db.CreateProperty("TitreAppl", dbText,
strTitle)

db.Properties.Append prp
Else
MsgBox "Erreur : " & Err.Number & vbCrLf &
Err.Description

End If
Resume Next
End Function
*****************************************************

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"phil" a écrit dans
le message news:

1a5b701c41dfe$3438e8a0$
moi je suis sur Access 2002...

et sans utiliser le label, tu me conseille de faire
comment pour afficher constamment le nom de l'utilisateur
en cours ?

Phil


-----Message d'origine-----
Salut Phil

J'ai suivie depuis le début ta discussion avec Raymond
mais là...


J'ai le même problème que toi, c'est assez ambigue, dans
l'aide d'access

il est dit que la constante (et d'autres aussi)
sont "réservée", donc en

gros
ne sont pas utilisable...

Par contre à un autre endroit dans l'aide, il est dit que
l'on peut

l'utiliser
donc honnêtement je ne comprends pas trop sur ce
coup... ;-)))


PS : Je suis sous Access 97

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"phil" a écrit dans
le message news:

1a0f901c41d76$9dd9a750$
J'ai commencé à faire une barre de menu personnalisée en
utilisant du code VBA.
Pour cela, j'ai coché la référence MSO9.dll (j'ai trouvé
le dll dans un Runtime Access).

Je peux donc insérer des boutons, des combobox, des sous-
menu, mais quand j'ai essayé d'insérer des label, ca n'a
pas fonctionné.

Quelqu'un peut-il m'aider ?

J'ai testé dans un nouveau module avec juste ca :

Dim CB As CommandBar
Dim CBBouton As CommandBarControl
Const CB_Nom = "Nom"

Sub CreeMenu()
Set CB = CommandBars.Add(CB_Nom)
Set CBBouton = CB.Controls.Add(msoControlLabel) 'plante
CBBouton.Caption = "hello"
CBBouton.Enabled = True
End Sub


Sur la ligne où j'ai mis le commentaire, la compilation
plante : argument ou appel de procédure incorrect.

Pas mal d'autres types de controles plantent...

merci pour l'aide

Phil




.




.