Jump to content
Fórum Script Brasil
  • 0
Sign in to follow this  
The Guga

Melhoria de código - Excel / VB

Question

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

Share this post


Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Cloud Computing


  • Forum Statistics

    • Total Topics
      148561
    • Total Posts
      644242
×
×
  • Create New...