Notifications
Clear all

VBA loop com apagar linha

5 Posts
2 Usuários
0 Reactions
1,055 Visualizações
(@ericksant)
Posts: 109
Estimable Member
Topic starter
 

Prezados,
boa noite,

Preciso criar uma lógica onde devo sempre apagar todas linhas do excel até que a célula ativa seja diferente da palavra "Data", porém as primeiras linhas não contém "Data" também...

Exemplo no anexo...
Coloquei como que ficaria na planilha2

Alguém consegue me ajudar ?

 
Postado : 17/07/2018 3:36 pm
(@ericksant)
Posts: 109
Estimable Member
Topic starter
 

Amigos,

vi um código na internet que está me ajudando, agora minha dúvida é como depois que sair do Loop, apagar da linha que possui a palavra "Data" para cima...

vejam:

contaLinha = 1 'Esta variavel irá servir para pular de linha
verificaCel = Cells(contaLinha, 1).Value 'Variável para gravar o conteúdo da célula
Do While verificaCel <> "Data"         'Faça enquanto conteudo da celula diferente de  vazio
   '...
   contaLinha = contaLinha + 1 'soma ela mesma, pula para próxima linha
   verificaCel = Cells(contaLinha, 1).Value  'verifica novo conteudo
Loop 'volta para o while

Depois da verificação, a ideia é pegar a linha onde tem a palavra "data" e apagar a partir dela e todas outras que vieram antes dela...

 
Postado : 17/07/2018 3:58 pm
(@klarc28)
Posts: 971
Prominent Member
 
contaLinha = 1 'Esta variavel irá servir para pular de linha
verificaCel = Cells(contaLinha, 1).Value 'Variável para gravar o conteúdo da célula
Do While verificaCel <> "Data"         'Faça enquanto conteudo da celula diferente de  vazio
   '...
   contaLinha = contaLinha + 1 'soma ela mesma, pula para próxima linha
   verificaCel = Cells(contaLinha, 1).Value  'verifica novo conteudo
Loop 'volta para o while

DIM LINHA AS LONG

FOR LINHA = CONTALINHA TO 1 STEP -1

IF CELLS(LINHA,1).VALUE = "Data" then

CELLS(LINHA,1).entirerow.delete
end if

NEXT LINHA

 
Postado : 17/07/2018 4:12 pm
(@ericksant)
Posts: 109
Estimable Member
Topic starter
 

Obrigado pela resposta rápida Klarc28, essa solução apagou a linha que contém a data, mas as outras linhas antes dela não foram apagadas...

Minha ideia era apagar todas as linhas... Eu estava tentando fazer alguma forma dentro do "enquanto" onde ele visse caso a range for vazio ou = a data, excluir a linha inteira, porque quando chegasse na linha que fosse diferente desses parametros, ele parava... Você consegue me ajudar ?

 
Postado : 17/07/2018 4:22 pm
(@ericksant)
Posts: 109
Estimable Member
Topic starter
 

Consegui!

Obrigado pela ajuda.
ficou assim kkkkk valeu!

CONTALINHA = 1 'Esta variavel irá servir para pular de linha
    VerificaCel = Cells(CONTALINHA, 1).Value 'Variável para gravar o conteúdo da célula
    Do While VerificaCel <> "Data"         'Faça enquanto conteudo da celula diferente de  vazio
    
   Cells(CONTALINHA, 1).EntireRow.Delete
   'CONTALINHA = CONTALINHA + 1 'soma ela mesma, pula para próxima linha
   VerificaCel = Cells(CONTALINHA, 1).Value  'verifica novo conteudo
   
   
    Loop
         
    Cells(CONTALINHA, 1).EntireRow.Delete
 
Postado : 17/07/2018 5:53 pm