Processos no Microsoft 365 para configurar aplicativos do Office, resgatar chaves de produto e ativar licenças.
Utilize o gravador de amcros para auxiliar na sintaxe. Vc não precisa gravar tudo, mas apens a parte que deseja implantar.
Não há mais suporte para esse navegador.
Atualize o Microsoft Edge para aproveitar os recursos, o suporte técnico e as atualizações de segurança mais recentes.
Pessoal, bom dia.
Estou precisando de um exemplo de macro que copie um intervalo de linhas de uma planilha (dados) para a planilha Filtro, baseado na informação retirada de uma textbox.
Ex.: Na planilha dados, eu tenho os campos: série, data, hora, umidade. Na textbox eu lanço a data e quero que a VBA retorne todos os lançamentos com essa data na planilha filtro, independente da hora lançada. To quabrando a cuca aqui e naum tah dando certo.
Outro problema. Essas informações eu retiro de um arquivo .txt que coleta as leituras de uma placa leitora. eu preciso filtrar esses dados para que a VBA naum replique informações que eu já baixei.
Grato pela ajuda
Processos no Microsoft 365 para configurar aplicativos do Office, resgatar chaves de produto e ativar licenças.
Pergunta bloqueada. Essa pergunta foi migrada da Comunidade de Suporte da Microsoft. É possível votar se é útil, mas não é possível adicionar comentários ou respostas ou seguir a pergunta.
Utilize o gravador de amcros para auxiliar na sintaxe. Vc não precisa gravar tudo, mas apens a parte que deseja implantar.
Infelizmente não deu certo...está acusando erro de sintaxe no filtro....
Percebi que vc inseriu filtro ao final. Acho que é por aí.
Seria esse o caminho?
Sub ATUALIZAR()
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Users\rogerio\Desktop\Granfinale\pen1.txt", Destination:=ActiveCell)
.Name = "pen1"
On Error Resume Next
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 _
, 1, 1, 1, 1)
Selection.AutoFilter Field:=2, Criteria1:>= Plan1.Range("B3:B65536").Value 'C3 => data de aquisição no txt.
Selection.AutoFilter Field:=3, Criteria2:> Plan1.Range("C3:C65536").Value 'C3 => horario de aquisição no txt.
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub
OK. acho que vc está tentando ir pela linha de identificar o que já foi copiado para não copiar novamente, algo do tipo ...se a linha existe, não copia novamente.
Bom, ESQUEÇA esta abordagem. Isto vai fazer sua rotina ficar lenta...muito lenta.
O que vc deve fazer é segregar os dados antes do tratamento. Por exemplo, vc tem um TXT que sempre traz os dados repetidos, mas vc realiza um filtro nele. Logo, vc controla os dados que serão copiados. É aí que vc deve atuar, criando mais critérios para não considerar dados já utilizados, que vc já sabe quais são pois vc já filtrou com base numa data.