beleza galera... Bom, preciso da ajuda de voces para otimizar uma parte do código de uma aplicação que estou responsável. Abaixo esta o código que existe hoje, ele oculpa umas 6 folhas e poderá caso conseguir ser resumido em algumas linhas.... Private Sub FinishButton_Click()
Dim I, J, K, Equip_A, Equip_E, Equip_NS, Equip_T, Aprov_Geral, Cont As Integer
Acertos = 0
Erros = 0
Sem_Resp = 0
Workbooks("Avaliacao.xls").Activate 'ativa a planilha avaliação
NumeroQuestoes = Worksheets("Configurações").Cells(5, 11) 'retorna o valor da celula da linha 5 coluna 11 ( k5 ) e o guarda na variavel NumeroQuestoes
' Questao 1 ' AQUI COMEÇA O CÓDIGO QUE QUERO OTIMIZAR
If Me.OptionButton1.Value = True Then ' NOTE QUE O NOME DO BOTÃO OptionButton1 tem o valor 1 e será incrementado em 3 quando passar para a questão 2
Matriz(0, 3) = 1 ' Na matriz temos dois valores 0 e 3 será incrementado de um em um
ElseIf Me.OptionButton2.Value = True Then 'Idem do OpitinoButton1, será incrementado de 3 em 3
Matriz(0, 3) = 0
Else
Matriz(0, 3) = 2
End If
' Questao 2
If Me.OptionButton4.Value = True Then
Matriz(1, 3) = 1
ElseIf Me.OptionButton5.Value = True Then
Matriz(1, 3) = 0
Else
Matriz(1, 3) = 2
End If
' Questao 3
If Me.OptionButton7.Value = True Then
Matriz(2, 3) = 1
ElseIf Me.OptionButton8.Value = True Then
Matriz(2, 3) = 0
Else
Matriz(2, 3) = 2
End If
' Questao 4
If Me.OptionButton10.Value = True Then
Matriz(3, 3) = 1
ElseIf Me.OptionButton11.Value = True Then
Matriz(3, 3) = 0
Else
Matriz(3, 3) = 2
End If
' Questao 5
If Me.OptionButton13.Value = True Then
Matriz(4, 3) = 1
ElseIf Me.OptionButton14.Value = True Then
Matriz(4, 3) = 0
Else
Matriz(4, 3) = 2
End If
' Questao 6
If Me.OptionButton16.Value = True Then
Matriz(5, 3) = 1
ElseIf Me.OptionButton17.Value = True Then
Matriz(5, 3) = 0
Else
Matriz(5, 3) = 2
End If
' Questao 7
If Me.OptionButton19.Value = True Then
Matriz(6, 3) = 1
ElseIf Me.OptionButton20.Value = True Then
Matriz(6, 3) = 0
Else
Matriz(6, 3) = 2
End If
' Questao 8
If Me.OptionButton22.Value = True Then
Matriz(7, 3) = 1
ElseIf Me.OptionButton23.Value = True Then
Matriz(7, 3) = 0
Else
Matriz(7, 3) = 2
End If
' Questao 9
If Me.OptionButton25.Value = True Then
Matriz(8, 3) = 1
ElseIf Me.OptionButton26.Value = True Then
Matriz(8, 3) = 0
Else
Matriz(8, 3) = 2
End If
' Questao 10
If Me.OptionButton28.Value = True Then
Matriz(9, 3) = 1
ElseIf Me.OptionButton29.Value = True Then
Matriz(9, 3) = 0
Else
Matriz(9, 3) = 2
End If
' Questao 11
If Me.OptionButton31.Value = True Then
Matriz(10, 3) = 1
ElseIf Me.OptionButton32.Value = True Then
Matriz(10, 3) = 0
Else
Matriz(10, 3) = 2
End If
' Questao 12
If Me.OptionButton34.Value = True Then
Matriz(11, 3) = 1
ElseIf Me.OptionButton35.Value = True Then
Matriz(11, 3) = 0
Else
Matriz(11, 3) = 2
End If
' Questao 13
If Me.OptionButton37.Value = True Then
Matriz(12, 3) = 1
ElseIf Me.OptionButton38.Value = True Then
Matriz(12, 3) = 0
Else
Matriz(12, 3) = 2
End If
' Questao 14
If Me.OptionButton40.Value = True Then
Matriz(13, 3) = 1
ElseIf Me.OptionButton41.Value = True Then
Matriz(13, 3) = 0
Else
Matriz(13, 3) = 2
End If
' Questao 15
If Me.OptionButton43.Value = True Then
Matriz(14, 3) = 1
ElseIf Me.OptionButton44.Value = True Then
Matriz(14, 3) = 0
Else
Matriz(14, 3) = 2
End If
' Questao 16
If Me.OptionButton46.Value = True Then
Matriz(15, 3) = 1
ElseIf Me.OptionButton47.Value = True Then
Matriz(15, 3) = 0
Else
Matriz(15, 3) = 2
End If
' Questao 17
If Me.OptionButton49.Value = True Then
Matriz(16, 3) = 1
ElseIf Me.OptionButton50.Value = True Then
Matriz(16, 3) = 0
Else
Matriz(16, 3) = 2
End If
' Questao 18
If Me.OptionButton52.Value = True Then
Matriz(17, 3) = 1
ElseIf Me.OptionButton53.Value = True Then
Matriz(17, 3) = 0
Else
Matriz(17, 3) = 2
End If
' Questao 19
If Me.OptionButton55.Value = True Then
Matriz(18, 3) = 1
ElseIf Me.OptionButton56.Value = True Then
Matriz(18, 3) = 0
Else
Matriz(18, 3) = 2
End If
' Questao 20
If Me.OptionButton58.Value = True Then
Matriz(19, 3) = 1
ElseIf Me.OptionButton59.Value = True Then
Matriz(19, 3) = 0
Else
Matriz(19, 3) = 2
End If
' Questao 21
If Me.OptionButton61.Value = True Then
Matriz(20, 3) = 1
ElseIf Me.OptionButton62.Value = True Then
Matriz(20, 3) = 0
Else
Matriz(20, 3) = 2
End If
' Questao 22
If Me.OptionButton64.Value = True Then
Matriz(21, 3) = 1
ElseIf Me.OptionButton65.Value = True Then
Matriz(21, 3) = 0
Else
Matriz(21, 3) = 2
End If
' Questao 23
If Me.OptionButton67.Value = True Then
Matriz(22, 3) = 1
ElseIf Me.OptionButton68.Value = True Then
Matriz(22, 3) = 0
Else
Matriz(22, 3) = 2
End If
' Questao 24
If Me.OptionButton70.Value = True Then
Matriz(23, 3) = 1
ElseIf Me.OptionButton71.Value = True Then
Matriz(23, 3) = 0
Else
Matriz(23, 3) = 2
End If
' Questao 25
If Me.OptionButton73.Value = True Then
Matriz(24, 3) = 1
ElseIf Me.OptionButton74.Value = True Then
Matriz(24, 3) = 0
Else
Matriz(24, 3) = 2
End If
' Questao 26
If Me.OptionButton76.Value = True Then
Matriz(25, 3) = 1
ElseIf Me.OptionButton77.Value = True Then
Matriz(25, 3) = 0
Else
Matriz(25, 3) = 2
End If
' Questao 27
If Me.OptionButton79.Value = True Then
Matriz(26, 3) = 1
ElseIf Me.OptionButton80.Value = True Then
Matriz(26, 3) = 0
Else
Matriz(26, 3) = 2
End If
' Questao 28
If Me.OptionButton82.Value = True Then
Matriz(27, 3) = 1
ElseIf Me.OptionButton83.Value = True Then
Matriz(27, 3) = 0
Else
Matriz(27, 3) = 2
End If
' Questao 29
If Me.OptionButton85.Value = True Then
Matriz(28, 3) = 1
ElseIf Me.OptionButton86.Value = True Then
Matriz(28, 3) = 0
Else
Matriz(28, 3) = 2
End If
' Questao 30
If Me.OptionButton88.Value = True Then
Matriz(29, 3) = 1
ElseIf Me.OptionButton89.Value = True Then
Matriz(29, 3) = 0
Else
Matriz(29, 3) = 2
End If
For I = 0 To NumeroQuestoes
If Matriz(I, 2) = Matriz(I, 3) Then
Matriz(I, 4) = 1
Acertos = Acertos + 1
ElseIf Matriz(I, 3) = 2 Then
Matriz(I, 4) = 2
Sem_Resp = Sem_Resp + 1
Else
Matriz(I, 4) = 0
Erros = Erros + 1
End If
Next I
Resultados.Label4.Caption = Acertos & " Questões - " & Round(((Acertos / NumeroQuestoes) * 100), 2) & "%"
Resultados.Label5.Caption = Erros & " Questões - " & Round(((Erros / NumeroQuestoes) * 100), 2) & "%"
Resultados.Label6.Caption = Sem_Resp & " Questões - " & Round(((Sem_Resp / NumeroQuestoes) * 100), 2) & "%"
Aprov_Geral = Round(Acertos / NumeroQuestoes * 100, 2)
Resultados.Label7.Caption = Aprov_Geral & "%"
PENSEI E RESUMIR TODA ESTAS QUESTÕES COM A FUNÇÃO ABAIXO ONDE:
INSERI VARIAVEIS INTEIRAS:
Q = IRA SER INCREMENTADO DE UM EM UM E FICAR DENTRO DO PARENTESES DA MATRIZ COMO DESCREVI
B = 1 TERA O VALOR INICIAL DE 1 PARA O OptionButton1
C = 2 TERA O VALOR INICIAL DE 2 PARA O OptionButton2
ABAIXO O CÓGIDO
' DEFINIDO AS VARIAVEIS NO INICIO DO CÓDIGO AUX1 E AUX2 COMO STRING E Q,B,C COMO INTEIRAS
Q = 0
B = 1
C = 2
Do
Aux1 = (OptionButton & "B") 'TENHO QUE FAZER COM QUE EU CONCATENE A PALAVRA OptionButton COM O NOVO VALOR
Aux2 = OptionButton & "C"
If Me.Aux1.Value = True Then 'AUX1 IRA RECEBER A STRIG AMARZENADA PARA O BOTÃO, ESTA DANDO ERRO AQUI
ERRO: ERRO DE COMPILAÇÃO ( SELECIONADO .Aux1 ) era esperado: Método ou membro de
'dados não encontrado
Matriz(Q, 3) = 1
ElseIf Me.Aux2.Value = True Then ' DANDO O MESMO ERRO AQUI
Matriz(Q, 3) = 0
Else
Matriz(Q, 3) = 2
End If
Q = Q + 1 AQUI OS VALORES SÃO INCREMENTADOS
B = B + 3
C = C + 3
Loop While (Q < NumeroQuestoes) JÁ TENTEI CONCATENAR NO LOCAL DA AUX1 E 2 A STRING OptionButton COM OS VALORES B E C MAS TENDO O MESMO PROBLEMA DE ERRO DE COMPILAÇÃO... DESDE JÁ AGRADEÇO A AJUDA DE vocês.. VALEU GALERA... THE GUGA