Ocultar Linhas das Celulas Mescladas em Branco com VBA

Anônima
2015-04-09T07:45:33+00:00

Ola Pessoal, Bom Dia.

Tenho uma planilha que numa das colunas tem os nomes dentro das celulas mescladas de 4 celulas na vertical e que os dados vem de uma outra planilha, e para deixar em branco quando os dados nao existem coloquei a formula:

if('planilha1'!a1="","",'planilha1'!a1)

Gostaria que as linhas das celulas mescladas em brancos, ficassem ocultas

Tentei inicialmente usando os seguintes comandos:

Activecell.Range("a1:a100").Select

Selection.SpecialCells(xlCellTypeBlanks).Select

Selection.EntireRow.Hiden=True

Mas isso so funciona quando os dados sao Valores e nao formulas e ainda mais se aplicar nas celulas mescladas, todos os linhas ficam ocultas.

Desde ja agradeco a quem possa ajudar.

Tadao

Microsoft 365 e Office | Excel | Para uso doméstico | Windows

Pergunta bloqueada. Essa pergunta foi migrada da Comunidade de Suporte da Microsoft. É possível votar se é útil, mas não é possível adicionar comentários ou respostas ou seguir a pergunta.

0 comentários Sem comentários

Resposta aceita pelo autor da pergunta

Anônima
2015-04-17T16:23:24+00:00

"Acho que se fizer rotinas sem ficar movendo o cursor com select, a rotina deve ficar mais rapido,ne."

Sim, você entendeu a ideia. Ao usar o VBA no Excel, evite chamar os métodos Select ou Activate. O VBA consegue fazer praticamente tudo que você quer sem precisar selecionar ou ativar os objetos.

No Word, não é a mesma coisa: em vários comandos por VBA, é necessário fazer uma seleção antes.

Esta resposta foi útil?

0 comentários Sem comentários

Resposta aceita pelo autor da pergunta

Anônima
2015-04-15T13:30:38+00:00

F8 é a tecla que altera o modo "Estender Seleção". Veja que ao pressionar F8, verá essa palavra escrito na barra de status.

Outro modo de navegação é pressionar a tecla Scroll Lock. Ao invés de deslocar o cursor, você deslocará a tela.

Além disso, pressione Ctrl+Backspace para centralizar a célula ativa da janela ativa.

Esta resposta foi útil?

0 comentários Sem comentários

Resposta aceita pelo autor da pergunta

Anônima
2015-04-14T03:09:14+00:00

No momento em que se atribui rng à uma área mesclada, é possível acesar qualquer uma das células dessa área mesclada.

Por exemplo, considere que rng corresponde a uma seleção equivalente à A1:C3.

rng(1) = A1

rng(2) = B1

rng(3) = C1

rng(4) = A2

rng(5) = B2

rng(6) = C2

rng(7) = A3

rng(8) = B3

rng(9) = C3

Note que o caminho se dá da esquerda para direita, quebrando "linhas" de cima para baixo.

Em outras palavras, o teste condicional verifica se a primeira célula da região mesclada possui uma célula em branco. Se sim, ele oculta as linhas de toda região mesclada.


Da mesma forma, rng(1).Row retorna o valor da linha da célula 1 do intervalo rng. No exemplo acima, rng(1).Row = 1, e rng(7).Row = 3

Esta resposta foi útil?

0 comentários Sem comentários

10 respostas adicionais

Classificar por: Mais útil
  1. Anônima
    2015-04-10T00:00:50+00:00

    Sub Main()

        Const csCol As String = "A"

        Dim lRow As Long

        Dim lLast As Long

        Dim ws As Excel.Worksheet

        Set ws = ThisWorkbook.Worksheets("planilha1")

        With ws

            lLast = .Cells(.Rows.Count, csCol).End(xlUp).Row

            'Considerando uma linha de cabeçalho:

            For lRow = lLast To 2 Step -1

                If .Cells(lRow, csCol) = "" Then

                    .Rows(lRow).Hidden = True

                Else

                    .Rows(lRow).Hidden = False

                End If

            Next lRow

        End With

    End Sub

    Esta resposta foi útil?

    0 comentários Sem comentários
  2. Anônima
    2015-04-09T13:31:49+00:00

    Olá, TadaoKano! Tudo bem?

    Bem-vindo à Comunidade da Microsoft.

    Para este cenário com relação à VBA no Excel, sugiro postar sua dúvida na comunidade disponível para desenvolvedores:

    Para mais informações, acesse Comunidades adicionais.

    Espero ter ajudado.

    Até mais,

    Esta resposta foi útil?

    0 comentários Sem comentários