maxx-lamenace
XLDnaute Nouveau
Bonjour à tous !
Je cherche à écrire une macro me permettant de réaliser un truc un peu complexe (je précise que je suis nul en VBA, je m'en sers que pour des choses basiques). Et là je patauge vraiment dans la semoule.
J'ai besoin de créer 3 groupes de 3 boutons chacun par ligne. Exemple :
Col.D Col.E Col.F Col.G Col.H Col.I Col.J Col.K Col.L
Button 1-Button2-Button3 [group1] ; Button4-Button5-Button6 [group2] ; Button7-Button8-Button9 [group3]
Chaque bouton doit être lié à la cellule qui le contient. Donc dans l'exemple : Bouton1 lié à D1, Bouton2 lié à E1, etc.
Le problème est que j'ai besoin de faire ça pour plus de 100 lignes...
La cerise sur le gâteau serait de pouvoir activer certains de ces boutons sous condition. Exemple :
- Boutons du groupe 2 actifs uniquement si l'un des boutons du groupe 1 est coché (peu importe lequel) ;
- Boutons du groupe 3 actifs uniquement si le bouton 6 [groupe 2] est coché.
Je ne sais même pas si ce que je cherche à faire est possible...
J'ai essayé de travailler avec ce code trouvé sur un autre forum :
... sans succès, j'arrive pas à l'adapter à mes besoins.
Toute aide serait la bienvenue, j'ai besoin de ça pour le travail et je suis vraiment pas assez calé en programmation VBA...
Merci par avance !
Je cherche à écrire une macro me permettant de réaliser un truc un peu complexe (je précise que je suis nul en VBA, je m'en sers que pour des choses basiques). Et là je patauge vraiment dans la semoule.
J'ai besoin de créer 3 groupes de 3 boutons chacun par ligne. Exemple :
Col.D Col.E Col.F Col.G Col.H Col.I Col.J Col.K Col.L
Button 1-Button2-Button3 [group1] ; Button4-Button5-Button6 [group2] ; Button7-Button8-Button9 [group3]
Chaque bouton doit être lié à la cellule qui le contient. Donc dans l'exemple : Bouton1 lié à D1, Bouton2 lié à E1, etc.
Le problème est que j'ai besoin de faire ça pour plus de 100 lignes...
La cerise sur le gâteau serait de pouvoir activer certains de ces boutons sous condition. Exemple :
- Boutons du groupe 2 actifs uniquement si l'un des boutons du groupe 1 est coché (peu importe lequel) ;
- Boutons du groupe 3 actifs uniquement si le bouton 6 [groupe 2] est coché.
Je ne sais même pas si ce que je cherche à faire est possible...
J'ai essayé de travailler avec ce code trouvé sur un autre forum :
Code:
Sub fill_range_with_optionbuttons5() Dim rownr As Long, i As Integer
Dim counter As Long
Dim rng As Range
Dim txt(4) As String
Dim nm(4) As String
'replace each occurence of 22 by 800
Set rng = Range("E1:G20") 'changed to d22
txt(1) = ""
txt(2) = ""
txt(3) = "" 'added
txt(4) = "" 'added
nm(1) = "RRR" 'single R or V impossible "R1" is invalid name (= cellreference)
nm(2) = "VVV"
nm(3) = "zzz" 'added
nm(4) = "***" 'added
Application.ScreenUpdating = False
Rows("1:20").RowHeight = 18
For rownr = 1 To 20
counter = 0
For i = 1 To 4 'change here
counter = counter + 1
Set rng = Cells(rownr, i)
ActiveSheet.OLEObjects.Add(ClassType:="Forms.OptionButton.1", Link:=False, _
DisplayAsIcon:=False, Left:=rng.Left, Top:=rng.Top, Width:=rng.Width, Height:=rng.Height).Name = nm(i) & rownr
With ActiveSheet.Shapes(nm(i) & rownr).OLEFormat.Object.Object
.Caption = txt(i)
'.LinkedCell = ColLetter(i) & CStr(rownr)
'Cells(rownr, 3) = False
.GroupName = "grp" & rownr
End With
Next i
Next rownr
Application.ScreenUpdating = True
End Sub
... sans succès, j'arrive pas à l'adapter à mes besoins.
Toute aide serait la bienvenue, j'ai besoin de ça pour le travail et je suis vraiment pas assez calé en programmation VBA...
Merci par avance !