Notifications
Clear all

Macro para importar planilhas em nova guia

10 Posts
2 Usuários
0 Reactions
1,403 Visualizações
(@fpheldman)
Posts: 26
Eminent Member
Topic starter
 

Boa noite,
Tenho uma planilha na qual funciona como um programa (menus e botões). Cada botão faz uma cópia de uma guia oculta e a deixa aparente,
porém a demanda está aumentando e não consigo ocultar tantas guias e fazer o mesmo processo sem que ocorram erros.
Existe a possibilidade de ao invés de copiar guias ocultas, criar planilhas independentes de excel e ao clicar no "botão" ele fazer uma copia
deste arquivo em uma nova guia com um nome a ser digitado (em uma caixa de texto que abrir ao clicar no botão, por exemplo)?
Obrigado desde já!

 
Postado : 16/03/2016 7:45 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Sim é possivel mas seria bom disponibilizar seu arquivo para que o codigo funcione corretamente.

Qto a ocultar as abas vc pode utilizar um codigo que oculte todas as abas que vc precisar tanto faz 5 ou 500

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 : 17/03/2016 5:50 am
(@mprudencio)
Posts: 2749
Famed Member
 

Este codigo oculta todas as planilhas que estiverem na pasta com exceção da pasta Menu


Sub Ocultar()

Dim WSPlan As Worksheet

Application.ScreenUpdating = False

On Error Resume Next

For Each WSPlan In Worksheets

If WSPlan.Name <> "Menu" Then 

WSPlan.Visible = xlSheetVeryHidden

End If

Next

Application.ScreenUpdating = True

End Sub

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 : 17/03/2016 5:59 am
(@fpheldman)
Posts: 26
Eminent Member
Topic starter
 

Sim é possivel mas seria bom disponibilizar seu arquivo para que o codigo funcione corretamente.

Qto a ocultar as abas vc pode utilizar um codigo que oculte todas as abas que vc precisar tanto faz 5 ou 500

Boa noite MPrucencio!
Talvez o erro esteja no código que estou usando.
Eu uso o código abaixo para copiar duas guias ocultas e reexibi-las com um nome determinado pelo executante em uma caixa de texto.
Quando oculto mais guias para realizar a mesma tarefa, clicar em um botão e fazer uma copia como uma nova guia começa a dar erro:
A guia que é criada com a copia utiliza o nome da planilha original e a planilha original modifica seu nome.
Segue o codigo abaixo:

Sub DuplicaERenomeia()
'primeiro, faz a cópia da planilha

Dim newSheet As Worksheet
Dim nome As String
Dim bool As Boolean

nome = InputBox("Prefixo do TREM:", "Renomeando...")

For Each abc In Worksheets
If abc.Name = nome Then
bool = True
End If
Next
	
'--------------------------------
If nome = "" Then
Exit Sub
End If
'--------------------------------

If bool = False Then

    Sheets("NAOMEXER").Visible = True
    Sheets("NAOMEXER").Copy After:=Sheets(ThisWorkbook.Worksheets.Count)
    Set newSheet = ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
    newSheet.Name = nome
    MsgBox "Nova guia com check list do TREM criada!"
    Sheets("NAOMEXER").Visible = False
Else
    MsgBox "Já existe uma guia com o nome: [" & nome & "].", vbCritical, "Atenção"
    
End If
    
End Sub

Agradeço pela ajuda!!

 
Postado : 20/03/2016 6:13 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Como eu disse diponibilize o arquivo com as abas que interessam os dados nao importam

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 : 21/03/2016 1:35 pm
(@fpheldman)
Posts: 26
Eminent Member
Topic starter
 

Como eu disse diponibilize o arquivo com as abas que interessam os dados nao importam

Boa noite MPrudencio!
Mais uma vez obrigado pela ajuda.
Eu ainda não remontei a planilha original mas fiz um esboço do que estou tentando fazer. Segue em anexo

 
Postado : 21/03/2016 6:56 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Fiz o codigo apenas para a Guia01


Sub NGuia()
Dim Nome As String
Dim WG As Worksheet

'Para as demais guias troque o nome da guia na linha abaixo
Set WG = Sheets("Guia01")
    WG.Visible = xlSheetVisible
    
    Nome = InputBox("Nome da guia:", "Renomeando...")
        
     WG.Copy
     ActiveSheet.Name = Nome
      
End Sub

Troque tb o nome da macro para cada guia.

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 : 22/03/2016 3:20 pm
(@fpheldman)
Posts: 26
Eminent Member
Topic starter
 

Bom dia
Marcelo, essa macro que você enviou copia a guia oculta e a abre em uma nova planilha. Ela também torna visível a guia oculta na planilha original.
O que estou tentando fazer é uma cópia da guia oculta na mesma planilha que fique visível mas mantenha a original oculta e inalterada.

 
Postado : 23/03/2016 4:06 am
(@mprudencio)
Posts: 2749
Famed Member
 

E so subistituir a anterior por esta:

Sub NGuia()
Dim Nome As String
Dim WG As Worksheet

Set WG = Sheets("Guia01")
    WG.Visible = xlSheetVisible
    
    Nome = InputBox("Nome da guia:", "Renomeando...")

             
     WG.Copy After:=Sheets(Sheets.Count)
     ActiveSheet.Name = Nome

     WG.Visible = xlSheetHidden
        

End Sub

Pessoalmente eu colocaria o nome da aba em uma celula é muito melhor que na inputbox, mas é questao de opção.

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 : 23/03/2016 8:29 am
(@fpheldman)
Posts: 26
Eminent Member
Topic starter
 

Boa tarde
Marcelo, o código funcionou perfeitamente!
Eu não estou usando o nome através de uma célula devido a funcionalidade mesmo, no caso é uma copia de uma planilha de check list que tem nomes variáveis
de acordo com o usuário.
Mais uma vez muito orbrigado pela ajuda!
Tópico resolvido.

 
Postado : 23/03/2016 10:53 am