Ir ao conteúdo

Posts recomendados

Postado

Bom dia amigos!

 

Sou iniciante nas macros do excel, estou fazendo um planilha que preciso muito de ajuda dos caros colegas;
Primeiramente vou tentar descrever minha planilha 
Plan1 - Renomeei como "Banco" é onde esta meu banco de dados relacionados a produtos e preços
Plan2 - Renomeei como "Comanda"  onde fica uma lista de produtos e na célula "C2" o nome do cliente

Plan3 -  Renomeei como "Vendas" onde fica registrado todas as vendas para meu controle futuro
Preciso de uma macro para que:
Copie todos dados da Planilha "comanda", crie um nova planilha, cole os dados, renomeei a planilha como nome do cliente que esta na célula "C2";
Retorne a planilha "comanda" apague todos os dados e fique na célula "C2" para inserir novo pedido. 

consigo fazer os passos de "copie e cole" mas não estou conseguindo renomear a planilha para que fique varia planilhas com o nome de clientes 
Ex de sequencia: Banco, Comanda, Vendas, Diego, Pedro, José, Lucas, Maria e etc...
Para quando eu tivesse que alterar ou inserir pedidos eu iria na planilha do cliente e alterava ou incluía dados 

 

Mas quando faço isso ele da uma mensagem erro no tempo de execução 9, subscrito fora do intervalo

Sub GRAVAR()
'
' GRAVAR Macro
'
' Atalho do teclado: Ctrl+g
'
    Cells.Select
    Selection.Copy
    Sheets.Add After:=Sheets(Sheets.Count)
    ActiveSheet.Paste
    Range("C2:H2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Plan3").Select
    Sheets("Plan3").Name = "DIEGO     "
    Sheets("COMANDA").Select
    Range("D5:W19").Select
    Application.CutCopyMode = False
    Selection.ClearContents
    Range("C2:H2").Select
    Selection.ClearContents
End Sub

Quando faço sem renomear ele faz tudo certinho 
Sub GRAVAR()
'
' GRAVAR Macro
'
' Atalho do teclado: Ctrl+g
'
    Cells.Select
    Selection.Copy
    Sheets.Add After:=Sheets(Sheets.Count)
    Cells.Select
    ActiveSheet.Paste
    Sheets("COMANDA").Select
    Range("D5:W19").Select
    Application.CutCopyMode = False
    Selection.ClearContents
    Range("C2:H2").Select
    Selection.ClearContents
End Sub


Gostaria de obter ajudar de vcs e espero ter conseguido passar meu problema, desde ja agradeço a todos colegas.

Postado

Segue uma sugestão para um caminho diferente. Veja se aproveita.

 

1. prepare uma planilha de nome ComandaMatriz com a estrutura desejada e sem o preenchimento de dados

2. para cada nova cópia desejada daquela planilha insira em C2 dela o nome do cliente e em seguida rode o código abaixo. O código irá criar uma cópia pronta para o preenchimento e renomeará com o nome inserido em C2.

 

Sub FazCópiaRenomeiaMatriz()
 Sheets("ComandaMatriz").Copy After:=Sheets(Sheets.Count)
 ActiveSheet.Name = [C2]
End Sub

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!