COPA, fiz de um jeito que não modifique muito o seu código...
Option Explicit
Sub CopiarColarVersao2()
Dim wbFolha As Workbook
Dim wbAtiva As Workbook
Dim sArquivo As String
Dim NomeFolha As String
'Aqui vai selecionar a planilha
sArquivo = CStr(Application.GetOpenFilename("Arquivo do Excel (*.XLS*),*.XLS*", , "Selecione um arquivo *.XLS*:", , False))
'Verifica se foi selecionada
If sArquivo = "Falso" Then
MsgBox "Arquivo não selecionado"
Exit Sub
End If
'Desativa a atualização da tela
Application.ScreenUpdating = False
'Abre a planilha
Call Workbooks.Open(Filename:=sArquivo, Password:="COLOCA A SENHA AQUI COPA") ' A SENHA AQUI
NomeFolha = ActiveWorkbook.Name
'Seta a planilha aberta
Set wbFolha = Workbooks(NomeFolha)
'Seta a planilha atual
Set wbAtiva = ThisWorkbook
With wbFolha
With .Worksheets("inativos1")
.Range("A2:R6000").Copy
wbAtiva.Worksheets("Inativos").Range("A2").PasteSpecial Paste:=xlPasteValues
End With
With .Worksheets("inativos2")
.Range("A2:R6000").Copy
wbAtiva.Worksheets("Inativos").Range("Y2").PasteSpecial Paste:=xlPasteValues
End With
With .Worksheets("pensoes1")
.Range("A2:S1800").Copy
wbAtiva.Worksheets("pensoes").Range("A2").PasteSpecial Paste:=xlPasteValues
End With
With .Worksheets("pensoes2")
.Range("A2:S1800").Copy
wbAtiva.Worksheets("pensoes").Range("Z2").PasteSpecial Paste:=xlPasteValues
End With
End With
wbAtiva.Worksheets("Inativos").Range("T2:T6000").ClearContents
wbAtiva.Worksheets("Inativos").Range("W2:W6000").ClearContents
wbAtiva.Worksheets("pensoes").Range("U2:U1800").ClearContents
wbAtiva.Worksheets("pensoes").Range("X2:X1800").ClearContents
'Fecha a planilha
wbFolha.Close False
'Ativa a atualização da tela
Application.ScreenUpdating = False
MsgBox "Processo concluído com sucesso!"
End Sub
Deixa a planilha FOLHA que vai ser copiado os valores fechada...
Qualquer coisa da o grito.
Abraço
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 01/02/2017 8:25 am