Notifications
Clear all

Importar dados de uma planilha a outra VBA

9 Posts
3 Usuários
0 Reactions
1,881 Visualizações
(@kalaricco)
Posts: 0
New Member
Topic starter
 

Bom dia.

Tenho 2 planilhas, onde uma delas seria a Origem (BASE DE CARGA Moeda 17 vs Bloco G - PARAMETRO - Copia.xlsx), tenho informações que devem ser levadas para outra planilha Destino (BASE DE CARGA GERAL - CONSOLIDACAO - Copia.xlsm).
Nesta planilha chamada de Destino tenho algumas formulas que devem ser mantidas para ter ao final um resultado em TXT formatado (layout).

Queria uma ajuda em colocar um botão na planilha Destino, e quando acionado pegar as informações das colunas da planilha Origem.
Lembrando que na planilha Origem varia a qtde de linhas e quando copiado para a Destino deve obedecer e copiar todas as linhas da coluna.

Achei material e fiz, porém copiando a planilha todas, e queria sim copiando por colunas.

Fico no aguardo de uma ajuda
Obrigado.

 
Postado : 31/01/2018 9:44 am
(@klarc28)
Posts: 0
New Member
 

Altere o intervalo no código que você copiou de outro tópico:

'selecionando o intervalo doador
    ThisWorkbook.Sheets("Plan1").Range("H2:H" & ulinha & ",K2:K" & ulinha & ",M2:M" & ulinha & ",W2:W" & ulinha & ",X2:X" & ulinha & ",Y2:Y" & ulinha & ",O2:O" & ulinha & ",P2:P" & ulinha & ",J2:J" & ulinha & ",S2:S" & ulinha & ",A2:A" & ulinha & ",AI2:AI" & ulinha & ",AJ2:AJ" & ulinha).Select
    

http://www.planilhando.com.br/forum/viewtopic.php?f=10&t=27185

Na parte da planilha doadora,
Onde está "Plan1", escreva o nome da sua planilha ("Exportar Dados")

Na parte da planilha receptora,
Onde está "Plan1", escreva o nome da sua planilha ("GERAL")

Para quem for responder, saiba que ele já fez a mesma pergunta em outro fórum:

https://social.msdn.microsoft.com/Forums/pt-BR/0a137432-5308-4886-8903-80d6eba99afd/copiar-dados-de-outra-planilha-excel?forum=vbapt

 
Postado : 31/01/2018 9:53 am
(@kalaricco)
Posts: 0
New Member
Topic starter
 

Não deu certo. Erro ao executar

 
Postado : 31/01/2018 10:40 am
(@kalaricco)
Posts: 0
New Member
Topic starter
 

A planilha que vai receber os dados seria a BASE DE CARGA GERAL - CONSOLIDACAO - Copia.xlsm, ela seria a receptora não?

Já no caso a planilha BASE DE CARGA Moeda 17 vs Bloco G - PARAMETRO - Copia.xlsx seria a doadora, pois os dados contidos estão nelas e devem ser copiados para a outra

Obrigado.

 
Postado : 31/01/2018 10:44 am
(@klarc28)
Posts: 0
New Member
 

Envie o código que deu erro e explique qual foi o erro.

 
Postado : 31/01/2018 12:25 pm
(@kalaricco)
Posts: 0
New Member
Topic starter
 

Consegui desenrolar alguma coisa, porém da erro agora na linha marcada abaixo, que não consigo acertar.

Option Explicit

Sub Importar_Dados()
'
' Importar_Dados Macro
' Importar dados da planilha doadora

    Dim PlanReceptora As Workbook
    Dim PlanDoadora As Workbook
    Dim NRLinhas As Integer
    
    Workbooks.Open (ThisWorkbook.Path & "BASE DE CARGA Moeda 17 vs Bloco G - PARAMETRO.xlsx")
    Set PlanDoadora = ActiveWorkbook

    NRLinhas = Worksheets("Exportar Dados").Range("A:A").Cells.SpecialCells(xlCellTypeConstants).Count

    'Importar Coluna A (FILIAL)
    Sheets("Exportar Dados").Range("A2:A" & NRLinhas).Select
    Selection.Copy
    Workbooks.Open (ThisWorkbook.Path & "BASE DE CARGA GERAL - CONSOLIDACAO - Copia.xlsm")
       
    Set PlanReceptora = ActiveWorkbook
    
    PlanReceptora.Activate
    PlanReceptora.Sheets("GERAL").Select
    PlanReceptora.Sheets("GERAL").Range("A5").Select
    
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    
    Application.CutCopyMode = False
    
    'Importar Coluna C (ID)          '-------------------------------------------------Erro a partir da linha abaixo
    Sheets("Exportar Dados").Range("C2:C" & NRLinhas).Select
    Selection.Copy
    Workbooks.Open (ThisWorkbook.Path & "BASE DE CARGA GERAL - CONSOLIDACAO - Copia.xlsm")
       
    Set PlanReceptora = ActiveWorkbook
    
    PlanReceptora.Activate
    PlanReceptora.Sheets("GERAL").Select
    PlanReceptora.Sheets("GERAL").Range("B5").Select
    
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    
    Application.CutCopyMode = False
    
    Range("C2:C" & NRLinhas).NumberFormat = "0"
    
    'Salvar Planilha
    PlanReceptora.Save
    PlanDoadora.Close savechanges:=False
    
    'LOG
    MsgBox "Importação concluída" & vbCr & "Copiados: " & NRLinhas & " Filial(s)" & vbCr & vbCr & "Copiados: " & NRLinhas & " ID(s)", vbInformation, "Importação de dados"

End Sub
 
Postado : 31/01/2018 12:42 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

kalaricco,

Boa tarde!

Solicitamos, por gentileza, nas suas próximas postagens de código VBA aqui no fórum, utilizar a ferramenta CODE existente logo acima da janela de mensagens. Edite a sua mensagem e veja como fiz na sua mensagem.

 
Postado : 31/01/2018 12:48 pm
(@klarc28)
Posts: 0
New Member
 

Este código deverá ser colocado na Pasta Receptora:

Option Explicit

Sub Importar_Dados()

Application.ScreenUpdating = False
'
' Importar_Dados Macro
' Importar dados da planilha doadora

Dim PlanReceptora As Workbook
Dim PlanDoadora As Workbook
Dim NRLinhas As Integer

Workbooks.Open (ThisWorkbook.Path & "BASE DE CARGA Moeda 17 vs Bloco G - PARAMETRO.xlsx")
Set PlanDoadora = ActiveWorkbook

NRLinhas = Worksheets("Exportar Dados").Range("A:A").Cells.SpecialCells(xlCellTypeConstants).Count

'Importar Coluna A (FILIAL)
PlanDoadora.Sheets("Exportar Dados").Range("A2:A" & NRLinhas).Select
Selection.Copy
'Workbooks.Open (ThisWorkbook.Path & "BASE DE CARGA GERAL - CONSOLIDACAO - Copia.xlsm")

Set PlanReceptora = ThisWorkbook

PlanReceptora.Activate
PlanReceptora.Sheets("GERAL").Select
PlanReceptora.Sheets("GERAL").Range("A5").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Application.CutCopyMode = False

'Importar Coluna C (ID) '-------------------------------------------------Erro a partir da linha abaixo
PlanDoadora.Activate

PlanDoadora.Sheets("Exportar Dados").Range("C2:C" & NRLinhas).Select
Selection.Copy
'Workbooks.Open (ThisWorkbook.Path & "BASE DE CARGA GERAL - CONSOLIDACAO - Copia.xlsm")

'Set PlanReceptora = ThisWorkbook

PlanReceptora.Activate
PlanReceptora.Sheets("GERAL").Select
PlanReceptora.Sheets("GERAL").Range("B5").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Application.CutCopyMode = False

'Range("C2:C" & NRLinhas).NumberFormat = "0"

'Salvar Planilha
PlanReceptora.Save
PlanDoadora.Close savechanges:=False

Application.ScreenUpdating = True

'LOG
MsgBox "Importação concluída" & vbCr & "Copiados: " & NRLinhas & " Filial(s)" & vbCr & vbCr & "Copiados: " & NRLinhas & " ID(s)", vbInformation, "Importação de dados"

End Sub

 
Postado : 31/01/2018 1:01 pm
(@kalaricco)
Posts: 0
New Member
Topic starter
 

Vlw amigo.

 
Postado : 31/01/2018 1:07 pm