Notifications
Clear all

Exportar dados para planilha fechada

4 Posts
2 Usuários
0 Reactions
1,541 Visualizações
(@robertonl)
Posts: 121
Estimable Member
Topic starter
 

Preciso exportar dados de uma planilha para outra, porém a planilha que recebe os dados tem que estar aberta.
Utilizei o código abaixo, porém se a planilha estiver fechada a mesma não consegue receber informação.
A planilha que deverá ficar disponível as células deverão ficar protegida, e a planilha deverá ficar disponível em outro local
Segue o código abaixo:

Sub Exportar_Dados()
'
' Exportar_Dados Macro
'

'
    Windows("Relatorio Recebimento.xlsx").Activate
    ActiveSheet.Unprotect
    Range("A3").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.ClearContents
    Windows("Relatorio_Recebe.xlsm").Activate
    Range("A4").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.Copy
    Windows("Relatorio Recebimento.xlsx").Activate
    Range("A3").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFiltering:=True
    Windows("Relatorio_Recebe.xlsm").Activate
End Sub
 
Postado : 04/11/2017 6:39 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

robertonl,

Boa Noite!

Com uma pequena alteração (conforme código abaixo) você pode abrir o arquivo, fazer a cópia dos dados que você quer, salvar o arquivo que receber os dados e fechar novamente. Isso tudo o código faz de forma automática e totalmente transparente para o usuário final. Ou seja, nem é percebido que o arquivo foi aberto, copiado, salvo e fechado.

Note que o caminho que coloquei para abrir o arquivo foi o ActiveWorkbook.Path. Isso significa que os dois arquivos devem está na mesma pasta. Todavia, isso não é um problema. Se o arquivo que vai receber os dados não puder ficar na mesma pasta que o arquivo .xlsm, altere o caminho no código de maneira a refletir o caminho completo aonde o mesmo se encontra.

Use esse código (seu próprio código com pequenas alterações):

Sub Exportar_Dados()
    '
    ' Exportar_Dados Macro
    '
    Application.ScreenUpdating = False
    Workbooks.Open (ActiveWorkbook.Path & "Relatorio Recebimento.xlsx")
    Windows("Relatorio Recebimento.xlsx").Activate
    ActiveSheet.Unprotect
    Range("A3").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.ClearContents
    Windows("Relatorio_Recebe.xlsm").Activate
    Range("A4").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.Copy
    Windows("Relatorio Recebimento.xlsx").Activate
    Range("A3").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
    , AllowFiltering:=True
    Workbooks("Relatorio Recebimento.xlsx").Save
    Workbooks("Relatorio Recebimento.xlsx").Close
    Application.ScreenUpdating = True
    Windows("Relatorio_Recebe.xlsm").Activate
End Sub

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 04/11/2017 7:01 pm
(@robertonl)
Posts: 121
Estimable Member
Topic starter
 

Deu certo,porém tentei sem sucesso adaptar que quando ela exportar a planilha de destino receba somente os dados como valor e todas as células das planilha fiquem bloqueada.
Atualmente somente as colunas que estão bloqueadas na planilha de origem são as mesmas que estão bloqueadas na planilha de destino e quando abro a planilha que recebeu os dados ela informa que a mesma tem vínculos e sempre necessita ao abrir atualizar

 
Postado : 06/11/2017 7:49 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

robertonl,

Bom dia!

Ok. Fiz os ajustes necessários. Veja se é assim.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 06/11/2017 9:06 am