Notifications
Clear all

VBA para duplicar worksheet para cada cliente

3 Posts
3 Usuários
0 Reactions
1,565 Visualizações
(@vilopesp)
Posts: 1
New Member
Topic starter
 

E ai guys, to arrumando algumas coisas numas planilhas que uso aqui na oficina em que trabalho e to tentando melhorar algo para poder fazer outras funções depois. Porém o que eu tenho em mente não sei se é possível fazer ou como.

Basicamente, tenho uma planilha de ordem de serviço que uso para cadastrar todos os trabalhos feitos no carro do cliente desde quando ele deixou aqui na loja. E ai, quando ele vem buscar eu imprimo essa planilha para ele assinar os serviços entregues.

Acontece que eu estava usando um botão com o método .SaveAs do VBA para salvar uma cópia dessa planilha para cada cliente na área de trabalho. Ele também nomeava a planilha automaticamente com o nome do cliente e carro. Mas ao invés de salvar um arquivo para cada cliente separado, eu queria saber se tem alguma forma e como poderia fazer para duplicar essa planilha base para cada cliente, porém na mesma pasta de trabalho/arquivo. Se conseguir nomear sozinho cada uma também, melhor ainda.

Vou anexar o arquivo da planilha que uso para vocês terem uma ideia de como ela é e os botões que uso nela. Eu criei manualmente uma cópia dela com o nome de: "{fulano carro x}" para meio que expressar o que eu gostaria de fazer.

Se alguém souber alguma forma ou método que daria para fazer isso, agradeceria muito.

 

 
Postado : 13/11/2020 10:48 am
(@mprudencio)
Posts: 2749
Famed Member
 

Possivel é mas eu faria diferente.

 

Colocaria todos os serviços em uma unica planilha e faria um filtro por data e placa do carro.

E nesse filtro teria o relatorio de serviços realizados para a impressão para o cliente.

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 : 15/11/2020 1:03 pm
(@anderson)
Posts: 203
Reputable Member
 
Sub CopiarPlanilha()

Sheets("OS").Select
Sheets("OS").Copy After:=Sheets(1)

If Sheets("OS").Range("B10").Value <> "" Then
ActiveSheet.Name = Sheets("OS").Range("B10").Value & " " & Sheets("OS").Range("B15").Value
End If
End Sub

 

 

 

 

Grave uma macro fazendo o que deseja:

 

https://youtu.be/IADkWtiywak

Este post foi modificado 4 anos atrás 2 vezes por Anderson

Em 90% dos casos em que não se anexa o arquivo, ocorrem mal-entendidos, gerando perda de tempo de ambos os lados.

 
Postado : 17/11/2020 8:07 am