OVH Cloud OVH Cloud

Ou passe le texte de msoControlEdit ?

10 réponses
Avatar
Pascal Engelmajer
Bonjour à tous,
Comment récuperer dans une macro le texte après saisie dans un controle
(ControlEdit) dans une BO ?
Set ctrl=maBO.Controls.Add(msoControlEdit)
Il semble que le texte se ré-initialise dès que l'on quitte le controle..

Merci de vos réponses.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel

10 réponses

Avatar
Alain CROS
Bonjour.

Après la saisie dans le control, il faut faire entrée.
Ensuite tu récupère le texte avec sa propriété Text.
Par exemple : MsgBox CommandBars("Personnalisé1").Controls(1).Text

Alain CROS.

"Pascal Engelmajer" a écrit dans le message de news: eT2y2uc$
Bonjour à tous,
Comment récuperer dans une macro le texte après saisie dans un controle
(ControlEdit) dans une BO ?
Set ctrl=maBO.Controls.Add(msoControlEdit)
Il semble que le texte se ré-initialise dès que l'on quitte le controle..

Merci de vos réponses.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel




Avatar
Pascal Engelmajer
Salut,
Merci.
ça ne marche pas
le controle est ré_initialisé à la valeur de départ !!!
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Alain CROS" a écrit dans le message de news:
eHh1tve$
Bonjour.

Après la saisie dans le control, il faut faire entrée.
Ensuite tu récupère le texte avec sa propriété Text.
Par exemple : MsgBox CommandBars("Personnalisé1").Controls(1).Text

Alain CROS.

"Pascal Engelmajer" a écrit dans le
message de news: eT2y2uc$

Bonjour à tous,
Comment récuperer dans une macro le texte après saisie dans un controle
(ControlEdit) dans une BO ?
Set ctrl=maBO.Controls.Add(msoControlEdit)
Il semble que le texte se ré-initialise dès que l'on quitte le
controle..



Merci de vos réponses.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel








Avatar
Michel Pierron
Bonjour Pascal;
Essaie avec:
Private Sub maBO_LostFocus()
MaVariable = maBO.Text
End Sub

MP

"Pascal Engelmajer" a écrit dans le
message de news:eT2y2uc$
Bonjour à tous,
Comment récuperer dans une macro le texte après saisie dans un controle
(ControlEdit) dans une BO ?
Set ctrl=maBO.Controls.Add(msoControlEdit)
Il semble que le texte se ré-initialise dès que l'on quitte le controle..

Merci de vos réponses.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel




Avatar
Alain CROS
Bonjour.

Ce n'est peut être pas ce que tu cherche mais essaye ça !
Colle le code suivant dans un module standard puis lance CreerBO.
Si tu click sur le bouton Affiche, une msgbox affiche "Bonjour"
Si tu écris "Pascal" dans la zone de texte et que tu valide en appuyant sur entrée,
lorsque tu click sur le bouton Affiche, la msgbox affiche "Pascal".
En tout cas, ça le fait chez moi.

Alain CROS.

Sub CreerBO()
Dim MaBO As CommandBar, Ctrl1 As CommandBarComboBox, Ctrl2 As CommandBarButton
On Error Resume Next
Set MaBO = CommandBars("Perso")
MaBO.Delete
On Error GoTo 0
Set MaBO = CommandBars.Add("Perso")
MaBO.Visible = True
Set Ctrl1 = MaBO.Controls.Add(msoControlEdit)
Ctrl1.Text = "Bonjour"
Set Ctrl2 = MaBO.Controls.Add(msoControlButton)
Ctrl2.Style = msoButtonCaption
Ctrl2.Caption = "Affiche"
Ctrl2.OnAction = "Message"
End Sub

Sub Message()
MsgBox CommandBars("Perso").Controls(1).Text
End Sub

"Pascal Engelmajer" a écrit dans le message de news: OGOHb4e$
Salut,
Merci.
ça ne marche pas
le controle est ré_initialisé à la valeur de départ !!!
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Alain CROS" a écrit dans le message de news:
eHh1tve$
Bonjour.

Après la saisie dans le control, il faut faire entrée.
Ensuite tu récupère le texte avec sa propriété Text.
Par exemple : MsgBox CommandBars("Personnalisé1").Controls(1).Text

Alain CROS.

"Pascal Engelmajer" a écrit dans le
message de news: eT2y2uc$

Bonjour à tous,
Comment récuperer dans une macro le texte après saisie dans un controle
(ControlEdit) dans une BO ?
Set ctrl=maBO.Controls.Add(msoControlEdit)
Il semble que le texte se ré-initialise dès que l'on quitte le
controle..



Merci de vos réponses.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel












Avatar
Michel Pierron
Re Pascal;
Dans cet exemple, le texte est persistent:
Sub CreateSearchBar()
Dim myCMB As CommandBar
Dim myCombo As CommandBarControl
Dim myBtn As CommandBarButton
On Error Resume Next
Application.CommandBars("MySearch").Delete
With Application.CommandBars.Add(Name:="MySearch")
.Visible = True
.Position = msoBarTop
Set myCombo = .Controls.Add(Type:=msoControlEdit, temporary:=True)
Set myBtn = .Controls.Add(Type:=msoControlButton, temporary:=True)
End With
With myCombo
.OnAction = "Search"
.Width = 150
End With
With myBtn
.Caption = "Chercher"
.OnAction = "Search"
.Style = msoButtonIconAndCaption
.FaceId = 141
End With
End Sub

Private Sub Search()
Dim strSrch As String
strSrch = Application.CommandBars("MySearch").Controls(1).Text
If Not strSrch = "" Then MsgBox "Chercher " & strSrch & " ?", 32
End Sub

MP

"Pascal Engelmajer" a écrit dans le
message de news:eT2y2uc$
Bonjour à tous,
Comment récuperer dans une macro le texte après saisie dans un controle
(ControlEdit) dans une BO ?
Set ctrl=maBO.Controls.Add(msoControlEdit)
Il semble que le texte se ré-initialise dès que l'on quitte le controle..

Merci de vos réponses.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel




Avatar
Frédéric Sigonneau
Bonsoir,

Autre exemple d'utilisation :

http://perso.wanadoo.fr/frederic.sigonneau/code/BO/BOEditControl.txt

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !

Pascal Engelmajer a écrit:
Bonjour à tous,
Comment récuperer dans une macro le texte après saisie dans un controle
(ControlEdit) dans une BO ?
Set ctrl=maBO.Controls.Add(msoControlEdit)
Il semble que le texte se ré-initialise dès que l'on quitte le controle..

Merci de vos réponses.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel




Avatar
Pascal Engelmajer
Salut Alain,
merci beaucoup.
en fait c'est le ENTER qui m'ennuie...
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Alain CROS" a écrit dans le message de news:
u6fh9Ig$
Bonjour.

Ce n'est peut être pas ce que tu cherche mais essaye ça !
Colle le code suivant dans un module standard puis lance CreerBO.
Si tu click sur le bouton Affiche, une msgbox affiche "Bonjour"
Si tu écris "Pascal" dans la zone de texte et que tu valide en appuyant
sur entrée,

lorsque tu click sur le bouton Affiche, la msgbox affiche "Pascal".
En tout cas, ça le fait chez moi.

Alain CROS.

Sub CreerBO()
Dim MaBO As CommandBar, Ctrl1 As CommandBarComboBox, Ctrl2 As
CommandBarButton

On Error Resume Next
Set MaBO = CommandBars("Perso")
MaBO.Delete
On Error GoTo 0
Set MaBO = CommandBars.Add("Perso")
MaBO.Visible = True
Set Ctrl1 = MaBO.Controls.Add(msoControlEdit)
Ctrl1.Text = "Bonjour"
Set Ctrl2 = MaBO.Controls.Add(msoControlButton)
Ctrl2.Style = msoButtonCaption
Ctrl2.Caption = "Affiche"
Ctrl2.OnAction = "Message"
End Sub

Sub Message()
MsgBox CommandBars("Perso").Controls(1).Text
End Sub

"Pascal Engelmajer" a écrit dans le
message de news: OGOHb4e$

