Notifications
Clear all

Selecionar o ultimo dado lançado e apagar - em VBA

9 Posts
2 Usuários
0 Reactions
1,682 Visualizações
(@drbeil)
Posts: 37
Eminent Member
Topic starter
 

Comecei a mexer agora, então não tenho muito conhecimento em VBA.

Preciso apagar o último dado lançado. Exemplo último dado lançado está na linha d20.

Os dados estão sendo incluso a partir da celula D10 e Os outros dados são incluso nas colunas E10, F10, G10. Não posso usar "apagar linha" pois apagará as formulas de outras celulas.

Essas é uma das dúvidas, assim que consegui crio outro post.

Daniel Rodrigo

 
Postado : 07/02/2015 1:02 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Sub apagar_a_ultima_celula_da_coluna_D_nao_testado()
'PS: poste sempre seu anexo
Cells(Rows.Count, "D").End(Xlup).Row.ClearContents
End Sub

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 07/02/2015 8:50 am
(@drbeil)
Posts: 37
Eminent Member
Topic starter
 

gtsalikis, Valeu pela resposta, deixei muito vago a minha dúvida.

Estou tentando montar um programinha para facilitar. Estou buscando informação em tudo que é lugar. Não tem um padrão de código.

Na Aba "pedido4" tem o botão para o formulário o botão verde, no formulário, seria para apagar a última linha da aba "teste".

Como disse tenho várias dúvidas, mas vou item por item para não ficar muito confuso.

Segue arquivo em anexo.

Valeu

Daniel Rodrigo

 
Postado : 07/02/2015 9:59 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

Então, basta especificar a planilha antes de apagar:

Sub apagar_a_ultima_celula_da_coluna_D_agora_testado()
With Sheets("teste")
.Cells(Rows.Count, "D").End(xlUp).ClearContents
End With
End Sub

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 09/02/2015 5:15 am
(@drbeil)
Posts: 37
Eminent Member
Topic starter
 

Gtsalikis,

Deu certo apagou a última coluna preenchida.

Fiz uma maneira que apagasse as colunas da mesma linha seguidas (E,F,G,H I).

Eu precisaria que fosse definida celula de ínicio"D10" e a última "D498".

Sub apagar_linha_listagem()

With Sheets("teste")
.Cells(Rows.Count, "D").End(xlUp).Activate
.Cells(Rows.Count, "D").End(xlUp).ClearContents
ActiveCell.Offset(0, 1).ClearContents
ActiveCell.Offset(0, 2).ClearContents
ActiveCell.Offset(0, 3).ClearContents
ActiveCell.Offset(0, 4).ClearContents
ActiveCell.Offset(0, 5).ClearContents
ActiveCell.Offset(0, 7).ClearContents
ActiveCell.Offset(0, 19).ClearContents
ActiveCell.Offset(0, -1).ClearContents

End With
 
End Sub

Daniel Rodrigo

 
Postado : 09/02/2015 7:29 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

Isso foi o que eu entendi.

Sub Apagar_3_a_revanche_nao_testado()

Application.ScreenUpdating = False

Dim intervalo   As Range
Dim celula      As Range

With Sheets("teste")
    Set intervalo = .Range("D10:D498")
    Set celula = .Range("D498").End(xlUp)
    
    If Not Intersect(celula, intervalo) Is Nothing Then Exit Sub
    
    .Range(.Cells(celula.Row, "C"), .Cells(celula.Row, "I")).ClearContents
    .Cells(celula.Row, "K").ClearContents
    .Cells(celula.Row, "W").ClearContents
    
End With

Application.ScreenUpdating = True

MsgBox "Por favor, se a mensagem ajudou, clique na mãozinha como agradecimento."

End Sub

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 10/02/2015 5:01 am
(@drbeil)
Posts: 37
Eminent Member
Topic starter
 

Bom dia,

Não deu certo.

Em anexo está o arquivo.

Pelo que está descrito, está certo as celulas para apagar.

Tem o botão do código que montei, só que ele vai apagando tudo sem limite.

Criei também outro botão com o código novo.

Abraços

Daniel Rodrigo

 
Postado : 10/02/2015 6:35 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Testei na tua planilha e fiz um pequeno ajuste, pois eu tinha cometido um engano em uma linha do código:

Sub Apagar_3_a_revanche_testado()

Application.ScreenUpdating = False

Dim intervalo   As Range
Dim celula      As Range

With Sheets("Teste")
    Set intervalo = .Range("D10:D498")
    Set celula = .Range("D498").End(xlUp)
    
    If Intersect(celula, intervalo) Is Nothing Then Exit Sub
    
    .Range(.Cells(celula.Row, "C"), .Cells(celula.Row, "I")).ClearContents
    .Cells(celula.Row, "K").ClearContents
    .Cells(celula.Row, "W").ClearContents
    
End With

Application.ScreenUpdating = True

MsgBox "Por favor, se a mensagem ajudou, clique na mãozinha como agradecimento."

End Sub

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 10/02/2015 6:41 am
(@drbeil)
Posts: 37
Eminent Member
Topic starter
 

Agora deu certinho... tinha um não no lugar errado... rsss

Valeu, vou tentar colocar na outra planilha.

Tenho mais dúvidas, mas abro outro tópico.

Abraços

Daniel Rodrigo

 
Postado : 10/02/2015 9:47 am