OVH Cloud OVH Cloud

serie d' OptionButton

5 réponses
Avatar
Jean-Pierre
Bonjour,

Dans un UserForm j'ai plusieurs boutons options
OptionButton1,OptionButton2,OptionButton3...
Comme faire pour connaitre celui qui est "True" sans tester chaque code.

Merci pour votre aide

Jean-Pierre

5 réponses

Avatar
Nicolas B.
Salut Jean-Pierre,

Essaye ce bout de code qui balaye tous les contrôles de la Form et teste la
valeur de ceux dont le nom commence par "OptionButton" :

For Each ctrl In Controls
If Left(ctrl.Name, 12) = "OptionButton" Then
If ctrl = True Then
MsgBox ctrl.Name & " est coché."
Exit For
End If
End If
Next


A+
--
Nicolas B.


Jean-Pierre nous a écrit
dans le message cctdbr$kpv$ :
Bonjour,

Dans un UserForm j'ai plusieurs boutons options
OptionButton1,OptionButton2,OptionButton3...
Comme faire pour connaitre celui qui est "True" sans tester chaque
code.

Merci pour votre aide

Jean-Pierre


Avatar
Nicolas B.
Et un peu plus élégant que le Left : test sur le type du contrôle :

For Each ctrl In Controls
If TypeName(ctrl) = "OptionButton" Then
If ctrl = True Then
MsgBox ctrl.Name & " est coché."
Exit For
End If
End If
Next


A+
--
Nicolas B.


Nicolas B. nous a écrit
dans le message %23bQpMC% :
Salut Jean-Pierre,

Essaye ce bout de code qui balaye tous les contrôles de la Form et
teste la valeur de ceux dont le nom commence par "OptionButton" :

For Each ctrl In Controls
If Left(ctrl.Name, 12) = "OptionButton" Then
If ctrl = True Then
MsgBox ctrl.Name & " est coché."
Exit For
End If
End If
Next


A+

Jean-Pierre nous a écrit
dans le message cctdbr$kpv$ :
Bonjour,

Dans un UserForm j'ai plusieurs boutons options
OptionButton1,OptionButton2,OptionButton3...
Comme faire pour connaitre celui qui est "True" sans tester chaque
code.

Merci pour votre aide

Jean-Pierre




Avatar
Jean-Pierre
Ok, mais là je balaye l'ensemble de l'UserForm.

Mais, j'ai plusieurs Frame, est-il possible de limiter le balayage au
contenu de la Frame ?

A+

JP


"Nicolas B." a écrit dans le message de
news:eUF53I%
Et un peu plus élégant que le Left : test sur le type du contrôle :

For Each ctrl In Controls
If TypeName(ctrl) = "OptionButton" Then
If ctrl = True Then
MsgBox ctrl.Name & " est coché."
Exit For
End If
End If
Next


A+
--
Nicolas B.


Nicolas B. nous a écrit
dans le message %23bQpMC% :
Salut Jean-Pierre,

Essaye ce bout de code qui balaye tous les contrôles de la Form et
teste la valeur de ceux dont le nom commence par "OptionButton" :

For Each ctrl In Controls
If Left(ctrl.Name, 12) = "OptionButton" Then
If ctrl = True Then
MsgBox ctrl.Name & " est coché."
Exit For
End If
End If
Next


A+

Jean-Pierre nous a écrit
dans le message cctdbr$kpv$ :
Bonjour,

Dans un UserForm j'ai plusieurs boutons options
OptionButton1,OptionButton2,OptionButton3...
Comme faire pour connaitre celui qui est "True" sans tester chaque
code.

Merci pour votre aide

Jean-Pierre








Avatar
Nicolas B.
Affecte aux OptionButton de chaque Frame un nom de groupe (GroupName dans
les propriétés) différent, par exemple "Groupe1" pour Frame1. Rajoute
ensuite une condition sur cette propriété :

For Each ctrl In Controls
If TypeName(ctrl) = "OptionButton" Then
If ctrl = True And ctrl.GroupName = "Groupe1" Then
MsgBox ctrl.Name & " est coché."
Exit For
End If
End If
Next


A+
--
Nicolas B.


Jean-Pierre nous a écrit
dans le message cctg96$e3i$ :
Ok, mais là je balaye l'ensemble de l'UserForm.

Mais, j'ai plusieurs Frame, est-il possible de limiter le balayage au
contenu de la Frame ?

A+

JP


"Nicolas B." a écrit dans le
message de news:eUF53I%
Et un peu plus élégant que le Left : test sur le type du contrôle :

For Each ctrl In Controls
If TypeName(ctrl) = "OptionButton" Then
If ctrl = True Then
MsgBox ctrl.Name & " est coché."
Exit For
End If
End If
Next


A+
--
Nicolas B.


Nicolas B. nous a écrit
dans le message %23bQpMC% :
Salut Jean-Pierre,

Essaye ce bout de code qui balaye tous les contrôles de la Form et
teste la valeur de ceux dont le nom commence par "OptionButton" :

For Each ctrl In Controls
If Left(ctrl.Name, 12) = "OptionButton" Then
If ctrl = True Then
MsgBox ctrl.Name & " est coché."
Exit For
End If
End If
Next


A+

Jean-Pierre nous a écrit
dans le message cctdbr$kpv$ :
Bonjour,

Dans un UserForm j'ai plusieurs boutons options
OptionButton1,OptionButton2,OptionButton3...
Comme faire pour connaitre celui qui est "True" sans tester chaque
code.

Merci pour votre aide

Jean-Pierre








Avatar
Jean-Pierre
Super

Merci pour l'info

A+

"Nicolas B." a écrit dans le message de
news:%236xzHn%
Affecte aux OptionButton de chaque Frame un nom de groupe (GroupName dans
les propriétés) différent, par exemple "Groupe1" pour Frame1. Rajoute
ensuite une condition sur cette propriété :

For Each ctrl In Controls
If TypeName(ctrl) = "OptionButton" Then
If ctrl = True And ctrl.GroupName = "Groupe1" Then
MsgBox ctrl.Name & " est coché."
Exit For
End If
End If
Next


A+
--
Nicolas B.


Jean-Pierre nous a écrit
dans le message cctg96$e3i$ :
Ok, mais là je balaye l'ensemble de l'UserForm.

Mais, j'ai plusieurs Frame, est-il possible de limiter le balayage au
contenu de la Frame ?

A+

JP


"Nicolas B." a écrit dans le
message de news:eUF53I%
Et un peu plus élégant que le Left : test sur le type du contrôle :

For Each ctrl In Controls
If TypeName(ctrl) = "OptionButton" Then
If ctrl = True Then
MsgBox ctrl.Name & " est coché."
Exit For
End If
End If
Next


A+
--
Nicolas B.


Nicolas B. nous a écrit
dans le message %23bQpMC% :
Salut Jean-Pierre,

Essaye ce bout de code qui balaye tous les contrôles de la Form et
teste la valeur de ceux dont le nom commence par "OptionButton" :

For Each ctrl In Controls
If Left(ctrl.Name, 12) = "OptionButton" Then
If ctrl = True Then
MsgBox ctrl.Name & " est coché."
Exit For
End If
End If
Next


A+

Jean-Pierre nous a écrit
dans le message cctdbr$kpv$ :
Bonjour,

Dans un UserForm j'ai plusieurs boutons options
OptionButton1,OptionButton2,OptionButton3...
Comme faire pour connaitre celui qui est "True" sans tester chaque
code.

Merci pour votre aide

Jean-Pierre