CSRocha
|
BRASILIA DF - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 28/07/2008 11:11 hs
Bom dia, galera. Meu problema é o seguinte:
Tenho 12 checkboxes, em array, de 0 a 11, com a seguinte disposição:
[ 0]....[ 1]....[ 2]....[ 3]
[ 4]....[ 5]....[ 6]....[ 7]
[ 8]....[ 9]....[10]....[11]
Acontece que tenho 4 grupos que executarão tarefas similares, assim:
grupo 0 a 4, grupo de 5 a 7, grupo 8 (individual) e grupo 9 a 11.
Parece que complicou... explico: se marcar o check 2, queria que automaticamnte os checks do seu grupo (0, 1 e 3) fossem marcados automaticamente e todos os demais desmarcados.
E assim sucessivamente. Estou apanhando bastante, usando Select, ou diversos Ifs aninhados e não obtive sucesso ainda. Alguém se habilita a resolver?
|
|
|
|
|
Postada em 28/07/2008 12:28 hs
Amigo, se você fizer assim:
Private Sub Check2_Click() Check1.Value = vbChecked Check3.Value = vbChecked Check4.Value = vbChecked End Sub
Não dá certo?
|
|
|
|
Postada em 28/07/2008 12:31 hs
se vc tem grupos pre-definidos pode trabalhar apenas com 4 chek box e isto facilitaria o trabalho.
|
|
|
Treze
|
SÃO VICENTE SP - BRASIL
|
|
Postada em 28/07/2008 12:51 hs
EIS O CÓDIGO COLEGA Dim CONT As Integer Private Sub Check1_Click(Index As Integer) ' GRUPO 1 If Index >= 0 And Index <= 4 And CONT = 0 Then For A = 0 To 4 Check1(A).Value = 1 Next A Else For A = 0 To 4 Check1(A).Value = 0 Next A End If ' GRUPO 2 If Index >= 5 And Index <= 7 And CONT = 0 Then For A = 5 To 7 Check1(A).Value = 1 Next A Else For A = 5 To 7 Check1(A).Value = 0 Next A End If ' GRUPO 3 If Index = 8 And CONT = 0 Then Check1(8).Value = 1 Else Check1(8).Value = 0 End If ' GRUPO 4 If Index >= 9 And Index <= 11 And CONT = 0 Then For A = 9 To 11 Check1(A).Value = 1 Next A Else For A = 9 To 11 Check1(A).Value = 0 Next A End If CONT = CONT + 1 If CONT = 2 Then CONT = 0 End Sub Private Sub Form_Load() CONT = 0 End Sub
|
TÓPICO EDITADO
|
|
|
|
|
Postada em 28/07/2008 13:05 hs
Os controles estão em um array: ckTurma(0) a (11). Já tentei também colocando cada grupo em um controle diferente:
ckSerie1(0 a 4) - 5 opções ckSerie2(0 a 2) - 3 opções ckSerie3 - só uma opção - e ckSerie4(0 a 2) - 3 opções
Mas também não consegui.
Cada opção corresponde a uma série escolar: 1o ao 5o ano, 6o ao 8o ano, 9o ano (de ensino fundamental) e 1a a 3a séries do ensino médio.
Cada grupo desses tem uma grade curricular igual, ok? Posso simplesmente fazer 4 checks, colocando as opções agrupadas, assim:
[ ] 1o ao 5o ano [ ] 6o ao 8o ano [ ] 9o ano [ ] 1a a 3a série
Isso resolveria, e é o que vou acabar fazendo mesmo. Mas queria automatizar com cada série individualmente porque praticamente a todo ano o MEC altera essa grade e de repente eles mudam tipo do 1o ao 4o ano uma grade, do 6o ao 9o ano outra grade, etc.
Então quero evitar ter que mexer no código no caso de ocorrer alterações em 2009, em 2010, etc. Talvez eu esteja fazendo a coisa errada, cansado nessa tentativa e não vendo outra solução, que pderia ser mais fácil.
O que estou fazendo nesse form é a criação da grade curricular, que ficará em tabela, por isso a necessidade de automatizar. Pelo exposto agora, se alguém tiver uma maneira diferente, aceito.
--------------- Treze, vc postou enquanto eu digitava esta resposta. Vou olhar teu código...
|
TÓPICO EDITADO
|
|
|
|
PH1959
|
SÃO JOSÉ DOS CAMPOS SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 28/07/2008 13:08 hs
o chekbox trabalha em grupo... para vc fazer o q vc quer vc tem q ter cada grupo com um nome grupo 0 a 4, grupo de 5 a 7, grupo 8 (individual) e grupo 9 a 11. ficaria ....check1(0) até check1(4) check2(0) até ckeck2(2) check3 (0) check4(0) a check4(2)
|
|
|
|