Notifications
Clear all

Importar arquivo de uma planilha para outra.

8 Posts
4 Usuários
0 Reactions
2,504 Visualizações
(@romanha)
Posts: 104
Estimable Member
Topic starter
 

Boa tarde.

Pessoal,

Eu estou aproveitando um codigo que ultilizava em um programa que utilizo para uma planilha que estou desevolvendo para facilitar o meu trabalho o codigo que estou usando é para importar os dados clicando no botão importar ele tranfira de uma planilha para outra mais não está funcionando. Tentei fazer o teste de importar na mesma planilha funcionou agora não sei qual o comando de importar para outra por que o comando e de importa para a planilha que esta com o codigo(macro) e o que quero é manda para outra planilha sem macros me ajudem ai.

O erro está na parte em vermelho.
'Caminho do arquivo com os dados
Caminho = Application.GetOpenFilename

'Abre o arquivo com os dados
Workbooks.Open (Caminho)

Aberto = ActiveWorkbook.Name

'Seleciona a planilha, O nome deve estar correto
Sheets("File List").Select

Segue codigo

Sub importar()
   
    ThisWorkbook.Activate
    
    Dim WsDados            As Worksheet: Set WsDados = Sheets("File List")
        
    Dim Caminho         As String
    Dim Aberto          As String
    Dim Nlin            As Double
    
'Caminho do arquivo com os dados
    Caminho = Application.GetOpenFilename
    
    'Abre o arquivo com os dados
    Workbooks.Open (Caminho)
    
    Aberto = ActiveWorkbook.Name
    
    'Seleciona a planilha, O nome deve estar correto
    Sheets("File List").Select
    
    'Número de linhas
    Nlin = Range("A2").End(xlDown).Row
    
    'Copia os dados
    Range("A2:A" & Nlin & ",D2:D" & Nlin & ",J2:J" & Nlin & ",M2:S" & Nlin & ",V2:Z" & Nlin & ",AC2:AD" & Nlin & ",AF2:AG" & Nlin & ",BR2:BV" & Nlin).Copy
        
    'Volta a ativar esse arquivo
    ThisWorkbook.Activate
    'Seleciona a planilha Dados SE
    WsDados.Select
    
    Nlin = Range("A65000").End(xlUp).Offset(1, 0).Row
    'Cola os valores e formatos
    Range("A" & Nlin).PasteSpecial xlPasteValuesAndNumberFormats
    
    Application.CutCopyMode = False
          
    'Fecha o arquivo que foi aberto
    Windows(Aberto).Activate
    ActiveWindow.Close
    
    'Volta a ativar este arquivo
    ThisWorkbook.Activate
    
    
End Sub

Se a resposta foi últil, gentileza, Amigo,clique na mãozinha ao lado direito da sua tela. canto superior.

" Aquele que habita no esconderijo do Altissimo, à sombra do Onipotente descansará. Salmos 91:1"

Atenciosamente.

Jason Romanha

 
Postado : 05/10/2017 9:36 am
leandroxtr
(@leandroxtr)
Posts: 447
Reputable Member
 

Boa tarde!

Este é o código que costumo usar para importar planilhas dentro de outra.

Não precisa fazer nenhuma adaptação, basta colocar em um módulo e chamá-lo. A macro cria uma nova planilha e importa todas as informações lá dentro, o que facilita uma posterior manipulação.

Não consegui entender exatamente o que você precisa, pois não usou pontuação em sua solicitação. Mas espero que seja isso.

Espero ter ajudado!

Abraço!

Sub Importar()

  Dim wbMatriz As Workbook, wbBD As Workbook
  Dim wssBD As Sheets
  Dim bslash, nomearquivo As String
  Application.ScreenUpdating = False
    arquivoparaabrir = Application.GetOpenFilename _
(Title:="Selecione o arquivo para abrir", _
filefilter:="Excel Files *.xlsm* (*.xls*),")
bslash = InStrRev(arquivoparaabrir, "")
nomearquivo = Mid(arquivoparaabrir, bslash + 1)
If arquivoparaabrir = False Then
MsgBox "Nenhum Arquivo Selecionado.", vbExclamation, "Interrompido!"
Exit Sub
Else
Workbooks.Open Filename:=arquivoparaabrir
End If
    Set wbMatriz = ThisWorkbook
    Set wbBD = Workbooks(nomearquivo)
    Set wssBD = wbBD.Sheets
     
  wssBD.Copy After:=wbMatriz.Sheets(wbMatriz.Sheets.Count)
ActiveSheet.Name = nomearquivo
ActiveWindow.Zoom = 80

Application.ScreenUpdating = True
Application.DisplayAlerts = False
Application.Workbooks(nomearquivo).Close
Application.DisplayAlerts = True

End Sub

Se te ajudou, não se esqueça de dar um like na resposta e marcar o tópico como finalizado.

Abraços!
Leandro Cordeiro

 
Postado : 05/10/2017 10:37 am
(@romanha)
Posts: 104
Estimable Member
Topic starter
 

leandroxtr

O que estou querendo e manda as informações de uma planilha X para outra planilha Y.

A importação na mesma planilha o codigo anterior já faz.

