Ir ao conteúdo
  • Cadastre-se

copiar linhas para outra planilha excel usando criterio


Posts recomendados

Ola Pessoal, sou novata no VBA , e preciso de um help. Achei uma macro na internet que satisfaz em parte minha necessidade que é : 

 

Selecionar as linhas que tem a coluna 16 <> de vazio e copiar as colunas descritas abaixo para outra planilha excel .

 

Coluna 18 para coluna 1 / Coluna 1 e 3 para coluna 3  /Coluna 11 para coluna 4 coluna 18 para 1  /  1 para 3  / 11 para 4 / 13 para 5 /  4 para 10  / 14 para 11 / 2 para 12

 

 

 

 

 

A planilha destino , já possui algumas colunas preenchidas e os valores devem ser mantidos  e as colunas 

 

que receberão os dados  da planilha origem estão vazias.

 

 

 Segue a macro que achei na internet já com as alterações que fiz : 

Sub copycolumns()

Dim lastrow As Long, erow As Long
 lastrow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row

For i = 9 To lastrow

, coloquei um valor fixo para comparar, pois nao sei como pesquisar se celula diferente de vazio ou branco
 If Sheet1.Cells(i, 16) is not null Then
 
 Sheet1.Cells(i, 18).Copy
 erow = Sheet2.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
 Sheet1.Paste Destination:=Worksheets(“Sheet2”).Cells(erow, 1)

Sheet1.Cells(i, 1).Copy
 Sheet1.Paste Destination:=Worksheets(“Sheet2”).Cells(erow, 3)

Sheet1.Cells(i, 11).Copy
 Sheet1.Paste Destination:=Worksheets(“Sheet2”).Cells(erow, 4)
 
Sheet1.Cells(i, 13).Copy
 Sheet1.Paste Destination:=Worksheets(“Sheet2”).Cells(erow, 5)
 
Sheet1.Cells(i, 4).Copy
 Sheet1.Paste Destination:=Worksheets(“Sheet2”).Cells(erow, 10)
 
Sheet1.Cells(i, 14).Copy
 Sheet1.Paste Destination:=Worksheets(“Sheet2”).Cells(erow, 11)
 
Sheet1.Cells(i, 2).Copy
 Sheet1.Paste Destination:=Worksheets(“Sheet2”).Cells(erow, 12)
 End If

Next i
 Application.CutCopyMode = False
 Sheet2.Columns().AutoFit
 Range(“A1”).Select

End Sub

 

Dúvidas 

*  Como copio os dados para uma outra planilha excel ao invés de  copiar numa outra sheet  na mesma planilha ? 

* Como faço para que esta macro seja executada em todas as worksheets existentes na planilha origem ?  

*  

 

 

 

planilha origem.xlsm

planailha destino.xls

Link para o comentário
Compartilhar em outros sites

Ola Casa do Hardware, 

O criterio é a coluna 16 nao estar vazia , nao importa o conteudo que ela tenha .( Na macro define como 2 , pois estava dando erro is not null) 

quero copiar as colunas 

coluna 18 para 1  /  1 para 3  / 11 para 4 / 13 para 5 /  4 para 10  / 14 para 11 / 2 para 12

arquivo origem : planilha origem ( todas as abas)
arquivo destino: planilha destino.( consolidar as linhas copiadas numa unica aba)

Quando executo esta macro , ela me retorna o  Erro : em tempo de execucao 424 --> O Objeto é obrigatorio

na linha  lastrow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row

Link para o comentário
Compartilhar em outros sites

Experimente:


Sub CopiaRegistros()
 Dim wsd As Worksheet, wso As Worksheet, LRo As Long, LRd As Long, k As Long
  Set wsd = Workbooks("planailha destino.xls").Sheets("MODELO")
   Application.ScreenUpdating = False
    wsd.Activate
    LRd = Cells(Rows.Count, 1).End(xlUp).Row
   ThisWorkbook.Activate
   For Each wso In ThisWorkbook.Worksheets
    If wso.Name <> "tabelas" Then
     With wso
      .AutoFilterMode = False
      LRo = .Range("A" & .Rows.Count).End(xlUp).Row
      .Range("A9:S" & LRo).AutoFilter Field:=16, Criteria1:="<>"
      k = .Range("P9:P" & LRo).SpecialCells(xlVisible).Cells.Count
      .Range("R9:R" & LRo).SpecialCells(xlVisible).Copy wsd.Cells(LRd + 1, 1)
      .Range("A9:A" & LRo).SpecialCells(xlVisible).Copy wsd.Cells(LRd + 1, 3)
      .Range("K9:K" & LRo).SpecialCells(xlVisible).Copy wsd.Cells(LRd + 1, 4)
      .Range("M9:M" & LRo).SpecialCells(xlVisible).Copy wsd.Cells(LRd + 1, 5)
      .Range("D9:D" & LRo).SpecialCells(xlVisible).Copy wsd.Cells(LRd + 1, 10)
      .Range("N9:N" & LRo).SpecialCells(xlVisible).Copy wsd.Cells(LRd + 1, 11)
      .Range("B9:B" & LRo).SpecialCells(xlVisible).Copy wsd.Cells(LRd + 1, 12)
      .AutoFilterMode = False
      LRd = LRd + k
     End With
    End If
   Next wso
 Application.ScreenUpdating = True
End Sub

 

Link para o comentário
Compartilhar em outros sites

1. O arquivo destino deve estar aberto ao rodar a macro.

2. Verifique se o nome do seu arquivo destino é igual ao nome que coloquei no código. O nome que coloquei é igual ao nome do arquivo disponibilizado no post #1: planailha destino.

Em 14/12/2015 at 18:18, Lilliam Palermo disse:

 

obs. abaixo a nomenclatura utilizada pela Microsoft:

Arquivo Excel ou Pasta de Trabalho Excel (é o que você chama de planilha)

Planilha (é o que você chama de sheet e worksheet; muitos chamam de aba ;) e em outro fórum tem gente chamando de orelha :(). Cada planilha tem uma guia onde está o nome dela.

Um arquivo Excel é formado por uma ou mais planilhas.

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

@osvaldomp

 

Muito obrigada pela macro e pela informação as nomenclaturas do excel :-) 

Quero melhorar meu conhecimento em macros, você tem alguma dica de curso on-line, tutorial ou algo assim ? Já me inscrevi em uns canais no youtube , mas me identifiquei com sua forma de programação enxuta e direta !  Já fui programadora de outras linguagens entre elas  shell no unix , e com isso me da base para outras linguagens .

 

Mais uma vez obrigada e um otimo 2016 pra voce 

Link para o comentário
Compartilhar em outros sites

Oi @diego_janjao

 

Este foi o que mais me agradou e que me inscrevi, os outros vi um ou outro programa, mas nao me inscrevi no canal.

 

https://www.youtube.com/user/familycomputerclub 

 

Espero ter ajudado .

 

ps: se encontrar mais algum canal interessante te repasso .

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!