supposons Optionbutton1 à 3 dans la frame1 et 4 à 6 dans la frame 2 For j=1 to 3 if Controls("optionbutton" & j) = true then For i = 4 To 6 Controls("optionbutton" & i) = False Next endif next
-- a+ rural thierry Veaux et Broutards d'Anjou Wicasa on kin nape yapi inahni yo (à l'essai)
"garnote" a écrit dans le message de news: SGvvb.59955$
Bonchoir les aminches,
Comment décocher tous les boutons Option de Frame2 quand on clique sur un bouton Option quelconque de Frame1 ?
Marci
;-)
Sarge
Salut Serge
supposons Optionbutton1 à 3 dans la frame1 et 4 à 6 dans la frame 2
For j=1 to 3
if Controls("optionbutton" & j) = true then
For i = 4 To 6
Controls("optionbutton" & i) = False
Next
endif
next
--
a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)
"garnote" <rien@absent.net> a écrit dans le message de news:
SGvvb.59955$Ng3.845@charlie.risq.qc.ca...
Bonchoir les aminches,
Comment décocher tous les boutons Option de Frame2
quand on clique sur un bouton Option quelconque de Frame1 ?
supposons Optionbutton1 à 3 dans la frame1 et 4 à 6 dans la frame 2 For j=1 to 3 if Controls("optionbutton" & j) = true then For i = 4 To 6 Controls("optionbutton" & i) = False Next endif next
-- a+ rural thierry Veaux et Broutards d'Anjou Wicasa on kin nape yapi inahni yo (à l'essai)
"garnote" a écrit dans le message de news: SGvvb.59955$
Bonchoir les aminches,
Comment décocher tous les boutons Option de Frame2 quand on clique sur un bouton Option quelconque de Frame1 ?
Marci
;-)
Sarge
garnote
Yep !
J'avais essayé : For each c in Frame2 c.valueúlse Next
mais niet !!!
Serge
"ru-th" a écrit dans le message de news:
Salut Serge
supposons Optionbutton1 à 3 dans la frame1 et 4 à 6 dans la frame 2 For j=1 to 3 if Controls("optionbutton" & j) = true then For i = 4 To 6 Controls("optionbutton" & i) = False Next endif next
-- a+ rural thierry Veaux et Broutards d'Anjou Wicasa on kin nape yapi inahni yo (à l'essai)
"garnote" a écrit dans le message de news: SGvvb.59955$
Bonchoir les aminches,
Comment décocher tous les boutons Option de Frame2 quand on clique sur un bouton Option quelconque de Frame1 ?
Marci
;-)
Sarge
Yep !
J'avais essayé :
For each c in Frame2
c.valueúlse
Next
mais niet !!!
Serge
"ru-th" <ailleurs@nowhere.fr> a écrit dans le message de news:
OlSk8xHsDHA.1888@TK2MSFTNGP10.phx.gbl...
Salut Serge
supposons Optionbutton1 à 3 dans la frame1 et 4 à 6 dans la frame 2
For j=1 to 3
if Controls("optionbutton" & j) = true then
For i = 4 To 6
Controls("optionbutton" & i) = False
Next
endif
next
--
a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)
"garnote" <rien@absent.net> a écrit dans le message de news:
SGvvb.59955$Ng3.845@charlie.risq.qc.ca...
Bonchoir les aminches,
Comment décocher tous les boutons Option de Frame2
quand on clique sur un bouton Option quelconque de Frame1 ?
J'avais essayé : For each c in Frame2 c.valueúlse Next
mais niet !!!
Serge
"ru-th" a écrit dans le message de news:
Salut Serge
supposons Optionbutton1 à 3 dans la frame1 et 4 à 6 dans la frame 2 For j=1 to 3 if Controls("optionbutton" & j) = true then For i = 4 To 6 Controls("optionbutton" & i) = False Next endif next
-- a+ rural thierry Veaux et Broutards d'Anjou Wicasa on kin nape yapi inahni yo (à l'essai)
"garnote" a écrit dans le message de news: SGvvb.59955$
Bonchoir les aminches,
Comment décocher tous les boutons Option de Frame2 quand on clique sur un bouton Option quelconque de Frame1 ?
Marci
;-)
Sarge
gee-dee-
Bonsoir Serge, en tout etat de cause, tous les contrôles OptionButton d'un contrôle Frame s'excluent l'un l'autre. donc le fait d'en activer un, désactive les autres !!!!!! on les appelle aussi "boutons radio"
ce qui n'est pas le cas des checkboxes (appelées également case à cocher) et la syntaxe ci-dessous devrait fonctionner : For Each Cbx In Frame2.CheckBoxes Cbx.valueúlse Next
@+
Bonsoir Serge,
en tout etat de cause, tous les contrôles OptionButton d'un contrôle Frame
s'excluent l'un l'autre.
donc le fait d'en activer un, désactive les autres !!!!!!
on les appelle aussi "boutons radio"
ce qui n'est pas le cas des checkboxes (appelées également case à cocher)
et la syntaxe ci-dessous devrait fonctionner :
For Each Cbx In Frame2.CheckBoxes
Cbx.valueúlse
Next
Bonsoir Serge, en tout etat de cause, tous les contrôles OptionButton d'un contrôle Frame s'excluent l'un l'autre. donc le fait d'en activer un, désactive les autres !!!!!! on les appelle aussi "boutons radio"
ce qui n'est pas le cas des checkboxes (appelées également case à cocher) et la syntaxe ci-dessous devrait fonctionner : For Each Cbx In Frame2.CheckBoxes Cbx.valueúlse Next
@+
Michel Gaboly
Bonsoir gee-dee,
Bien sûr, sauf qu'ici il y a 2 Frame ;-))
Il s'agit de remettre à False les OptionButton du Frame 2 quand on clique sur un OptionBotton du Frame 1.
Bonsoir Serge, en tout etat de cause, tous les contrôles OptionButton d'un contrôle Frame s'excluent l'un l'autre. donc le fait d'en activer un, désactive les autres !!!!!! on les appelle aussi "boutons radio"
ce qui n'est pas le cas des checkboxes (appelées également case à cocher) et la syntaxe ci-dessous devrait fonctionner : For Each Cbx In Frame2.CheckBoxes Cbx.valueúlse Next
@+
-- Cordialement,
Michel Gaboly http://www.gaboly.com
Bonsoir gee-dee,
Bien sûr, sauf qu'ici il y a 2 Frame ;-))
Il s'agit de remettre à False les OptionButton du Frame 2 quand on clique
sur un OptionBotton du Frame 1.
Bonsoir Serge,
en tout etat de cause, tous les contrôles OptionButton d'un contrôle Frame
s'excluent l'un l'autre.
donc le fait d'en activer un, désactive les autres !!!!!!
on les appelle aussi "boutons radio"
ce qui n'est pas le cas des checkboxes (appelées également case à cocher)
et la syntaxe ci-dessous devrait fonctionner :
For Each Cbx In Frame2.CheckBoxes
Cbx.valueúlse
Next
Il s'agit de remettre à False les OptionButton du Frame 2 quand on clique sur un OptionBotton du Frame 1.
Bonsoir Serge, en tout etat de cause, tous les contrôles OptionButton d'un contrôle Frame s'excluent l'un l'autre. donc le fait d'en activer un, désactive les autres !!!!!! on les appelle aussi "boutons radio"
ce qui n'est pas le cas des checkboxes (appelées également case à cocher) et la syntaxe ci-dessous devrait fonctionner : For Each Cbx In Frame2.CheckBoxes Cbx.valueúlse Next
@+
-- Cordialement,
Michel Gaboly http://www.gaboly.com
Michel Gaboly
Re Serge,
Je te propose une solution à la fois plus simple et plus compliquée ;-))
Plus simple parce qu'on a pas besoin de connaître ni le nom, ni le nombre d'OptionButton, pour aucune des 2 Frames.
Plus compliquée, car elle fait intervenir un module de classe.
Elle est inspirée d'éléments trouvés dans les archives, eux- mêmes basés sur un exemple de John Walkenbach :
Dans un module de classe, module à nommer "ClasseOptions"
Option Explicit Public WithEvents OptionButtons As MSForms.OptionButton
Private Sub OptionButtons_Change() If OptionButtons Then RAZ OptionButtons.Parent.Parent End If End Sub
Private Sub RAZ(UF As UserForm) Dim C As Control For Each C In UF.Frame2.Controls If TypeName(C) = "OptionButton" Then C = False End If Next C End Sub
Dans le module du UserForm
Option Explicit Dim OptionButtons() As New ClasseOptions
Private Sub UserForm_Initialize() Dim OptionButtonsCount As Integer, C As Control OptionButtonsCount = 0 For Each C In Frame1.Controls If TypeName(C) = "OptionButton" Then OptionButtonsCount = OptionButtonsCount + 1 ReDim Preserve OptionButtons(1 To OptionButtonsCount) Set OptionButtons(OptionButtonsCount).OptionButtons = C End If Next C End Sub
Le module de classe permet de définir une nouvelle classe, "ClasseOptions" qui sera utilisée comme une collection d' OptionButton, avec les propriétés, méthodes et événements d'un OptionButton :
Public WithEvents OptionButtons As MSForms.OptionButton
Une seule procédure, gère l'événement Change de chaque OptionButton membre de la collection. Elle appelle une autre procédure, "RAZ" qui remet à false tous les Option- Button du Frame2.
La procédure RAZ a besoin du nom du UserForm concerné.
On aurait pu écrire une procédure sans argument :
Private Sub RAZ() Dim C As Control For Each C In UserForm1.Frame2.Controls If TypeName(C) = "OptionButton" Then C = False End If Next C End Sub
mais cette version présente le gros défaut, selon moi, de nécessiter une modification du code si on renomme le User- Form.
C'est pourquoi je préfère utiliser dans l'événement Change :
RAZ OptionButtons.Parent.Parent
En effet, le Parent de l'OptionButton modifié (qui doit pro- voquer l'exécution de RAZ est "Frame1", qui a lui-même pour parent le UserForm. Cela permet d'utilser ensuite :
Private Sub RAZ(UF As UserForm) ... End Sub
Dans le module du UserForm
Dim OptionButtons() As New ClasseOptions
permet de définir une matrice, rattachée à la classe ClasseOptions (nom du module de classe).
Le UserForm_Initialize() permet de définir les mem- bres de cette collection, constitués par les OptionButton du Frame1
Voilà. Les commentaires sont les bienvenus. Serge, je peux t'envoyer le classeur exemple en Bal si tu veux. Redonne-moi ton adresse ; celle que j'ai n'est proba- blement pas à jour.
Bonchoir les aminches,
Comment décocher tous les boutons Option de Frame2 quand on clique sur un bouton Option quelconque de Frame1 ?
Marci
;-)
Sarge
-- Cordialement,
Michel Gaboly http://www.gaboly.com
Re Serge,
Je te propose une solution à la fois plus simple et plus
compliquée ;-))
Plus simple parce qu'on a pas besoin de connaître ni le nom,
ni le nombre d'OptionButton, pour aucune des 2 Frames.
Plus compliquée, car elle fait intervenir un module de classe.
Elle est inspirée d'éléments trouvés dans les archives, eux-
mêmes basés sur un exemple de John Walkenbach :
Dans un module de classe, module à nommer "ClasseOptions"
Option Explicit
Public WithEvents OptionButtons As MSForms.OptionButton
Private Sub OptionButtons_Change()
If OptionButtons Then
RAZ OptionButtons.Parent.Parent
End If
End Sub
Private Sub RAZ(UF As UserForm)
Dim C As Control
For Each C In UF.Frame2.Controls
If TypeName(C) = "OptionButton" Then
C = False
End If
Next C
End Sub
Dans le module du UserForm
Option Explicit
Dim OptionButtons() As New ClasseOptions
Private Sub UserForm_Initialize()
Dim OptionButtonsCount As Integer, C As Control
OptionButtonsCount = 0
For Each C In Frame1.Controls
If TypeName(C) = "OptionButton" Then
OptionButtonsCount = OptionButtonsCount + 1
ReDim Preserve OptionButtons(1 To OptionButtonsCount)
Set OptionButtons(OptionButtonsCount).OptionButtons = C
End If
Next C
End Sub
Le module de classe permet de définir une nouvelle classe,
"ClasseOptions" qui sera utilisée comme une collection d'
OptionButton, avec les propriétés, méthodes et événements
d'un OptionButton :
Public WithEvents OptionButtons As MSForms.OptionButton
Une seule procédure, gère l'événement Change de chaque
OptionButton membre de la collection. Elle appelle une
autre procédure, "RAZ" qui remet à false tous les Option-
Button du Frame2.
La procédure RAZ a besoin du nom du UserForm concerné.
On aurait pu écrire une procédure sans argument :
Private Sub RAZ()
Dim C As Control
For Each C In UserForm1.Frame2.Controls
If TypeName(C) = "OptionButton" Then
C = False
End If
Next C
End Sub
mais cette version présente le gros défaut, selon moi, de
nécessiter une modification du code si on renomme le User-
Form.
C'est pourquoi je préfère utiliser dans l'événement Change :
RAZ OptionButtons.Parent.Parent
En effet, le Parent de l'OptionButton modifié (qui doit pro-
voquer l'exécution de RAZ est "Frame1", qui a lui-même
pour parent le UserForm. Cela permet d'utilser ensuite :
Private Sub RAZ(UF As UserForm)
...
End Sub
Dans le module du UserForm
Dim OptionButtons() As New ClasseOptions
permet de définir une matrice, rattachée à la classe
ClasseOptions (nom du module de classe).
Le UserForm_Initialize() permet de définir les mem-
bres de cette collection, constitués par les OptionButton
du Frame1
Voilà. Les commentaires sont les bienvenus. Serge, je
peux t'envoyer le classeur exemple en Bal si tu veux.
Redonne-moi ton adresse ; celle que j'ai n'est proba-
blement pas à jour.
Bonchoir les aminches,
Comment décocher tous les boutons Option de Frame2
quand on clique sur un bouton Option quelconque de Frame1 ?
Je te propose une solution à la fois plus simple et plus compliquée ;-))
Plus simple parce qu'on a pas besoin de connaître ni le nom, ni le nombre d'OptionButton, pour aucune des 2 Frames.
Plus compliquée, car elle fait intervenir un module de classe.
Elle est inspirée d'éléments trouvés dans les archives, eux- mêmes basés sur un exemple de John Walkenbach :
Dans un module de classe, module à nommer "ClasseOptions"
Option Explicit Public WithEvents OptionButtons As MSForms.OptionButton
Private Sub OptionButtons_Change() If OptionButtons Then RAZ OptionButtons.Parent.Parent End If End Sub
Private Sub RAZ(UF As UserForm) Dim C As Control For Each C In UF.Frame2.Controls If TypeName(C) = "OptionButton" Then C = False End If Next C End Sub
Dans le module du UserForm
Option Explicit Dim OptionButtons() As New ClasseOptions
Private Sub UserForm_Initialize() Dim OptionButtonsCount As Integer, C As Control OptionButtonsCount = 0 For Each C In Frame1.Controls If TypeName(C) = "OptionButton" Then OptionButtonsCount = OptionButtonsCount + 1 ReDim Preserve OptionButtons(1 To OptionButtonsCount) Set OptionButtons(OptionButtonsCount).OptionButtons = C End If Next C End Sub
Le module de classe permet de définir une nouvelle classe, "ClasseOptions" qui sera utilisée comme une collection d' OptionButton, avec les propriétés, méthodes et événements d'un OptionButton :
Public WithEvents OptionButtons As MSForms.OptionButton
Une seule procédure, gère l'événement Change de chaque OptionButton membre de la collection. Elle appelle une autre procédure, "RAZ" qui remet à false tous les Option- Button du Frame2.
La procédure RAZ a besoin du nom du UserForm concerné.
On aurait pu écrire une procédure sans argument :
Private Sub RAZ() Dim C As Control For Each C In UserForm1.Frame2.Controls If TypeName(C) = "OptionButton" Then C = False End If Next C End Sub
mais cette version présente le gros défaut, selon moi, de nécessiter une modification du code si on renomme le User- Form.
C'est pourquoi je préfère utiliser dans l'événement Change :
RAZ OptionButtons.Parent.Parent
En effet, le Parent de l'OptionButton modifié (qui doit pro- voquer l'exécution de RAZ est "Frame1", qui a lui-même pour parent le UserForm. Cela permet d'utilser ensuite :
Private Sub RAZ(UF As UserForm) ... End Sub
Dans le module du UserForm
Dim OptionButtons() As New ClasseOptions
permet de définir une matrice, rattachée à la classe ClasseOptions (nom du module de classe).
Le UserForm_Initialize() permet de définir les mem- bres de cette collection, constitués par les OptionButton du Frame1
Voilà. Les commentaires sont les bienvenus. Serge, je peux t'envoyer le classeur exemple en Bal si tu veux. Redonne-moi ton adresse ; celle que j'ai n'est proba- blement pas à jour.
Bonchoir les aminches,
Comment décocher tous les boutons Option de Frame2 quand on clique sur un bouton Option quelconque de Frame1 ?
Marci
;-)
Sarge
-- Cordialement,
Michel Gaboly http://www.gaboly.com
AV
Avec l'évènement "Enter" de Frame1 ça devrait suffire :
Private Sub Frame1_Enter() Dim x As Control For Each x In Me.Frame2.Controls If TypeName(x) = "OptionButton" Then x = False Next End Sub
AV
Avec l'évènement "Enter" de Frame1 ça devrait suffire :
Private Sub Frame1_Enter()
Dim x As Control
For Each x In Me.Frame2.Controls
If TypeName(x) = "OptionButton" Then x = False
Next
End Sub
Avec l'évènement "Enter" de Frame1 ça devrait suffire :
Private Sub Frame1_Enter() Dim x As Control For Each x In Me.Frame2.Controls If TypeName(x) = "OptionButton" Then x = False Next End Sub
AV
Michel Gaboly
Un peu trop radical ;-((
Un clic accidentel sur Frame1 remet à False les OptionButton de Frame2. Pas sûr que l'utilsateur apprécie.
Sans compter le cas où Frame1 comporte d'autres contrôles que des OptionButton, hypothèse que tu envisages pour Frame2 puisque tu fais un test avec TypeName.
Avec l'évènement "Enter" de Frame1 ça devrait suffire :
Private Sub Frame1_Enter() Dim x As Control For Each x In Me.Frame2.Controls If TypeName(x) = "OptionButton" Then x = False Next End Sub
AV
--
Michel Gaboly http://www.gaboly.com
Un peu trop radical ;-((
Un clic accidentel sur Frame1 remet à False les
OptionButton de Frame2. Pas sûr que l'utilsateur
apprécie.
Sans compter le cas où Frame1 comporte d'autres
contrôles que des OptionButton, hypothèse que tu
envisages pour Frame2 puisque tu fais un test avec
TypeName.
Avec l'évènement "Enter" de Frame1 ça devrait suffire :
Private Sub Frame1_Enter()
Dim x As Control
For Each x In Me.Frame2.Controls
If TypeName(x) = "OptionButton" Then x = False
Next
End Sub
Un clic accidentel sur Frame1 remet à False les OptionButton de Frame2. Pas sûr que l'utilsateur apprécie.
Sans compter le cas où Frame1 comporte d'autres contrôles que des OptionButton, hypothèse que tu envisages pour Frame2 puisque tu fais un test avec TypeName.
Avec l'évènement "Enter" de Frame1 ça devrait suffire :
Private Sub Frame1_Enter() Dim x As Control For Each x In Me.Frame2.Controls If TypeName(x) = "OptionButton" Then x = False Next End Sub
AV
--
Michel Gaboly http://www.gaboly.com
AV
Sans compter le cas où ....
Sans compter les cas où l'utilisateur : - clique par mégarde sur la croix de l'userform - par inadvertance, fait la combinaison de touches ctrl+alt+sup et clique ensuite, par distraction, sur "Fin de tâche" - se prend les pieds dans les fils et coupe l'alimentation ! - est victime d'un infarctus - -
AV
Sans compter le cas où ....
Sans compter les cas où l'utilisateur :
- clique par mégarde sur la croix de l'userform
- par inadvertance, fait la combinaison de touches ctrl+alt+sup et clique
ensuite, par distraction, sur "Fin de tâche"
- se prend les pieds dans les fils et coupe l'alimentation !
- est victime d'un infarctus
-
-
Sans compter les cas où l'utilisateur : - clique par mégarde sur la croix de l'userform - par inadvertance, fait la combinaison de touches ctrl+alt+sup et clique ensuite, par distraction, sur "Fin de tâche" - se prend les pieds dans les fils et coupe l'alimentation ! - est victime d'un infarctus - -
AV
sabatier
une réponse de mauvaise foi, alain...prendrais-tu modèle sur le capitaine de l'équipe de rugby d'angleterre? jps
AV a écrit:
Sans compter le cas où ....
Sans compter les cas où l'utilisateur : - clique par mégarde sur la croix de l'userform - par inadvertance, fait la combinaison de touches ctrl+alt+sup et clique ensuite, par distraction, sur "Fin de tâche" - se prend les pieds dans les fils et coupe l'alimentation ! - est victime d'un infarctus - -
AV
une réponse de mauvaise foi, alain...prendrais-tu modèle sur le
capitaine de l'équipe de rugby d'angleterre?
jps
AV a écrit:
Sans compter le cas où ....
Sans compter les cas où l'utilisateur :
- clique par mégarde sur la croix de l'userform
- par inadvertance, fait la combinaison de touches ctrl+alt+sup et clique
ensuite, par distraction, sur "Fin de tâche"
- se prend les pieds dans les fils et coupe l'alimentation !
- est victime d'un infarctus
-
-
une réponse de mauvaise foi, alain...prendrais-tu modèle sur le capitaine de l'équipe de rugby d'angleterre? jps
AV a écrit:
Sans compter le cas où ....
Sans compter les cas où l'utilisateur : - clique par mégarde sur la croix de l'userform - par inadvertance, fait la combinaison de touches ctrl+alt+sup et clique ensuite, par distraction, sur "Fin de tâche" - se prend les pieds dans les fils et coupe l'alimentation ! - est victime d'un infarctus - -
AV
AV
une réponse de mauvaise foi, alain... Pffff ... t'as lu la question... les réponses...testé ?
prendrais-tu modèle sur le capitaine de l'équipe de rugby d'angleterre? Ben, pour l'heure, la "vérité" est bien du côté des blancs !
AV
une réponse de mauvaise foi, alain...
Pffff ... t'as lu la question... les réponses...testé ?
prendrais-tu modèle sur le
capitaine de l'équipe de rugby d'angleterre?
Ben, pour l'heure, la "vérité" est bien du côté des blancs !