Ir ao conteúdo
  • Cadastre-se
paulo tadeu pereira

RESOLVIDO Macro para copiar planilha e renomear

Recommended Posts

Boa Tarde amigos

 

Estou criando uma planilha e nao consegui fazer um detalhe.

 

Fiz uma planilha que vai ser a matriz e outra chamada "01" que vai ser o modelo, Esse modelo vai ser utilizado para cada dia da semana durante o mes, exceto o domingo,  ai fiz umas formulas (bem amadoras) para desconsiderar o domingo e utilizar os dias do mes de segunda a sábado e criar a quantidade de copias de acordo com a quantidade de dias no mes.

 

Problemas 

 

01 - queria que quando a macro fizesse a copia ela ja renomeasse as planilhas seguindo a sequencia dos dias que esta na listagem (Q7:Q37)

 

02 - Na concontaneçao dos itens na coluna Q ela mantivesse o padrão 01-08 e nao 1-8 como esta ficando 

 

A macro que estou usando é essa:

 

 
Sub DuplicaERenomeia()
 
    Dim NumCopias As Integer
    
    NumCopias = Cells([7], [10])
    
    
    For numtimes = 1 To NumCopias
 
    Sheets("01").Copy After:=Sheets(ThisWorkbook.Worksheets.Count)
    
    Dim NovaPlanilha As Worksheet
    Set NovaPlanilha = ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
    NovaPlanilha.Name = ThisWorkbook.Worksheets("Matriz").[Q7]
    
    
    Next
    
    
End Sub

post-733454-0-80479300-1407960472_thumb.

Compartilhar este post


Link para o post
Compartilhar em outros sites


Sub CópiaPlan01()

 Dim Pn As Range

  Range("Q7:Q37").Copy

  [T7].PasteSpecial Paste:=xlValues

   For Each Pn In Range("T7:T37")

    If Pn.Value <> "" Then

     Sheets("01").Copy After:=Sheets(Sheets.Count)

      ActiveSheet.Name = Format(Left(Pn, Len(Pn) - 2), "00") & "-" & _

       Format(Right(Pn, 1), "00")

    End If

   Next Pn

 Sheets("Matriz").[T:T] = ""

End Sub

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@osvaldomp a sua macro ficou boa para o que eu queria mas ficou om um problema, se ele encontrar o X ele funciona normal, mas se ele nao encontra ele para, e queria que ele pulasse e continuasse. 

 

Encontrar o "X" ? Onde está esse "X" ?

O código lê as células no intervalo "Q7:Q37" para renomear as cópias criadas e nesse intervalo não existe "X" na figura que você postou...(???)

Disponibilize uma amostra do seu arquivo com o código instalado.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@osvaldomp desculpa eu que viajei, a sua formula procura por valores diferentes de "" (vazio) né e quando nao encontra ele para.  :eek:

 

Com base nas suas respostas me parece que você não testou o código pois esta observação sua aí acima também não é verdadeira... :huh:   :confused:

Ainda com base nas suas respostas eu não consigo concluir se o código atendeu ao que você deseja... :o

 

O código faz cópias da planilha "01", A quantidade de cópias será igual à quantidade de células com valor no intervalo "Q7:Q37", Não foi isso que você pediu?

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@paulo

Só olhando as figuras eu não consigo reproduzir o problema que está ocorrendo aí.

Repito a sugestão que passei no post #6: Disponibilize uma amostra do seu arquivo com o código instalado. Sem ver e fazer os testes no seu arquivo fica difícil te ajudar.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@paulo

 

A sua fórmula em "Q7" é =SE(N7=$Q$5;CONCATENAR(P7;-$L$8;);" ")
Então, se Falso, a fórmula retorna "espaço", e deveria retornar "vazio". É isso que provoca o travamento na execução do código.
Altere para =SE(N7=$Q$5;CONCATENAR(P7;-$L$8;);"") (para retornar "vazio" as aspas devem estar juntas, sem espaço entre elas)

 

Verifique também em "P7", embora a coluna "P" não seja considerada na execução do código, é conveniente arrumar também as fórmulas dessa coluna: =_xlfn.IFERROR(PROCV("X";N7:O7;2);"Domingo ") >> corrija para ...;"Domingo") >> elimine o espaço antes da última aspa

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×