Récupérer la valeur d'un msoControlEdit

  • Initiateur de la discussion Initiateur de la discussion Hady
  • 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 !

H

Hady

Guest
Bonjour forum,

j'utilise le code ci-dessous pour récupérer la valeur d'une zone texte sous un menu. Lorsque j'utilise la code brut ci-dessous la fonctionne parfait. Lorsque j'insère ce code dans un menu plus complexe cela ne fonctionne plus : je n'arrive plus à récupérer la valeur de la zone de texte! Je ne comprends absolument pas pourquoi!


'CODE QUI MARCHE
Sub AjoutZoneTexte()
Dim MaBarre As CommandBar
Dim MonTxt As CommandBarComboBox

Dim bar As Object
For Each bar In CommandBars
If bar.Name = 'BarrePerso' Then
CommandBars('BarrePerso').Delete
End If
Next bar

Set Newbarre = CommandBars.Add('BarrePerso', MenuBar:=True)
With Newbarre
.Position = msoBarTop
.Protection = msoBarNoMove
.Visible = True
End With

Set MaBarre = CommandBars('BarrePerso')
Set MonTxt = MaBarre.Controls.Add(msoControlDropdown) 'ajoute une liste déroulante
With MonTxt
.OnAction = 'Ma_macro'
.Tag = 'lst1'
.AddItem 'Choix 1'
.AddItem 'Choix 2'
.AddItem 'Choix 3'
.AddItem 'Choix 4'
End With
End Sub

Sub Ma_macro()
Dim MonBtn As CommandBarComboBox, strTxt As String

Set MonBtn = CommandBars('BarrePerso').FindControl(, , 'lst1')
strTxt = MonBtn.Text
MsgBox strTxt

End Sub


'CODE QUI MARCHE PAS
Sub CreationMenus()
[..]
m22 As CommandBarComboBox
[..]
Dim bar As Object
For Each bar In CommandBars
If bar.Name = 'Mabarre' Then
CommandBars('Mabarre').Delete
End If
Next bar

Set Newbarre = CommandBars.Add('Mabarre', MenuBar:=True)
With Newbarre
.Position = msoBarTop
.Protection = msoBarNoMove
.Visible = True
End With
[..]
Set m2 = Newbarre.Controls.Add(Type:=msoControlPopup)
m2.Caption = '&Edit'
m2.TooltipText = 'Print, Save...'

Set m21 = m2.Controls.Add(Type:=msoControlButton)
m21.Caption = '&Save'
m21.TooltipText = 'Save dashboard modifications'
m21.OnAction = 'Save'
m21.FaceId = 3

Set m22 = m2.Controls.Add(Type:=msoControlDropdown)
m22.Caption = '&Style'
m22.OnAction = 'MiseEnForme'
m22.Tag = 'StyleDuGraphique'
m22.AddItem 'Background'
m22.AddItem 'Title'
m22.AddItem 'None'
[..]
End Sub

Sub MiseEnForme()
Dim MonBtn As CommandBarComboBox, strTxt As String

Set MonBtn = Application.CommandBars('MaBarre').FindControl(Tag:='StyleDuGraphique')
strTxt = MonBtn.Text
MsgBox strTxt
End Sub

Le menu est bien crée mais la valeur non récupéré. En fait je n'arrive pas à récupérer le bouton!
MonBtn = 'Nothing' au débogage

Quelqu'un peut-il m'aider?

MErci
Hady
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
2 K
Retour