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 GladstoneD
Posts
#35043
Boa noite!!

Estou tentando fazer esse código funcionar mas não está dando certo. Este codigo serve pra apagar uma linha em determinada tabela dependendo do Value contido em uma Textbox. O problema é que em cada planilha, a coluna a ser consultada é diferente. Criei uma variavel para alternar as colunas de acordo com cada opção da Text box, mas nao estou conseguindo fazer funcionar. (Detalhe: Nesse caso, os dados estão em tabelas)

Mais uma coisa, já aproveitando da boa vontade de vcs. Pra determinar qual linha está o dado a ser apagado, estou usando formulas. Acredito que nao seja o melhor metodo. Se puderem sugerir algo, agradeço.

Variáveis
Código: Selecionar todos
Public ID_Ped As Integer     '(Dado a ser procurado na coluna)
Public Reg As Integer   '(Nº de linhas que contem o registro procurado. Serve para o Loop)
Public Tipo_Venda As String
Public Tabela As ListObject 'Declaração de Tabela
Public Registro As ListRow  'Ultima Linha
Public W As Worksheet
Public UltCel As Range
Public linha As Integer
Public Aq As Range    '(Coluna que deve ser usada para cada ocorrência do IF
Código: Selecionar todos
  If Me.txtPagamento.Value = "Dinheiro" Then
    Set Tabela = Plan3.ListObjects("Tab_Caixa")
    Set W = Sheets("Caixa")
    Set Aq = Columns("H:H")
        
  ElseIf Me.txtPagamento.Value = "Cartão" Then
    Set Tabela = Plan6.ListObjects("Tab_Cartao")
    Set W = Sheets("Cartão")
    Set Aq = Columns("H:H")
    
  ElseIf Me.txtPagamento.Value = "Boleto" Then
    Set Tabela = Plan13.ListObjects("Tab_Boletos")
    Set W = Sheets("Boletos")
    Set Aq = Columns("M:M")
    
  ElseIf Me.txtPagamento.Value = "Vale-Gás" Then
    Set Tabela = Planilha13.ListObjects("Tab_Vales")
    Set W = Sheets("ValeGás")
    Set Aq = Columns("G:G")
    
  End If
  
  
W.Select
Reg = WorksheetFunction.CountIf(Aq, ID_Ped)

linha = Application.WorksheetFunction.Match(ID_Ped, Aq, 0)
Do While Reg > 0

Set Registro = Tabela.ListRows(linha - 1)

Registro.Range.Select
Registro.Delete

Set Registro = Nothing

Reg = Reg - 1

Loop
Mais uma vez, agradeço a atenção de todos
Avatar do usuário
Por gfranco
Avatar
#35044
Boa noite.
Como primeira sugestão eu elencaria usar combobox para escolher os itens à serem procurados.
Ademais, anexar um modelo do seu arquivo, creio eu, será muito útil para facilitar a tentativa de ajudar-te.
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