Bonjour,
J'ai un userform dans lequel j'ai quatre optionbutton. J'aimerai savoir qu'elle est le code pour distinguer chacun des boutons, en utilisant une fonction "Case" au lieu d'utiliser des boucles "IF" imbriques...
Merci :mouarf:
Version imprimable
Bonjour,
J'ai un userform dans lequel j'ai quatre optionbutton. J'aimerai savoir qu'elle est le code pour distinguer chacun des boutons, en utilisant une fonction "Case" au lieu d'utiliser des boucles "IF" imbriques...
Merci :mouarf:
Montre ton code avec tes ifs, on te mettra des cases là où il faut qu'elles soient, si c'est possible... ;)
A+
Bien sur ! Merci en tout cas de l'aide
Et en fait j'ai 4 gros cas comme ca et avec dedans des mini cas a traiter normalement....Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 ComparaisonVisu.Show If ComparaisonVisu.OptionButton3 = True Then STRSQL3 = "SELECT Avg(CLO.Vintage) AS MoyenneVintage, avg(CLO.SettlementDate) AS MoyenneSettlementdate, avg(CLO.SizeDeal) AS MoyenneSizeDeal, Count(CLO.Vintage) AS NombreVintage " & _ "FROM CLO" Set Rs3 = Db1.OpenRecordset(STRSQL3, dbOpenSnapshot) Range("I10").CopyFromRecordset Rs3 End If If ComparaisonVisu.OptionButton2 = True Then STRSQL2 = "SELECT Avg(CLO.Vintage) AS MoyenneVintage, avg(CLO.SettlementDate) AS MoyenneSettlementdate, avg(CLO.SizeDeal) AS MoyenneSizeDeal, Count(CLO.Vintage) AS NombreVintage " & _ "FROM CLO" Set Rs2 = Db1.OpenRecordset(STRSQL2, dbOpenSnapshot) Range("I10").CopyFromRecordset Rs2 End If If ComparaisonVisu.OptionButton1 = True Then STRSQL2 = "SELECT Avg(CLO.Vintage) AS MoyenneVintage, avg(CLO.SettlementDate) AS MoyenneSettlementdate, avg(CLO.SizeDeal) AS MoyenneSizeDeal, Count(CLO.Vintage) AS NombreVintage " & _ "FROM CLO" Set Rs1 = Db1.OpenRecordset(STRSQL1, dbOpenSnapshot) Range("I10").CopyFromRecordset Rs1 End If
Euh...
Je me trompe ou tous tes cas contiennent exactement le même code (à part les noms des variables)?
Oui oui mais c'est parce que je bosse sur le code et que j'ai fait des copier coller pour expliciter ce que je voulais dire ! :king:
Du coup, pour essayer de simplifier le vrai code, c'est pas évident...
Pourquoi ne nous donnes-tu pas le code réel?
Euh ben comme je l'ai dit avant c'est parce que je suis en train de le taper... Je voulais savoir comment on utilisait le "case" avec des optionbuttons...
bonjour
Tu peux placer des OptionButton dans un Frame et tester cette procédure:
Code:
1
2
3
4
5
6
7
8
9
10 Private Sub CommandButton1_Click() Dim Ctrl As Control For Each Ctrl In Frame1.Controls If Ctrl.Object.Value = True Then MsgBox Ctrl.Object.Caption Exit For End If Next Ctrl End Sub
michel
Oui, ou
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Select case True Case Me.OptionButton1.value 'ton code Case Me.OptionButton2.value STRSQL2 = "SELECT Avg(CLO.Vintage) AS MoyenneVintage, avg(CLO.SettlementDate) AS MoyenneSettlementdate, avg(CLO.SizeDeal) AS MoyenneSizeDeal, Count(CLO.Vintage) AS NombreVintage " & _ "FROM CLO" Set Rs1 = Db1.OpenRecordset(STRSQL1, dbOpenSnapshot) Range("I10").CopyFromRecordset Rs1 Case Me.OptionButton3.value STRSQL3 = "SELECT Avg(CLO.Vintage) AS MoyenneVintage, avg(CLO.SettlementDate) AS MoyenneSettlementdate, avg(CLO.SizeDeal) AS MoyenneSizeDeal, Count(CLO.Vintage) AS NombreVintage " & _ "FROM CLO" Set Rs3 = Db1.OpenRecordset(STRSQL3, dbOpenSnapshot) Range("I10").CopyFromRecordset Rs3 Case else End select
sinon, pour faire simple et pour le principe
tu peux faire comme ça
soit a la façon du bouton 1, soit celle du bouton 2Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 Public var As Variant Public variable As Integer Private Sub CommandButton1_Click() MsgBox "je t'aime " & var End Sub Private Sub CommandButton2_Click() Select Case variable Case 1 MsgBox "c'est le 1" Case 2 MsgBox "c'est le 2" Case 3 MsgBox "c'est le 3" End Select End Sub Private Sub OptionButton1_Click() var = "un peu" variable = 1 End Sub Private Sub OptionButton2_Click() var = "beaucoup" variable = 2 End Sub Private Sub OptionButton3_Click() var = "A la folie" variable = 3 End Sub
ps n'y voit rien de personnel :D
En tout cas c'est mignon comme programme... :bebe: