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 Leonardo7
Posts
#47140
Boa tarde amigos,

Gostaria muito da ajuda de vcs para corrigir meu código de filtro. No filtro eu tenho um critério data (ex.: minha planilha carregar todos os dados do banco com base na data inserida no formulário ou seja carregar todos os dados <01/01/2020). Segue planilha para apoio.
Código: Selecionar todos
Private Sub btFiltrar_Click()
 'Limpa a planilha antes de carregar os dados do filtro
 Call LimparRelatório

 ultimaLinha = wshBD.Cells(Rows.Count, "A").End(xlUp).Row
 lin = 3
  For i = 2 To ultimaLinha
  
  If wshBD.Cells(i, 9) < TextBoxData.Value And wshBD.Cells(i, 8) <> 0 Then
    wshRel.Cells(lin, 1) = wshBD.Cells(i, 1)
    wshRel.Cells(lin, 2) = wshBD.Cells(i, 2)
    wshRel.Cells(lin, 3) = wshBD.Cells(i, 3)
    wshRel.Cells(lin, 4) = wshBD.Cells(i, 4)
    wshRel.Cells(lin, 5) = wshBD.Cells(i, 5)
    wshRel.Cells(lin, 6) = wshBD.Cells(i, 6)
    wshRel.Cells(lin, 7) = wshBD.Cells(i, 7)
    wshRel.Cells(lin, 8) = wshBD.Cells(i, 8)
    wshRel.Cells(lin, 9) = wshBD.Cells(i, 9)
    wshRel.Cells(lin, 10) = wshBD.Cells(i, 10)
    wshRel.Cells(lin, 11) = wshBD.Cells(i, 11)
    lin = lin + 1
  End If
  Next
  
Call Formata_Relatorio

End Sub

Private Sub TextBoxData_Change()

    'Inserir as barras na data
    If Len(TextBoxData.Text) = 2 Then
    TextBoxData = TextBoxData + "/"
    End If
    
    If Len(TextBoxData.Text) = 5 Then
    TextBoxData = TextBoxData + "/"
    End If


End Sub
Você não está autorizado a ver ou baixar esse anexo.
Avatar do usuário
Por Jimmy
Avatar
#47141
Olá,

Você não explicou que erro está ocorrendo. Diga o que acontece, quando você faz o que, de que forma.

Aproveite e troque:
Código: Selecionar todos
  wshRel.Cells(lin, 1) = wshBD.Cells(i, 1)
  wshRel.Cells(lin, 2) = wshBD.Cells(i, 2)
  wshRel.Cells(lin, 3) = wshBD.Cells(i, 3)
  wshRel.Cells(lin, 4) = wshBD.Cells(i, 4)
  wshRel.Cells(lin, 5) = wshBD.Cells(i, 5)
  wshRel.Cells(lin, 6) = wshBD.Cells(i, 6)
  wshRel.Cells(lin, 7) = wshBD.Cells(i, 7)
  wshRel.Cells(lin, 8) = wshBD.Cells(i, 8)
  wshRel.Cells(lin, 9) = wshBD.Cells(i, 9)
  wshRel.Cells(lin, 10) = wshBD.Cells(i, 10)
  wshRel.Cells(lin, 11) = wshBD.Cells(i, 11)
por
Código: Selecionar todos
  For Col = 1 To 11
      wshRel.Cells(lin, Col) = wshBD.Cells(i, Col)
  Next
Jimmy San Juan
Por Leonardo7
Posts
#47144
Jimmy escreveu:Olá,

Você não explicou que erro está ocorrendo. Diga o que acontece, quando você faz o que, de que forma.

Aproveite e troque:
Código: Selecionar todos
  wshRel.Cells(lin, 1) = wshBD.Cells(i, 1)
  wshRel.Cells(lin, 2) = wshBD.Cells(i, 2)
  wshRel.Cells(lin, 3) = wshBD.Cells(i, 3)
  wshRel.Cells(lin, 4) = wshBD.Cells(i, 4)
  wshRel.Cells(lin, 5) = wshBD.Cells(i, 5)
  wshRel.Cells(lin, 6) = wshBD.Cells(i, 6)
  wshRel.Cells(lin, 7) = wshBD.Cells(i, 7)
  wshRel.Cells(lin, 8) = wshBD.Cells(i, 8)
  wshRel.Cells(lin, 9) = wshBD.Cells(i, 9)
  wshRel.Cells(lin, 10) = wshBD.Cells(i, 10)
  wshRel.Cells(lin, 11) = wshBD.Cells(i, 11)
por
Código: Selecionar todos
  For Col = 1 To 11
      wshRel.Cells(lin, Col) = wshBD.Cells(i, Col)
  Next
Jimmy San Juan
Boa tarde Jimmy,

O código não está carregando os dados do banco com base na data que eu colo na textboxData. Conforme o código abaixo, ele só carregar com base em um dos critérios wshBD.Cells(i, 8) <> 0, mas eu preciso que ele carregue pela data tbm.
Código: Selecionar todos
If wshBD.Cells(i, 9) < TextBoxData.Value And wshBD.Cells(i, 8) <> 0 Then
Por Leonardo7
Posts
#47145
Jimmy escreveu:Olá,

Você não explicou que erro está ocorrendo. Diga o que acontece, quando você faz o que, de que forma.

Aproveite e troque:
Código: Selecionar todos
  wshRel.Cells(lin, 1) = wshBD.Cells(i, 1)
  wshRel.Cells(lin, 2) = wshBD.Cells(i, 2)
  wshRel.Cells(lin, 3) = wshBD.Cells(i, 3)
  wshRel.Cells(lin, 4) = wshBD.Cells(i, 4)
  wshRel.Cells(lin, 5) = wshBD.Cells(i, 5)
  wshRel.Cells(lin, 6) = wshBD.Cells(i, 6)
  wshRel.Cells(lin, 7) = wshBD.Cells(i, 7)
  wshRel.Cells(lin, 8) = wshBD.Cells(i, 8)
  wshRel.Cells(lin, 9) = wshBD.Cells(i, 9)
  wshRel.Cells(lin, 10) = wshBD.Cells(i, 10)
  wshRel.Cells(lin, 11) = wshBD.Cells(i, 11)
por
Código: Selecionar todos
  For Col = 1 To 11
      wshRel.Cells(lin, Col) = wshBD.Cells(i, Col)
  Next
Jimmy San Juan
Desculpe, mas tenho pouca experiencia em VBA e não conseguir substituir o código que vc me enviou. A macro nem roda.
Código: Selecionar todos
  For Col = 1 To 11
      wshRel.Cells(lin, Col) = wshBD.Cells(i, Col)
  Next
Avatar do usuário
Por Jimmy
Avatar
#47146
Ok, entendido. Vou ver.
Avatar do usuário
Por Jimmy
Avatar
#47151
Veja se está de acordo com o esperado.

Você tem duas rotinas iguais para filtragem: uma no formulário e outra em módulo. Alterei a do formulário. Seria melhor manter apenas uma. Se vai acionar o filtro de duas formas diferentes, ou mais, mantenha 1 rotina, por exemplo a do módulo, e acione-a a partir da macro do formulário.

Jimmy San Juan
Você não está autorizado a ver ou baixar esse anexo.
Por Leonardo7
Posts
#47215
Jimmy escreveu:Veja se está de acordo com o esperado.

Você tem duas rotinas iguais para filtragem: uma no formulário e outra em módulo. Alterei a do formulário. Seria melhor manter apenas uma. Se vai acionar o filtro de duas formas diferentes, ou mais, mantenha 1 rotina, por exemplo a do módulo, e acione-a a partir da macro do formulário.

Jimmy San Juan
Deu muito certo. Obrigado
Avatar do usuário
Por Jimmy
Avatar
#47219
Ok, se tiver problema, avise.

Peço que verifique as mensagens acima, e dê um like (mãozinha) naquelas que de alguma forma te ajudaram.

Fecho o tópico se o problema estiver resolvido. Espere alguns dias, se quiser ter certeza de que passou nos testes.

Jimmy San Juan
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