VBA para duplicar w...
 
Notifications
Clear all

VBA para duplicar worksheet para cada cliente


vilopesp
Posts: 1
Registered
Topic starter
(@vilopesp)
New Member
Entrou: 10 meses atrás

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.

 

Responder
Tags do Tópico
2 Respostas
1 Responder
MPrudencio
Registered
(@mprudencio)
Entrou: 6 anos atrás

Famed Member
Posts: 2746

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.

Responder
Anderson
Posts: 180
Registered
(@anderson)
Estimable Member
Entrou: 2 anos atrás
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

Responder