Salut,
Merci.
ça ne marche pas
le controle est ré_initialisé à la valeur de départ !!!
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Alain CROS" a écrit dans le message de news:
eHh1tve$
Bonjour.

Après la saisie dans le control, il faut faire entrée.
Ensuite tu récupère le texte avec sa propriété Text.
Par exemple : MsgBox CommandBars("Personnalisé1").Controls(1).Text

Alain CROS.

"Pascal Engelmajer" a écrit dans
le



message de news: eT2y2uc$
Bonjour à tous,
Comment récuperer dans une macro le texte après saisie dans un
controle




(ControlEdit) dans une BO ?
Set ctrl=maBO.Controls.Add(msoControlEdit)
Il semble que le texte se ré-initialise dès que l'on quitte le
controle..



Merci de vos réponses.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il
va."




Sénèque.
http://www.ilyapa.net/excel
















Avatar
Pascal Engelmajer
Merci Michel,
Mais il semble que seul l'évènement _Change() soit pris en compte et il
faut faire ENTER pour l'activer...
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Michel Pierron" a écrit dans le message de news:
#nSgjOf$
Bonjour Pascal;
Essaie avec:
Private Sub maBO_LostFocus()
MaVariable = maBO.Text
End Sub

MP

"Pascal Engelmajer" a écrit dans le
message de news:eT2y2uc$
Bonjour à tous,
Comment récuperer dans une macro le texte après saisie dans un controle
(ControlEdit) dans une BO ?
Set ctrl=maBO.Controls.Add(msoControlEdit)
Il semble que le texte se ré-initialise dès que l'on quitte le
controle..



Merci de vos réponses.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel








Avatar
Pascal Engelmajer
Salut Michel,
effectivement ça marche
???
Le pb vient peu-être du fait que j'utilisais un module de classe...
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Michel Pierron" a écrit dans le message de news:
#MExhFh$
Re Pascal;
Dans cet exemple, le texte est persistent:
Sub CreateSearchBar()
Dim myCMB As CommandBar
Dim myCombo As CommandBarControl
Dim myBtn As CommandBarButton
On Error Resume Next
Application.CommandBars("MySearch").Delete
With Application.CommandBars.Add(Name:="MySearch")
.Visible = True
.Position = msoBarTop
Set myCombo = .Controls.Add(Type:=msoControlEdit, temporary:=True)
Set myBtn = .Controls.Add(Type:=msoControlButton, temporary:=True)
End With
With myCombo
.OnAction = "Search"
.Width = 150
End With
With myBtn
.Caption = "Chercher"
.OnAction = "Search"
.Style = msoButtonIconAndCaption
.FaceId = 141
End With
End Sub

Private Sub Search()
Dim strSrch As String
strSrch = Application.CommandBars("MySearch").Controls(1).Text
If Not strSrch = "" Then MsgBox "Chercher " & strSrch & " ?", 32
End Sub

MP

"Pascal Engelmajer" a écrit dans le
message de news:eT2y2uc$
Bonjour à tous,
Comment récuperer dans une macro le texte après saisie dans un controle
(ControlEdit) dans une BO ?
Set ctrl=maBO.Controls.Add(msoControlEdit)
Il semble que le texte se ré-initialise dès que l'on quitte le
controle..



Merci de vos réponses.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel








Avatar
Pascal Engelmajer
Merci Frédéric,
le pb viens de la
'When you enter text into this control, you must press Enter to make it
'stick. If you simply click in the worksheet, the text will not remain
there.


--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Frédéric Sigonneau" a écrit dans le
message de news:
Bonsoir,

Autre exemple d'utilisation :

http://perso.wanadoo.fr/frederic.sigonneau/code/BO/BOEditControl.txt

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !

Pascal Engelmajer a écrit:
Bonjour à tous,
Comment récuperer dans une macro le texte après saisie dans un controle
(ControlEdit) dans une BO ?
Set ctrl=maBO.Controls.Add(msoControlEdit)
Il semble que le texte se ré-initialise dès que l'on quitte le
controle..



Merci de vos réponses.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel