Limpar formulário q...
 
Notifications
Clear all

Limpar formulário que tem botões de opção

8 Posts
2 Usuários
0 Reactions
1,784 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde a todos!

Gostaria de saber como limpar todas as opções que marquei no meu formulário a fim de poder usá-lo novamente.
Particularmente, como limpar frames com botões de opção.

Grato.
Silvio

 
Postado : 16/04/2013 1:11 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Silvio,

Boa Tarde!

Se seus todos os seus botões de opção começarem, por exemplo, com o nome Opt, você pode utilizar esse código:

Private Sub UserForm_Initialize()
    For Each bt In UserForm1.Controls
        If Left(bt.Name, 3) = "Opt" Then
            bt.Value = False
        End If
    Next
End Sub
 
Postado : 16/04/2013 1:37 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa noite!!

Talvez uma outra forma..

Sub Limpar(InFrame As MSForms.Frame) 
     
    Dim ctlX As MSForms.Control 
     
    For Each ctlX In InFrame.Controls 
        If TypeOf ctlX Is MSForms.OptionButton Then 
            If ctlX.Value Then 
                ctlX.Value = False 
                Exit For 
            End If 
        End If 
    Next 
     
End Sub 
 
Postado : 16/04/2013 4:53 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia Wagner e Alexandre!

Estou praticando a criação de formulários.
Utilizei um tutorial da página da Qualitá para exercitar.
tem como usar o código proposto associado a um botão?

Muito Obrigado!

Silvio.

 
Postado : 17/04/2013 6:40 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Para "formularios" em planilhas pode-se utilizar:

Sub Apagactrl()
With Sheets("Plan1")
    For Each sh In .Shapes
      'MsgBox sh.Name
        If UCase(Left(sh.Name, 3)) = "OPT" Or UCase(Left(sh.Name, 3)) = "CHE" Then
        sh.Select
        With Selection
        .Value = xlOff
        End With
        End If
    Next
.Range("K25").Select
End With
End Sub
 
Postado : 17/04/2013 7:54 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia Reinaldo e Wagner!

Tem como incluir no código para apagar não só as marcações dos botões de opção, mas também as células em que foram digitadas outras informações?

Grato.

Silvio.

 
Postado : 22/04/2013 7:13 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Basta acrescentar a(s) range(s) a ser limpara antes do final da rotina

    Sub Apagactrl()
    With Sheets("Plan1")
        For Each sh In .Shapes
          'MsgBox sh.Name
            If UCase(Left(sh.Name, 3)) = "OPT" Or UCase(Left(sh.Name, 3)) = "CHE" Then
            sh.Select
            With Selection
            .Value = xlOff
            End With
            End If
        Next
    .Range("C11,F11,J11,C14,C16,C18,F14,F16,F18,F20,I16,I18,B23:J24").ClearContents
    .Range("K25").Select
    End With
    End Sub
 
Postado : 22/04/2013 7:32 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Reinaldo,

Só queria me justificar pois estou começando a estudar VBA.
Por isso, copio e colo os códigos para testar nas minhas planilhas.

Obrigado a você e ao Wagenr pela ajuda.

Silvio.

 
Postado : 22/04/2013 8:03 am