Macro copiar hoja y cambiarle nombre al MES siguiente del array?

Seria posible crear una macro que copie una hoja "MES (tipo)" y que la nueva hoja copiada se llamase "MES ENERO", y que al ejucutar nuevamente la macro copiase la hoja "MES (tipo)" y que la nueva hoja se llamase "MES FEBRERO", y asi sucesivamente hasta diciembre.

Puedo copiar y crear todas las 12 hojas a la vez, pero no se como hacerlo de una en una.

Dim NombreMes As Variant
Nombremes = array("enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre")
Dim i As Integer
For i = 1 To 12
'Application.ScreenUpdating = False
Sheets("MES (TIPO)").Select
Cells.Select
Selection.Copy
Sheets.Add After:=ActiveSheet
Cells.Select
ActiveSheet.Paste
ActiveSheet.Name = "MES " & NombreMes(i - 1)
Next i
'Application.ScreenUpdating = True
'Sheets("MES X").Select
Range("B1").Select

¿Alguna ayuda?

1 Respuesta

Respuesta
1

Prueba el siguiente código:

Sub copiarhoja_v1()
  Dim NombreMes As Variant, mes As Variant
  Application.ScreenUpdating = False
  NombreMes = Array("enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre")
  For Each mes In NombreMes
    If Not Evaluate("ISREF('MES " & mes & "'!A1)") Then
      Sheets("MES (TIPO)").Cells.Copy
      Sheets.Add(, ActiveSheet).Name = "MES " & mes
      ActiveSheet.Paste
      Exit For
    End If
  Next
  Application.ScreenUpdating = True
End Sub

Revisa lo siguiente:

https://youtu.be/PupmVvM16-8 

mi canal:

https://www.youtube.com/@CursosDeExcelyMacros

¡Muchas gracias!

Tanto por tu pronta respuesta como por la efectividad de la macro, funciona a la perfección,

Enormemente agradecido pues estaba atascado.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas