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 Novo
  1. Anônima
    2012-02-10T13:26:51+00:00

    preciso de um auxilio. eu estav realizando consulta de varios dados. UMa tabela de 31 dias que utilizando a função =SE ele buscava dados de uma outra planilha. Por exemplo: =SE(E(C9=0112;C10=7210);endereço da planilha onde contem os dados... (c:/arquivo/.....)))

    So a inclusão para baixar dados dessa maneira ocupa muito espaço. Até que quando eu estava dicionando mais alguns setores 7215 da data 0212 (=SE(E(C9=0212;C10=7215......) eu me deparo com uma mensagem avisando que o limite de linhas na programação tinha sido atingido. Logo, pensei em utilizar um codigo vba para copiar essas informações para dentro da planilha e eu utilizar essa função =SE ficando menor e cabendo ainda mais dados. Como eu faco isso utilizando um UserForm? preciso que abra um tela para digitação de um mes e um setor, depois ele copiar os dados dos 31 dias que estão em outra tabela para essa mesmo.

    Obrigado

    Esta resposta foi útil?

    0 comentários Sem comentários
  2. 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
  3. 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
  4. 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