Vou anexar as duas planilhas a que tem a macro e a que eu desejo importar para ver se ajuda.

Se a resposta foi últil, gentileza, Amigo,clique na mãozinha ao lado direito da sua tela. canto superior.

" Aquele que habita no esconderijo do Altissimo, à sombra do Onipotente descansará. Salmos 91:1"

Atenciosamente.

Jason Romanha

 
Postado : 05/10/2017 11:20 am
(@romanha)
Posts: 104
Estimable Member
Topic starter
 

Bom dia!

Pessoal,

O erro do código é que os dados estão indo para a planilha com os códigos e macros (Planilha de Carga Geral.xlsm), o que desejo é enviar para a planilha que não tem os códigos e macros (Planilha de Carga Effective.xls). As planilhas estão no zip.

Se a resposta foi últil, gentileza, Amigo,clique na mãozinha ao lado direito da sua tela. canto superior.

" Aquele que habita no esconderijo do Altissimo, à sombra do Onipotente descansará. Salmos 91:1"

Atenciosamente.

Jason Romanha

 
Postado : 06/10/2017 5:39 am
(@romanha)
Posts: 104
Estimable Member
Topic starter
 

Bom dia!

Pessoal,

Eu acho que não estou conseguindo dizer o que preciso que a macro execute... mais se alguém puder me ajudar eu agradeceria muito.

Em poucas palavras o que preciso e extrair os dados da planilha (Planilha de Carga Geral.xlsm), e envie para a planilha (Planilha de Carga Effective.xls).

Desde já agradeço.

Se a resposta foi últil, gentileza, Amigo,clique na mãozinha ao lado direito da sua tela. canto superior.

" Aquele que habita no esconderijo do Altissimo, à sombra do Onipotente descansará. Salmos 91:1"

Atenciosamente.

Jason Romanha

 
Postado : 09/10/2017 5:43 am
gfranco
(@wzxnet7)
Posts: 653
Honorable Member
 

Não sei se entendi direito mas, se é só para importar os dados de uma planilha para outra, poderia usar o power query.

Resposta útil? Clique na mãozinha ao lado do botão Citar.

 
Postado : 12/10/2017 6:47 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

O PowerQuery é mais simples caso possa fazer!
Use a pesquisa, pois há várias postagens que trata isso!

Sub Copy_To_Another_Workbook()
'Fonte:https://www.rondebruin.nl/win/section3.htm
    Dim SourceRange As Range
    Dim DestRange As Range
    Dim DestWB As Workbook
    Dim DestSh As Worksheet
    Dim Lr As Long
        
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
    End With

    'Change the file name (2*) and the path/file name to your file
    If bIsBookOpen_RB("Planilha de Carga Effective.xls") Then
        Set DestWB = Workbooks("Planilha de Carga Effective.xls")
    Else
        Set DestWB = Workbooks.Open("C:UsersAdministradorDownloadsPlanilha de Carga Effective.xls")
    End If
    'Change the Source Sheet and range
    Set SourceRange = ThisWorkbook.Sheets("File List").Range("A2:BV5")
    'Change the sheet name of the database workbook
    Set DestSh = DestWB.Worksheets("File List")

    Lr = LastRow(DestSh)
    Set DestRange = DestSh.Range("A" & Lr + 1)
    'We make DestRange the same size as SourceRange and use the Value
    'property to give DestRange the same values
    With SourceRange
        Set DestRange = DestRange.Resize(.Rows.Count, .Columns.Count)
    End With
    DestRange.Value = SourceRange.Value

    DestWB.Close savechanges:=True

    With Application
        .ScreenUpdating = True
        .EnableEvents = True
    End With
End Sub

Function LastRow(sh As Worksheet)
    On Error Resume Next
    LastRow = sh.Cells.Find(What:="*", _
                            After:=sh.Range("A1"), _
                            Lookat:=xlPart, _
                            LookIn:=xlFormulas, _
                            SearchOrder:=xlByRows, _
                            SearchDirection:=xlPrevious, _
                            MatchCase:=False).Row
    On Error GoTo 0
End Function

Function LastCol(sh As Worksheet)
    On Error Resume Next
    LastCol = sh.Cells.Find(What:="*", _
                            After:=sh.Range("A1"), _
                            Lookat:=xlPart, _
                            LookIn:=xlFormulas, _
                            SearchOrder:=xlByColumns, _
                            SearchDirection:=xlPrevious, _
                            MatchCase:=False).Column
    On Error GoTo 0
End Function

Function bIsBookOpen_RB(ByRef szBookName As String) As Boolean
' Rob Bovey
    On Error Resume Next
    bIsBookOpen_RB = Not (Application.Workbooks(szBookName) Is Nothing)
End Function

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 13/10/2017 7:56 am
(@romanha)
Posts: 104
Estimable Member
Topic starter
 

Muito obrigado Alexandre era exatamente isso que eu queria que fizesse.

Se a resposta foi últil, gentileza, Amigo,clique na mãozinha ao lado direito da sua tela. canto superior.

" Aquele que habita no esconderijo do Altissimo, à sombra do Onipotente descansará. Salmos 91:1"

Atenciosamente.

Jason Romanha

 
Postado : 16/10/2017 1:13 pm