Notifications
Clear all

Ocultar controle de formulário ao acionar macro

5 Posts
2 Usuários
0 Reactions
1,144 Visualizações
 Vkt
(@vkt)
Posts: 33
Eminent Member
Topic starter
 

Boa noite,

Adicionei à planilha alguns controles de formulário, mas eles não têm a opção de mover e dimensionar com as células.

Tenho uma macro para ocultar linhas e outra para reexibi-las.

Gostaria de, ao clicar em ocultar, os controles também ocultassem e da mesma forma, ao reexibir, voltassem.

Quando oculto as linhas os controles se agrupam em uma única linha.

Segue exemplo:

 
Postado : 28/08/2018 7:22 pm
(@teleguiado)
Posts: 142
Estimable Member
 

Veja neste site se te ajuda.

https://www.extendoffice.com/pt/documents/excel/3697-excel-hide-checkbox-with-row.html

Obrigado.

Teleguiado.
E-mail: [email protected]

 
Postado : 29/08/2018 6:49 am
 Vkt
(@vkt)
Posts: 33
Eminent Member
Topic starter
 

teleguiado,

Utilizei a macro informada e deu certo para ocultar os controles de formulário. No entanto só oculta quando clico na linha. Há como adaptar a macro para que ela oculte automaticamente quando eu clicar no botão da macro?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim xChkBox As CheckBox
    Dim xCell As Range
    Dim xHide As Boolean
    If Target.EntireRow.AddressLocal = Application.Intersect(Target, Target.EntireRow).AddressLocal Then
        xHide = (MsgBox("Hide Rows ???", vbYesNo + vbQuestion, "Kutools for Excel") = vbYes)
        Target.EntireRow.Hidden = xHide
        For Each xChkBox In ActiveSheet.CheckBoxes
            Set xCell = xChkBox.TopLeftCell
            If Not Intersect(xCell, Target) Is Nothing Then
                xChkBox.Visible = Not xHide
            End If
        Next
    End If
End Sub

Obrigado!

 
Postado : 29/08/2018 8:20 am
(@teleguiado)
Posts: 142
Estimable Member
 

Tente assim:

Sub OCULTAJANSED()
    Dim xChkBox As CheckBox
    Application.ScreenUpdating = False
    For Each myCell In Sheets("JANSED").Range("D2:D4")
        If myCell = "" Then
            myCell.EntireRow.Hidden = True
            
        End If
        
    Next myCell
    For Each xChkBox In ActiveSheet.CheckBoxes
        xChkBox.Visible = False
                
    Next
    Application.ScreenUpdating = True
End Sub
Sub REEXIBEEJANSED()
    Application.ScreenUpdating = False
    For Each myCell In Sheets("JANSED").Range("D2:D4")
        If myCell = "" Then
            myCell.EntireRow.Hidden = False
        End If
    Next myCell
    For Each xChkBox In ActiveSheet.CheckBoxes
        xChkBox.Visible = True
    Next

    Application.ScreenUpdating = True
End Sub

Obrigado.

Teleguiado.
E-mail: [email protected]

 
Postado : 29/08/2018 9:53 am
 Vkt
(@vkt)
Posts: 33
Eminent Member
Topic starter
 

teleguiado,

Funcionou perfeitamente.

Muito obrigado!

 
Postado : 29/08/2018 10:37 am