Página 1 de 1

Macro de Filtro e Colar

Enviado: 25 Jul 2017 às 08:43
por devinn
Bom dia, amigos.

Estou criando uma macro para preencher um relatório do trabalho e consegui fazer o seguinte cógido:
Código: Selecionar todos
            x = 2
        While Range("A" & x).Value <> ""
            x = x + 1
        Wend
    Range("B2:B" & x).FormulaR1C1 = "=MID(RC[-1],29,2)"
    ActiveSheet.Range("$A$1:$B$163212").AutoFilter Field:=2, Criteria1:="00"
    Cells(2, 1).Select
    Range(Selection, Selection.End(xlDown)).Copy
Windows(CONTROL_T).Activate
    Sheets("BASE T1").Activate
            i = 2
        While Range("A" & i).Value <> ""
            i = i + 1
        Wend
        Range("A" & i).Paste
No começo do código, fiz o laço para pegar a última linha com informação e colar a fórmula (extrair texto) na coluna ao lado, em todas as linhas com informações e depois ele filtra tudo que na coluna B estiver "00", copia todos, vai pro arquivo do relatório, procura a primeira linha em branco e cola as informações. Tenho duas questões:

1. Acho que colar a fórmula e fazer um filtro não seria a melhor opção para pegar as informações, mas não consegui pensar em outra coisa, caso tenham alguma sugestão, é de grande valia.
2. Na hora de colar, na última linha do código, está dando erro, porém não consegui identificar o motivo.

Agradeço desde já!

Re: Macro de Filtro e Colar

Enviado: 19 Set 2017 às 22:41
por babdallas
Favor anexar um arquivo de exemplo para que possa facilitar o entendimento. Assim vamos poder lhe ajudar.

Macro de Filtro e Colar

Enviado: 25 Set 2017 às 09:30
por wesleyribeiro123
Devinn
Bom dia,

Brother, legal seria postar uma cópia de tua planilha, com dados fictícios para que possamos lhe sugerir melhorias!
Quanto ao erro da última linha, qual é a mensagem que aparece? Tente declarar as tuas variáveis "x" e "i", da seguinte forma:
Código: Selecionar todos
Dim x as Integer, i as Integer
Fora isto aparentemente teu código está correto, se não resolver teu problema, ai apenas com uma cópia de tua planilha para entender mesmo, ou então nos envie pelo menos o código completo, pois este que mandou é apenas um trecho dele!

Espero ter contribuido com algo!

Re: Macro de Filtro e Colar

Enviado: 25 Set 2017 às 09:38
por wesleyribeiro123
Davinn

Outra sugestão que acredito que vai te ajudar bastante é remover estes laços de identificação da última linha
Código: Selecionar todos
     Dim x as Integer
     x= cells(rows.count,1).End(xlUp).Row + 1

    Range("B2:B" & x).FormulaR1C1 = "=MID(RC[-1],29,2)"
    ActiveSheet.Range("$A$1:$B$163212").AutoFilter Field:=2, Criteria1:="00"
    Cells(2, 1).Select
    Range(Selection, Selection.End(xlDown)).Copy
Windows(CONTROL_T).Activate
    Sheets("BASE T1").Activate
     Dim i as Integer
     i= cells(rows.count,1).End(xlUp).Row + 1
        Range("A" & i).Paste
Observe que o código
Código: Selecionar todos
cells(rows.count,1).End(xlUp).Row + 1
identifica qual a última linha preenchida da seguinte forma, ele vai até a última linha da tua planilha e envia um comando End(xlUP) ("Ctrl + Seta Cima") desta forma identificamos a última célula com preenchimento, como você deseja a última vazia então soma +1.