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 AlanBC
Posts
#36831
ola... td bem?!?!?! posso contar com a preciosa ajuda de vcs????
tenho um form com botao excluir que preciso adaptar uma condicao comparando datas e somar numero de dia para definir o criterio de exclusao: garantia de 90 dias dos produtos vendidos;
preciso excluir todos os produtos(registros) do listbox/planilha que ultrapassaram a data da venda + 90 dias, ou seja: textboxdtVenda (dt venda) + 90 > label_dtAtual (hoje) = exclur;
lembrando que a textbox_dtVenda tmb recebe valor vazio("") ate que ocorra o fato da venda do produto; a label_dtAtual ta no inicialize...
tentei fazer com loop(for, while...), mas nao consegui fazer rodar dejeito nenhum!
segue codigo atual:
Public geral As ListObject
Public registros As ListRow
Private Sub CommandButton_Excluir_Click()
If EnableEvents = False Then Exit Sub
Call desproteger
Set registros = geral.ListRows(Me.ListBoxTabGeral.ListIndex + 1)
If Me.TextBoxDtVenda = "" Then
MsgBox "Disponível. Venda não concretizada!", vbCritical, "Atenção!!!"
Me.ListBoxTabGeral.ListIndex = -1
Exit Sub
End If
Dim resp As Integer
resp = MsgBox("Confirma a exclusão: " & UCase(TextBoxVeiculo.Value) & "_" & UCase(TextBoxAno.Value) & "_" & UCase(TextBoxPlaca.Value),
vbYesNo, "Excluir!")
If resp = vbYes Then
registros.Delete
End If
If resp = vbNo Then
Exit Sub
End If
Me.ListBoxTabGeral.ListIndex = -1
Call limparCampos
Set geral = Plan1.ListObjects("TabGeral")
Call proteger
End Sub
conto com apoio! obrigado.
#36858
Acredito que este código pode te ajudar:
Comentei as linhas para ficar claro o que está fazendo o código

1. Cole este código no seu form
2. Crie um botão CommandButton1
Código: Selecionar todos
Private Sub CommandButton1_Click()
  Dim varLinha As ListRow
  
  For Each varLinha In geral.ListRows 'navega por todas as ListRow do seu ListObject
    Dim dataVenda As Date
    If varLinha.Range(1, 9) <> "" Then 'verifica se o campo é diferente de vazio
      dataVenda = CDate(varLinha.Range(1, 9))'se tiver uma data no campo, então converte para o tipo data
      If dataVenda < Now - 90 Then'verifica se a data é anterior a 90 dias

        'informa qual linha e qual veículo está sendo excluído
        MsgBox "Excluindo a linha " & varLinha.Range(1, 1).Row & ", Veículo: " & varLinha.Range(1, 3) & " Data: " & varLinha.Range(1, 9), vbInformation
        'exclui a linha
        varLinha.Delete

        'chama novamente o processo, pois como está sendo alterado o objeto ListRows, o For precisa ser reiniciado
        CommandButton1_Click
        Exit Sub
      End If
    End If
  Next varLinha
End Sub
Por AlanBC
Posts
#36861
meu camarada... funcionou legal demais esse codigo!!! puxa vida... muito bom amigo.
era o que eu precisava... nao ia mesmo conseguir fazer.
muito obrigado mesmo! forte abraço...
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