Boa tarde!
Por favor,
Preciso corrigir uma rotina em VBA Excel que prevê a cópia de conteúdos de ranges específicos de uma pasta, para os ranges equivalentes em outra pasta, da seguinte forma:
- Partindo da Pasta "A" (que contém a rotina) uma pasta é aberta via inputbox. Vamos chamá-la de PASTA B
- Em seguida, os conteúdos desta pasta são selecionados e copiados - ranges C2:C6 e E8:H19 - e colados (somente valores) nos mesmos ranges da Pasta "A".
- Pasta B é fechada.
Não estou conseguindo, ao digitar o nome de uma nova pasta no inputbox (PASTA C por exemplo), que a rotina a mantenha ativa para todo o processo. Assim, ela só atualiza o primeiro range e mantém os valores da pasta usada anteriormente, no segundo range.
A rotina mambembe que eu fiz (listada abaixo) atualiza o primeiro range, mas como não atualiza o nome do arquivo, conforme a mudança no inputbox, gerando erro em tempo de execução 9.
Fui claro?
Podem me ajudar?
Desde já, agradeço
Wangchuk
===============================================================
Sub Macro1()
Dim Arquivo As String
Arquivo = InputBox("Digite o nome do arquivo.", "Nome do ARQUIVO.")
If Arquivo = "" Then
MsgBox "Favor digitar o nome do arquivo.", vbInformation + vbOKOnly, "Atenção!"
Arquivo = InputBox("Digite o nome do arquivo.", "Nome do ARQUIVO.")
End If
Workbooks.Open Filename:="E:MEU CAMINHO" & Arquivo & ".xlsx"
Range("C2:C6").Select
Selection.Copy
Windows("PASTA A.xlsm").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("PASTA B.xlsx").Activate ==============>>aqui deveria apontar para a Pasta C conforme entrada no inputbox. A rotina não está atualizando
Application.CutCopyMode = False
Range("E8:H19").Select
Selection.Copy
Windows("PASTA A.xlsm").Activate
Range("E8").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("PASTA B.xlsx").Activate ==============>> Idem
Application.CutCopyMode = False
ActiveWindow.Close
End Sub
Postado : 27/11/2014 1:49 pm