Récupérer la valeur d'un msoControlEdit

  • Initiateur de la discussion Hady
  • Date de début
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
 
H

Hady

Guest
Cf fichier joint. [file name=ClasseurPb.zip size=8379]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/ClasseurPb.zip[/file]
 

Pièces jointes

  • ClasseurPb.zip
    8.2 KB · Affichages: 71

Discussions similaires

Statistiques des forums

Discussions
312 536
Messages
2 089 390
Membres
104 156
dernier inscrit
Mer