Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
#49209
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.
#49319
Tente isso:
Código: Selecionar todos
Sub Gravar()

'Adicionar planilha
Sheets.Add After:=Sheets(Sheets.Count)

'Renomear
If Sheets("Comanda").Range("C2").Value = Empty Then GoTo Erro

For i = 1 To Sheets.Count
    If Sheets(i).Name = Sheets("Comanda").Range("C2").Value Then GoTo Erro
Next i

Sheets(Sheets.Count).Name = Sheets("Comanda").Range("C2").Value

'Colar
Sheets(Sheets.Count).Range("A1:Z100") = Sheets("Comanda").Range("A1:Z100")

'Apagar
Sheets("Comanda").Range("A1:Z100").ClearContents

Exit Sub
Erro:
MsgBox "Nome repetido ou nulo!"

Application.DisplayAlerts = False
Sheets(Sheets.Count).Delete
Application.DisplayAlerts = True

End Sub
Substitua a Range por uma maior caso precise!
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord