Notifications
Clear all

Copiar e colar noutra planilha

16 Posts
2 Usuários
0 Reactions
2,427 Visualizações
(@shroeder)
Posts: 57
Trusted Member
Topic starter
 

Olá a todos,

Estive a pensar se seria possível criar uma macro que copie uma aba e cole noutro ficheiro (novo), perguntando nome e localização para gravar.

Eu tenho uma macro para fazer este procedimento em PDF, mas não estou a conseguir criar para o XLS.

Tem como ajudar?

Agradecido.

Cumps

 
Postado : 02/02/2016 1:08 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Esse é um exemplo ve se consegue adaptar...

Se nao conseguir disponibilize seu arquivo.

Qto ao codigo crie uma pasta com o nome Clientes em C: para o codigo funcionar corretamente.

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 : 02/02/2016 1:26 pm
(@shroeder)
Posts: 57
Trusted Member
Topic starter
 

Talvez esteja pedido algo impossível. Não tenho exemplo de arquivo.

O que eu queria era o seguinte:

Numa planilha tenho as abas "Formulas", "Base2" e "Base3".

Todas as formulas seriam colocadas em "Formulas", e as outras abas apenas iriam buscar dados (=Formulas!A1, etc)

Gostaria de poder exportar apenas as abas "Base2" e "Base3" para uma nova pasta, mas em valores, sem formulas.

Se não for possível terei de pensar noutra solução.

Valeu

 
Postado : 02/02/2016 2:58 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Se nao tem a planilha ainda é perca de tempo, nem quero saber se vc testou o exemplo.

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 : 02/02/2016 3:03 pm
(@shroeder)
Posts: 57
Trusted Member
Topic starter
 

Testei sim, mas o código está dando erro

 
Postado : 02/02/2016 3:09 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Qual o erro do codigo??? em que linha ??

VC seguiu as instruções que passei.

Criou a pasta Clientes???

O nome do arquivo é o mesmo

Abri o codigo e vi um erro que nao tinha modificado qdo renomeei o arquivo

Troque essa linha

Set W = Workbooks("Transformação")

Por esta

Set W = Workbooks("Filtra e Salva em XLSX")

Vai funcionar.

....

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 : 02/02/2016 3:47 pm
(@shroeder)
Posts: 57
Trusted Member
Topic starter
 

Obrigado. Funcionou mas não consigo adaptar para o que queria. Não sei muito sobre vba ainda.

Vou optar por exportar, copiando apenas valores.

Para isso vou criar abas adicionais, e uma macro que copia em valores as abas antigas para as novas, e que exporte apenas as novas, abrindo outro ficheiro.

Provavelmente existem maneiras muitos mais simples mas não estou a conseguir.

Cumps,

 
Postado : 03/02/2016 12:14 pm
(@mprudencio)
Posts: 2749
Famed Member
 

O codigo que esta no exemplo que postei esta fazendo exatamente o que vc acabou de descrever, o que acontece é que o processo é muito rapido e imperceptivel ao usuario.

Se vc nao consegue adaptar a sua necessidade tem que ser feito o que eu disse anteriormente, vc precisa criar um esboço de sua planilha com a sua necessidade, fica impossivel qualquer um adivinhar o que vc precisa.

Hoje o exemplo que passei cria uma planilha nova para cada cliente neste caso, o usuario precisa informar o cliente e gerar uma planilha nova a cada cliente, porque qdo foi feito funcionava melhor assim. Se vc quiser (usando esse exemplo) que o seja criada todas as planilhas dos clientes de uma unica vez tambem é possivel, basta fazer uma pequena modificação no codigo.

Entao faça um esboço dos seu pensamento que adaptamos o codigo juntos.

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 : 03/02/2016 12:27 pm
(@shroeder)
Posts: 57
Trusted Member
Topic starter
 

Muito obrigado pela disponibilidade.

Fiz um esboço muito rápido.

Na aba "Base" temos um controle.

Se escolher "SIM", quero exportar as abas "SIM1" e "SIM2" para outra planilha em valores.
Se escolher "NÃO", quero exportar as abas "NAO1" e "NAO2" para outra planilha em valores.

Isto, eu consigo fazer mesmo através da gravação do código, abrindo a planilha direto.

O que eu não consigo fazer, é que em vez de abrir direto ou ter de criar uma pasta como no seu exemplo, me pergunte onde quero guardar e qual o nome do ficheiro.

Vou passar o código do pdf de seguida, que talvez o possa ajudar

 
Postado : 03/02/2016 12:45 pm
(@shroeder)
Posts: 57
Trusted Member
Topic starter
 

Sub SaveFileToPDF_Prompt()

If Range("Plan1!AK10") = 1 Then

ThisWorkbook.Sheets(Array("Folha1", "Plan1", "Resumo", "RAIRN", "TARN", "Q07F", "Q08G", "Q10GF", "PEC", "Folha3")).Select
Dim vPDFPath As Variant

Do

bRestart = False
vPDFPath = Application.GetSaveAsFilename(, "PDF Files (*.pdf), *.pdf")

If CStr(vPDFPath) = "False" Then
Exit Sub
Else
lAppSep = InStrRev(vPDFPath, Application.PathSeparator)

End If

If UCase(Dir(vPDFPath)) = UCase(Right(vPDFPath, Len(vPDFPath) - lAppSep)) Then
Select Case MsgBox("O arquivo já existe. Deseja substituí-lo?", _
vbYesNoCancel, "Destination file exists!")
Case vbYes
Kill vPDFPath
Case vbNo
bRestart = True
Case vbCancel
Sheets("MInicial").Select
Exit Sub
End Select
End If
Loop Until bRestart = False

ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=vPDFPath, _
OpenAfterPublish:=True

Sheets("MInicial").Select

MsgBox "Ficheiro Criado com Sucesso"

End If

End Sub

 
Postado : 03/02/2016 12:46 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Uma coisa que nao ficou claro foi o seguinte vc vai criar o XLSX e depois o PDF???

E isso mesmo???

E necessario???

Vai precisar do XLSX para alguma coisa ou ele é so pra criar o PDF

Ou vc precisa somente do PDF?

Pq nao tem necessidade de criar o XLSX para gerar o PDF

Outra coisa sua planilha nao tem nenhum dado nenhuma informação

Um esboço significa dados para fazer funcionar

Pra vc entender o que estou dizendo abra o arquivo que enviei e abra o editor vba depure com as duas telas visiveis.

Vc vai entender como o codigo que esta presente funciona e o que precisa pra adaptar a sua necessidade.

E necessario saber onde esta dos dados ou é so a pra exportar a planilha com base em sim ou nao.

A planilha é so isso um local pra escrever sim ou nao e 4 abas com os dados que estao la.

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 : 03/02/2016 1:43 pm
(@shroeder)
Posts: 57
Trusted Member
Topic starter
 

Eu quero só guardar em xls. O pdf foi apenas para mostrar o exemplo de perguntar a localização parar gravação.
O esboço tem uma formula em cada aba, so para exemplo

 
Postado : 03/02/2016 2:20 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Sendo assim qual o nome do arquivo e onde vc quer salvar??

VC quer escolher isso sempre ou quer decidir na hora que tiver executando o codigo.

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 : 03/02/2016 2:58 pm
(@shroeder)
Posts: 57
Trusted Member
Topic starter
 

Queria decidir na hora. Não queria ter um caminho fixo.

 
Postado : 03/02/2016 3:14 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Ve se assim atende sua necessidade.

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 : 03/02/2016 4:17 pm
Página 1 / 2