Notifications
Clear all

Abrir Planilha VBA

2 Posts
2 Usuários
0 Reactions
915 Visualizações
(@edgarmassa)
Posts: 1
New Member
Topic starter
 

Galera, montei essa macro pra copiar dados de uma planilha fechada para uma aberta que eu utilizo, mas estou com uma dúvida.
segue meu modelo abaixo:

Sub CopiarPlanilha()

Application.DisplayStatusBar = False
Application.EnableEvents = False
ActiveSheet.DisplayPageBreaks = False

  Dim wkbOrigem As Excel.Workbook
  Dim wksOrigem As Excel.Worksheet
  Dim wkbDest As Excel.Workbook
  Dim wksDest As Excel.Worksheet
  Dim lngLast As Long
  
  Set wkbOrigem = Workbooks.Open("C:UsersMassaDesktoporiginal.xlsx")
  Set wksOrigem = wkbOrigem.Worksheets("Plan1")
  Set wkbDest = Workbooks("Principal.xltm")
  Set wksDest = wkbDest.Worksheets("Plan2")
  
  wksOrigem.Range("A2:C21" & lngLast).Copy
  wksDest.Range("A2:C21" & lngLast).PasteSpecial Paste:=xlPasteValues
  
  
  Application.DisplayAlerts = False
  wkbOrigem.Close SaveChanges:=False
  
  Application.DisplayAlerts = True

End Sub

Porém fiz também um formulario com um campo e dois botoes, um ele procura um arquivo excel no meu computador e o outro eu precisaria que ele pegasse o caminho do campo de texto e colocasse na variavel wkbOrigem onde esta Set wkbOrigem = Workbooks.Open("C:UsersMassaDesktoporiginal.xlsx"), ao invés de um caminho dentro do código, porque utilizo planilhas com nomes diferentes todos os dias.

Obrigado

 
Postado : 07/09/2017 1:15 am
(@mprudencio)
Posts: 2749
Famed Member
 

Tente alterar seu codigo nesta linha

Apos a declaração das variaveis acrescente essa linha.


'Abre a caixa de dialogos Abrir
Application.Dialogs(xlDialogOpen).Show 

'Carrega a planilha que vc acabou de abrir.

Set wkbOrigem = Active.Workbook

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 07/09/2017 7:57 am