copiar dados para outra planilha usando VBA

Anônima
2010-02-12T10:27:49+00:00

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

Microsoft 365 e Office | Instalar, resgatar, ativar | Para uso doméstico | Outro

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.

0 comentários Sem comentários
Resposta aceita pelo autor da pergunta
Anônima
2010-02-23T12:39:25+00:00

Utilize o gravador de amcros para auxiliar na sintaxe. Vc não precisa gravar tudo, mas apens a parte que deseja implantar.

Esta resposta foi útil?

0 comentários Sem comentários

41 respostas adicionais

Classificar por: Mais útil
  1. Anônima
    2010-02-23T12:32:23+00:00

    Infelizmente não deu certo...está acusando erro de sintaxe no filtro....

    Esta resposta foi útil?

    0 comentários Sem comentários
  2. Anônima
    2010-02-23T12:12:16+00:00

    Percebi que vc inseriu filtro ao final. Acho que é por aí.

    Esta resposta foi útil?

    0 comentários Sem comentários
  3. Anônima
    2010-02-23T12:03:34+00:00

    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

    Esta resposta foi útil?

    0 comentários Sem comentários
  4. Anônima
    2010-02-23T11:32:50+00:00

    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.

    Esta resposta foi útil?

    0 comentários Sem comentários