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
  • Avatar do usuário
#36398
Olá pessoa, sou novo no fórum e estou com uma situação um tanto quanto especifica.
Espero que possam me ajudar

Possuo uma planilha que contem uma tabela chamada "Atividades", tenho alguns controles de formulário para preencher a mesma mas me surgiu a necessidade de inserir e excluir linhas dessa tabela sem interferir nas células ao seu lado. Preencher uma nova linha da tabela sem afetar as células do lado não é problema, ja consegui fazer isso. O problema esta sendo excluir a linha da coluna que contenha o valor adicionado (apenas o ultimo). Segue imagens para ilustrar o que pretendo fazer.

https://imgur.com/a/x5QfdEh

Ao clicar no botão + de "Telefonemas Atendidos" ele adiciona uma linha na tabela "Atividades" com o texto "Atendimento de Telefone"

Gostaria de poder fazer a mesma coisa com o botão - ao clicar nele, a ultima linha contendo "Atendimento de Telefone" seja excluída (apenas o ultimo dentro da tabela), mas de forma a não interferir nas células com o retângulo em azul.

Será que tem como?? Como podem ver ja possuo um controle que consegue apagar a ultima linha da tabela, uso esse código para fazer isso:
Código: Selecionar todos
Private Sub RemoveLinha_Click()
Dim i As Integer
i = ActiveSheet.ListObjects("Atividades").Range.Rows.Count
If i > 2 Then
    Range("D" & i).ListObject.ListRows(i - 1).Delete
End If
End Sub
No entanto não sei como identificar apenas o ultimo valor contendo o texto especifico para cada botão de menos que eu adicionar.

ME AJUDEEEEM!
Agradeço desde já a ajuda pessoal!!
#36409
Bom dia.
Veja se o seguinte pode te ajudar:
Código: Selecionar todos
Sub main()
    Dim tabela As ListObject
    Dim i As Long
    Dim ul As Long
    Set tabela = Planilha1.ListObjects("Atividades") 'aqui deve ser ajustado para onde realmente está a sua tabela.
    
    ul = tabela.DataBodyRange.Rows.Count
    
    
        For i = ul To 1 Step -1
        
            If tabela.DataBodyRange.Cells(i, 2) = "Atendimento de telefone" Then
            'quando encontar a primeira ocorrência (de baixo pra cima) deleta a linha e sai do laço....
                tabela.DataBodyRange.Rows(i).Delete
                Exit For
            
            End If
        
        Next i
    
    Set tabela = Nothing


End Sub
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