Página 1 de 1

Criar nova aba com layout da antiga

Enviado: 01 Mar 2016 às 10:27
por FilipeTeixeira
Bom dia pessoal.

Eu achava que sabia um pouquinho de Excel, até que precisei usar VBA :D . Estou sem tempo para aprender, então lhes peço ajuda se for possível.
Tenho uma planilha bem simples que é só para lançar um pedido e enviar por email. Eu queria automatizar o controle dos pedidos e para isso preciso dar o primeiro passo, que é resolver o problema abaixo descrito.

Problema: Criar nova aba com um nome especifico, (Se possível) puxar o layout da pagina velha. (Fazendo isso eu consigo criar uma aba de controle dos pedidos com data de vencimento, fornecedor e outras coisas que imagino).

Dei uma pesquisada e achei um código (abaixo) que cria uma nova aba com um nome. Ok, mas eu queria que o nome fosse assim. sht.Name ("Pedido"&"-"&"Texto da célula C13"&"-"&"data").
Ficaria algo do tipo: Pedido-fornecedor-data.
Código: Selecionar todos
Sub Adicionar_Aba5()


    Dim Response As VbMsgBoxResult
    Dim sht As Worksheet
    Response = MsgBox("Deseja inserir uma nova aba com formato de dia e hora?" _
        , vbQuestion + vbYesNoCancel)
    If Response = vbYes Then
        Set sht = Worksheets.Add
        sht.Name = Format(Now, "dd-mmm-yyyy_hhnnss")
    ElseIf Response = vbNo Then
        Worksheets.Add
    Else
        Exit Sub
    End If
       MsgBox "Nova aba adicionada", vbInformation, "Adicionar nova aba"


End Sub
Layout: Existe algum comando que "Chame" uma Macro Global ? Se existir cria-se uma Macro que copia a plan velha e cola na plan nova. Se não existir tal comando, não faço ideia de como resolver.

Segue a planilha em anexo.

Se não for possível fazer isso me avisem que parto para outra alternativa.

Obrigado!

Re: Criar nova aba com layout da antiga

Enviado: 01 Mar 2016 às 11:41
por alexandrevba
Bom dia!!

Tente algo assim...
Código: Selecionar todos
Sub Adicionar_Aba5()
    Dim Response As VbMsgBoxResult
    Dim sht As Worksheet
    Response = MsgBox("Deseja inserir uma nova aba com formato de dia e hora?" _
        , vbQuestion + vbYesNoCancel)
    If Response = vbYes Then
        With Sheets("Plan1")
            '.Visible = True
            .Copy After:=Sheets(Sheets.Count)
            '.Visible = False
        End With
        ActiveSheet.Name = "Pedido" & "_" & Worksheets("Plan1").Range("C13").Value & "_" & Format(Now, "dd-mmm-yyyy")
    ElseIf Response = vbNo Then
        Worksheets.Add
    Else
        Exit Sub
    End If
       MsgBox "Nova aba adicionada", vbInformation, "Adicionar nova aba"
End Sub
Att

Criar nova aba com layout da antiga

Enviado: 01 Mar 2016 às 11:55
por FilipeTeixeira
Olá!

Perfeito alexandrevba. Era exatamente o que eu precisava.

Abraços.