Notifications
Clear all

Simplificar Código (Botão de Opção)

8 Posts
4 Usuários
0 Reactions
1,236 Visualizações
(@romanholi)
Posts: 177
Estimable Member
Topic starter
 

Boa Tarde Galera!!!!

Existe uma forma de simplificar o código abaixo? Vou ter muitos botões de opção no meu formulário:

Talvez utilizando o CASE?

    If Opt_Q01_Sim.Value = True Then
       
       .Cells(indice, 16).Value = "SIM"
       
       Else
       
       If Opt_Q01_Nao.Value = True Then
       
       .Cells(indice, 16).Value = "NÃO"
       
       End If
       End If
       
       
       If Opt_Q02_Sim.Value = True Then
       
       .Cells(indice, 17).Value = "SIM"
       
       Else
       
       If Opt_Q02_Nao.Value = True Then
       
       .Cells(indice, 17).Value = "NÃO"
       
       End If
       End If
 
Postado : 29/03/2017 12:26 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Imagino q se vc vai usar botao de opção so vai ser possivel selecionar 1 de cada vez

Entao é so retornar o valor true do botao selecionado.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 29/03/2017 12:29 pm
(@romanholi)
Posts: 177
Estimable Member
Topic starter
 

Mas eu preciso gravar SIM E NAO

 
Postado : 29/03/2017 1:01 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Disponibilize seu arquivo com alguns dados

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 29/03/2017 1:35 pm
(@romanholi)
Posts: 177
Estimable Member
Topic starter
 

Tranquilo Prudencio, não dá para disponibilizar esse arquivo. Fiz o código da maneira abaixo e fucnionou, só que tive que colocar vários IF's! Queria uma ideia para simplificar! Mas está funcionando!

Obrigado pelo Retorno!

If Opt_Q01_Sim.Value = True Then
       
       .Cells(indice, 16).Value = "SIM"
       
       Else
       
       If Opt_Q01_Nao.Value = True Then
       
       .Cells(indice, 16).Value = "NÃO"
       
       End If
       End If
       
       
       If Opt_Q02_Sim.Value = True Then
       
       .Cells(indice, 17).Value = "SIM"
       
       Else
       
       If Opt_Q02_Nao.Value = True Then
       
       .Cells(indice, 17).Value = "NÃO"
       
       End If
       End If
       
       
       If Opt_Q03_Sim.Value = True Then
       
       .Cells(indice, 18).Value = "SIM"
       
       Else
       
       If Opt_Q03_Nao.Value = True Then
       
       .Cells(indice, 18).Value = "NÃO"
       
       End If
       End If
       
       
       .Cells(indice, 19).Value = Cmb_Q04_Escolha
       
       
  
       
       
       If Opt_Q05_Sim.Value = True Then
       
       .Cells(indice, 20).Value = "SIM"
       
       Else
       
       If Opt_Q05_Nao.Value = True Then
       
       .Cells(indice, 20).Value = "NÃO"
       
       End If
       End If
       
        If Opt_Q06_Sim.Value = True Then
       
       .Cells(indice, 21).Value = "SIM"
       
       Else
       
       If Opt_Q06_Nao.Value = True Then
       
       .Cells(indice, 21).Value = "NÃO"
       
       End If
       End If
       
        
        If Opt_Q07_Sim.Value = True Then
       
       .Cells(indice, 22).Value = "SIM"
       
       Else
       
       If Opt_Q07_Nao.Value = True Then
       
       .Cells(indice, 22).Value = "NÃO"
       
       End If
       End If
 
Postado : 30/03/2017 4:40 am
Basole
(@basole)
Posts: 487
Reputable Member
 

Deixei o codigo bem enxuto, sem verificar o valor do botao opcao "nao".
Mas para isso é preciso antes, fazer uma checagem e ver se o usuario marcou alguma opcao em cada conjunto.

 Dim j As Long
        For j = 1 To 7
            If j <> 4 Then
                If Me.Controls("Opt_Q0" & j & "_Sim").Value = True Then
                    .Cells(indice, j + 15).Value = "SIM"
                Else
                    .Cells(indice, j + 15).Value = "NÃO"
                End If
                Else
                 .Cells(indice, j + 15).Value = Me.Controls("Cmb_Q0" & j & "_Escolha")
            End If
        Next

    End With

Click em se a resposta foi util!

 
Postado : 30/03/2017 5:57 am
(@osvaldomp)
Posts: 857
Prominent Member
 
.Cells(indice, 16) = IIf(Opt_Q01_Sim.Value = True, "SIM", IIf(Opt_Q01_Nao.Value = True, "NÃO", ""))

Osvaldo

 
Postado : 30/03/2017 6:05 am
(@romanholi)
Posts: 177
Estimable Member
Topic starter
 

Valeu Meu Amigo!

 
Postado : 30/03/2017 11:04 am