Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

OptionButton

3 réponses
Avatar
man77
Bonjour,
J'aurais besoin d'aide.
Voilà, j'ai 30 "optionButton" a creer dans une même feuille. Elles feront toute la même chose. Mais chacune dans une ligne différente.
Voilà pour la ligne 15 par exemple :

Private Sub OptionButton2_Click()
If OptionButton2.Value = True Then

A = Me.OptionButton2.TopLeftCell.Address
B = Me.OptionButton2.BottomRightCell.Address
actlign = Range(A, B)(1, 1).Row
Tiroir = Range("c" & actlign)

With Worksheets("eone")
Set CelluleTrouvée = .Range("d4:d122").Find(What:=Tiroir, _
LookIn:=xlValues, LookAt:=xlWhole)

If CelluleTrouvée Is Nothing Then
MsgBox "pas trouvé"
Else
Ligne = CelluleTrouvée.Row
Col = CelluleTrouvée.Column + 2
toto = Worksheets("eone").Cells(Ligne, Col).Value
MsgBox ("trouvé : ligne = " & Ligne & " , colonne = " & Col)
MsgBox "La valeur trouvée """ & toto & """" & " a été copié en feuil1, cellule F25."
End If
End With
Else
Sheets("feuil1").Show
End If

J'aimerais savoir si il y a plus simple qe de répèter 25 fois le même pas ou pas ...lol...
Peut-on écrire optionbutton & i et incrémenter i...
Comment déclarer le private sub alors...
Help!!!
@++

3 réponses

Avatar
isabelle
salut man,

tu pourrais le faire avec un module de classe
voici un p'tit exemple

http://cjoint.com/?AJhtrfzKar9

--
isabelle
Avatar
man77
isabelle a écrit le 07/10/2011 à 19h17 :
salut man,

tu pourrais le faire avec un module de classe
voici un p'tit exemple

http://cjoint.com/?AJhtrfzKar9

--
isabelle


Bonjour Et Wahou...
La je suis plus que dépassé...
Pourrais-tu me donner qq explications sur ton exemple.
Qui fait quoi et pourquoi...
Merci et @++
Avatar
isabelle
salut man,

'j'ai inséré un module de classe et sur la fenètre propriété je l'ai renommé MesCheckBox
'sur cette page de déclare la variable ChBx étant un objet MSForms.CheckBox
Public WithEvents ChBx As MSForms.CheckBox

'sur la page code ThisWorkbook
'je défini une variable "array" GrCheckBox() pour incorporer les objets de la classe MesCheckBox

Dim GrCheckBox() As New MesCheckBox

'la macro CreerClasse est pour ajouter les objects CheckBox dans la variable GrCheckBox()

Public Sub CreerClasse()
Dim c As Shape, i As Integer
For Each c In ActiveSheet.Shapes
If Left(c.Name, 8) = "CheckBox" Then
ReDim Preserve GrCheckBox(i)

'il faut noter ici que sur la page du module de classe MesCheckBox
'j'ai définie la variable ChBx étant un objet MSForms.CheckBox

Set GrCheckBox(i).ChBx = ActiveSheet.OLEObjects(c.Name).Object
i = i + 1
End If
Next
End Sub

'j'utilise l'événement Workbook_Open pour alimenter la classe

Private Sub Workbook_Open()
CreerClasse
End Sub

une fois que tout ça est en place sur le module de classe MesCheckBox
tu peut voir les événements de cette nouvelle classe en sélectionnant ChBx sur le combobox (Général)
(en haut du module) et tu sélectionne l'événement voulu sur le combobox (Déclarations)


note :
'il faut ajouter les références suivantes :
'Microsoft Windows Common Controls 6.0 (SP6)
'Microsoft Forms 2.0 Object Library

--
isabelle

Le 2011-10-10 08:57, man77 a écrit :
isabelle a écrit le 07/10/2011 à 19h17 :
salut man,

tu pourrais le faire avec un module de classe
voici un p'tit exemple

http://cjoint.com/?AJhtrfzKar9

--
isabelle


Bonjour Et Wahou...
La je suis plus que dépassé...
Pourrais-tu me donner qq explications sur ton exemple.
Qui fait quoi et pourquoi...
Merci et @++