Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
Por madefer
#137
Olá!

Estou com problemas para formatação de minha tabela.

Acontece o seguinte.
A planilha que estou usando é modificada todo momento.
Ou seja, hora adicionamos linhas, hora excluimos linhas.
Só as colunas permanecem as mesmas.

Consigo fazer o Excel "CRIAR" linhas novas com a formatação usando o "FORMATAR COMO TABELA".
Porém ao excluir a linha, a formatação continua lá.

O que procuro é uma macro que exclua a formatação das linhas em branco.
Mesmo que essas linhas estejam no meio da tabela, pq algumas vezes temos que apagar itens no meio da tabela.

Anexei a tabela para ajudar o entendimento da minha duvida.
Você não está autorizado a ver ou baixar esse anexo.
Avatar do usuário
Por laennder
Avatar
#142
Não entendi se você quer remover a linha ou a formatação. Pois na planilha você diz uma coisa, e aqui outra.
Se você estiver querendo excluir as linhas que estão em branco, utilize a macro abaixo.
Código: Selecionar todos
Sub ApagaLinhasVazias()
Dim rng As Range
Dim celula As Range

Set rng = Range("Tabela1[Descrição]")

For Each celula In rng
    If IsEmpty(row) Then row.EntireRow.Delete Shift:=xlUp
Next row

End Sub
Ela verifica a primeira coluna apenas, caso a célula esteja vazia, ela remove a linha inteira. Se quiser modificar a coluna que é verifica, basta alterar a linha abaixo
Código: Selecionar todos
Set rng = Range("Tabela1[Descrição]")
Por madefer
#149
Consegui fazer a planilha apagar as linhas em branco automaticamente colocando o código no evento "SheetChange"
Código: Selecionar todos
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim R As Long
Dim C As Range
Dim n As Long
Dim rng As Range

On Error GoTo skip
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

If Selection.Rows.Count > 1 Then
Set rng = Selection
Else
Set rng = ActiveSheet.UsedRange.Rows
End If
n = 0
For R = rng.Rows.Count To 1 Step -1
If Application.WorksheetFunction.CountA(rng.Rows(R).EntireRow) = 0 Then
rng.Rows(R).EntireRow.Delete
n = n + 1
End If
Next R

skip:
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
Mas a planilha ficou muito lenta para usar.
Tem como deixar ela um pouco mais rápida?
Avatar do usuário
Por laennder
Avatar
#152
Isso vai ocorrer porque ele vai executar a macro toda vez que você alterar qualquer coisa na planilha. Não é mais fácil você atribuir a macro a uma tecla de atalho, e sempre que você quiser excluir, mandar executar pelo atalho?
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord