Notifications
Clear all

colar em outra planilha

15 Posts
2 Usuários
0 Reactions
2,455 Visualizações
(@juliowd)
Posts: 0
New Member
Topic starter
 

Olá. Mais uma vez preciso da ajuda dos amigos do planilhando.
O que eu preciso já encontrei na internet, mas não consigo, sozinho, adaptar e fazer funcionar pra mim.
Me atrapalho nas variáveis.
Bom, se puderem me ajudar, agradeço demais!!
Seguinte...
Tenho dados de uma aba de uma planilha que quero inserir em outra.
(1) A planilha de origem tem o nome variável. (Sistema de Administração financeira setembro.2014), ou (Sistema de Administração financeira outubro.2014), e assim por diante. E o local onde ela fica armazenada é C:/Sistema de administração financeira.
(2) quero copiar os dados da PLAN30, Range("F63:F285") do arquivo citado acima para o arquivo (este é fixo) MODELO Sistema de administração financeira PLAN31 colando os valores a partir da célula J8 com o seguinte código: (Range("J8").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False). Este arquivo MODELO Sistema de administração financeira também fica na pasta C:/Sistema de Administração financeira.

O código que estou tentando usar é este:
Plan30.Select
Range("F63:F285").Select
Selection.Copy
Windows("MODELO Sistema de administração financeira.xlsm").Activate
Plan31.Select
Range("J8").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("J8").Select

Como faço pra fazer funcionar?

Obrigado!!!!!!

 
Postado : 18/08/2014 4:22 am
(@juliowd)
Posts: 0
New Member
Topic starter
 

Oi..
tentei outro código mas tmb não funcionou:

Sub Macro10()
'
' Macro10 Macro
'
Dim Pasta As String
Dim Arquivo As String

Plan30.Select
Range("F63:F285").Select
Selection.Copy
Pasta = "C:Sistema de administração financeira"
Arquivo = Pasta & "Sistema de administração financeira MODELO" & ".xlsm"
Windows(Pasta & Arquivo).Activate
Plan31.Unprotect
Plan31.Select
Range("J8").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("J8").Select
End Sub

 
Postado : 18/08/2014 4:31 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Oi..
tentei outro código mas tmb não funcionou:

Sub Macro10()
'
' Macro10 Macro
'
Dim Pasta As String
Dim Arquivo As String

Plan30.Select
Range("F63:F285").Select
Selection.Copy
Pasta = "C:Sistema de administração financeira"
Arquivo = Pasta & "Sistema de administração financeira MODELO" & ".xlsm"
Windows(Pasta & Arquivo).Activate
Plan31.Unprotect
Plan31.Select
Range("J8").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("J8").Select
End Sub

Não testei, veja se funciona

Sub Macro10()
'
' Macro10 Macro
'
Dim Pasta As String
Dim Arquivo As Workbook

    'Toda vez que for selecionar uma planilha (aba), você deve informar que tipo e o nome entre aspas
    Sheets("Plan30").Select
    Range("F63:F285").Copy 'Pode copiar direto
    'Selection.Copy
    'Utilize sempre a  no final para informar que esta dentro da pasta
    Pasta = "C:Sistema de administração financeira"
    Arquivo = Pasta & "Sistema de administração financeira MODELO" & ".xlsm"
    'Não use Pasta & Arquivo pois se não vai ficar. "C:Sistema de administração financeiraC:Sistema de administração financeiraSistema de administração financeira MODELO.xlsm"
    Workbooks.Open Arquivo
    'Primeiro selecione, depois desbloqueie
    Sheets("Plan31").Select
    Sheets("Plan31").Unprotect
    'Não precisa selecionar, pode colar direto
    Range("J8").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    'Range("J8").Select
End Sub
 
Postado : 18/08/2014 6:38 am
(@juliowd)
Posts: 0
New Member
Topic starter
 

Não funcionou Crema...

(1) Na primeira vez que rodei a macro, ele selecionou a linha que contém
Sheets("Plan30").Select
e disse o seguinte: "Run-time error '9'/subscript out of range"

(2) daí, mudei essa parte que ficou colorida de amarelo para: "Plan30.Select"
aí selecionou a seguinte linha:
Arquivo = Pasta & "Sistema de administração financeira MODELO" & ".xlsm"
mudei esta para
Arquivo = Pasta & "MODELO Sistema de administração financeira" & ".xlsm" (pois é assim o nome do arquivo. Eu que errei antes ali em cima)
e aí deu o erro:
"Run-time error '91'/object variable or with block variable not set"

E agora?
Valeu!!

 
Postado : 18/08/2014 6:59 am
(@juliowd)
Posts: 0
New Member
Topic starter
 

Gente, a coisa tá evoluindo aqui. Atualizei algumas linhas e agora travou na seleção da PLAN31.

Sub Macro10()
'
' Macro10 Macro
'
Dim Pasta As String
Dim Arquivo As String

'Toda vez que for selecionar uma planilha (aba), você deve informar que tipo e o nome entre aspas
Plan30.Select
Range("F63:F285").Copy 'Pode copiar direto
'Selection.Copy
'Utilize sempre a no final para informar que esta dentro da pasta
Pasta = "C:Sistema de administração financeira"
Arquivo = Pasta & "MODELO Sistema de administração financeira" & ".xlsm"
'Não use Pasta & Arquivo pois se não vai ficar. "C:Sistema de administração financeiraC:Sistema de administração financeiraSistema de administração financeira MODELO.xlsm"
Workbooks.Open Arquivo
'Primeiro selecione, depois desbloqueie
Plan31.Select
Plan31.Unprotect
'Não precisa selecionar, pode colar direto
Range("J8").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Range("J8").Select
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub

Fica marcado a linha PLAN31.SELECT já com o outro arquivo aberto.
A mensagem foi:
o método 'select' do objeto '_worksheet' falhou

 
Postado : 18/08/2014 11:42 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Quanto a linha citada já tentou trocar

Plan31.Select

por

Plan31.activate

?

Att

 
Postado : 18/08/2014 12:46 pm
(@juliowd)
Posts: 0
New Member
Topic starter
 

Oi Alexandre. Obrigado pelo retorno.
Tentei agora.
Já avançou.
Mas deu duas coisas:

(1) erro em tempo de execução '1004'
o método PasteSpecial da classe Range falhou

(2) a tela onde parou foi a da plan31 do arquivo de origem. Ou seja, não acessou o arquivo de destino, embora tenha aberto o outro arquivo certinho.

 
Postado : 18/08/2014 12:53 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Eu não sei se vou conseguir lhe ajudar....

Se as referencias a objetos, não forem feitas corretamente, você terá problemas e não resolverá seu caso!!
Porque você usa

Plan31

, não seria melhor fazer mais claro tipo

Worksheets("..minha guia...")

a sua guia também pode mudar de nomes?

Att

 
Postado : 18/08/2014 1:36 pm
(@juliowd)
Posts: 0
New Member
Topic starter
 

Alexandre, sim. Elas já mudaram de nome várias vezes.
Até evito trocar, mas quem pensa essa planilha não é apenas eu. Eu opero. Então, por isso, em razão de algumas ideias, precisei trocar o nome das abas. Mas eu posso começar a usar essa referência que você sugeriu. Mas aí eu teria que trocar todas essas referências nas minhas macros? É que são muitas!!!!
Por que você acha que ela não está entrando na outra planilha?

 
Postado : 18/08/2014 2:09 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Enquanto quem entende não te ajudar, vamos falar um linguaja mais simples.

Você tem dois arquivos (Origem.xls) e (Destino.xls), que copiar os dados ou intervalo de uma guia "Guia_Origem" para a guia "Guia_Destino"?

Att

 
Postado : 18/08/2014 2:12 pm
(@juliowd)
Posts: 0
New Member
Topic starter
 

Alexandre, é isso mesmo.
Só que o nome da minha guia (Origem.xlsm) é variável. Já o nome da guia (Destino.xlsm) é fixo.
Eu quero copiar um intervalo de dados:
Origem: F63:F285.
Destino: J8:J230.

 
Postado : 18/08/2014 2:18 pm
(@juliowd)
Posts: 0
New Member
Topic starter
 

bom, eu descobri que não está colando porque ao acessar outro arquivo, e fazer o
(1) Worksheets("anuidade").Unprotect
(2) Worksheets("anuidade").Activate
ele 'perde' a seleção dos dados.
Pra resolver isso eu preciso, através de macro voltar ao arquivo de origem, copiar, voltar ao arquivo de destino e colar.....
agora como se faz isso....., não tenho ideia!

 
Postado : 18/08/2014 2:31 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Seria algo assim...?

Sub AleVBA_12838()
    Dim wbMe As Workbook, wbOpen As Workbook
    Dim strSheet  As String
     
    strSheet = ActiveSheet.Name
    Set wbMe = ThisWorkbook
     
    ChDir "C:UsersalexandreDownloads"
    Set wbOpen = Workbooks.Open _
    (Filename:="C:UsersalexandreDownloadsDeletar.xlsx", Editable:=True)
'Acima tem o nome do arquivo, mude o nome e a extenção se necessário
    wbMe.Sheets(strSheet).Range("F63:F285").Copy _
    Destination:=wbOpen.Sheets(1).Range("J8")

End Sub

Lembre de alguns detalhes, o livro destino não foi fechado (apenas aber na pasta C:UsersalexandreDownloads), a extenção do arquivo destino deve ser de acordo com seu arquivo real (xls, xlsx, xlsm, xlsb etc).

Att

 
Postado : 19/08/2014 5:52 am
(@juliowd)
Posts: 0
New Member
Topic starter
 

Oi! Desculpe-me a demora no retorno. Não é habitual.
É que não pude trabalhar ainda nesse novo código. Mas essa semana vou trabalhar nele e dou um feedback.
Obrigado pela ajuda!

 
Postado : 26/08/2014 8:24 am
(@juliowd)
Posts: 0
New Member
Topic starter
 

Grande Alexandre!!!
Você resolveu!!!
É este o código, com as mudanças que você sugeriu.
Muito, muito obrigado!!!

Tive um outro problema pra fazer funcionar. Mas não é problema com seu código.
Vou postar em outro tópico, pois neste, o que eu precisava você resolveu!!

Um abração!!

 
Postado : 28/08/2014 7:25 am