Notifications
Clear all

Reexibir Colunas Digitadas pelo o Usuário - parte II

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

Colegas, conforme solicitação em MP do colega "jrodrig7" para ajustar a macro do tópico "MACRO - Reexibir Colunas Digitadas pelo o Usuário" - viewtopic.php?f=10&t=3471, a qual queria ajustar para a seguinte situação :
Informar o número de colunas para mim já é o suficiente, até essa parte a rotina está funcionando. Ela faz a contagem de 05, que é o que eu desejo (W, X, Y, Z e AA). No entanto, tenho três outras colunas ocultas antes delas (J, O e R) que eu não quero que reexiba, quero que fiquem ocultas mesmo. E, ao acionar a macro para reexibir as colunas no número que eu desejo, começa-se a reexibir a J, ao invés da W.

Ou seja, mesmo temos algumas colunas ocultas intercaladas, a reexibição deveria acontecer somente a partir de outro intervalo sem interferir nas anteriores, e apos os ajustes e a resposta de que o resultado era o esperado, resolvi colocar para servir de base nas pesquisas e ajudar outros usuários que procurem por ajuda parecida.

    Sub ReexibirColunas_W_AA_Mauro()
            'Adaptação cod Edson
            Dim cont As Long
            Dim col As Variant
            Dim coluna As Variant
            Dim x As Integer
           
            'Definimos as Colunas, evitando percorrer todas do aplicativo
            Set col = Columns("W:AA")
           
            cont = 0
           
            For Each coluna In col
                If coluna.Hidden = True Then
                    cont = cont + 1
                End If
           
                If cont >= 1 And coluna.Hidden = False Then
                    Exit For
                End If
           
            Next coluna
           
            If cont = 0 Then
                MsgBox "Não há colunas ocultas."
                Exit Sub
            End If

    Init:
           
            x = CInt("0" & InputBox("Você pode reexibir " & cont & " colunas. Quantidade:"))
           
            If x = 0 Then 'Sai da rotina se Pressionar Cancel ou OK sem Digitar a qde
                Exit Sub
            Else
                'Continua se Botão OK Pressionado e a variavel for > 0
            End If
           
            If x > cont Then
                MsgBox "Há apenas " & cont & " colunas ocultas."
                GoTo Init
            End If
           
            'Representa uma Coluna antes de "W" que é a coluna nº 23
            i = 22

            Do While Columns(i).Hidden = False
                i = i + 1
            Loop

            j = i + x - 1

            Do While i <= j
                Columns(i).EntireColumn.Hidden = False
                i = i + 1
            Loop

        End Sub

Vou deixar o tópico aberto por uns dias se por ventura quiserem dar outras contribuições ou surgir alguma duvida.

[]s

 
Postado : 17/09/2015 7:07 am
(@jrodrig7)
Posts: 0
New Member
 

Excelente, Mauro. Me ajudou muito.

Muito obrigado, mais uma vez.

 
Postado : 17/09/2015 7:32 am