Crear hojas con el mismo formato con macros
Te agradezco la colaboración con el siguiente macro en el cual me crea una hojas con el nombre que le indico (según código) el problema radica en que quiero que tenga el formato de la hoja original y no me lo toma. Ademas que si en determinado momento si no quiero que me tome las del listado con otro botón pueda crear según el mi criterio 20 hojas a la vez y que les coloco que nombre por defecto que es hoja2, hoja3 etc. Pero con el formato
Espero me puedas colaborar
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
Application.ScreenUpdating = False
Set datos = Range("A:A")
If Union(Target, datos).Address = datos.Address And ActiveCell <> "" Then
hoja_de_calculo = ActiveCell.Value
Sheets(hoja_de_calculo).Select
If ActiveSheet.Name <> hoja_de_calculo Then
hoja_de_calculo = Replace(hoja_de_calculo, ":", "")
hoja_de_calculo = Replace(hoja_de_calculo, "/", "")
hoja_de_calculo = Replace(hoja_de_calculo, "\", "")
hoja_de_calculo = Replace(hoja_de_calculo, "?", "")
hoja_de_calculo = Replace(hoja_de_calculo, "*", "")
hoja_de_calculo = Replace(hoja_de_calculo, "[", "")
hoja_de_calculo = Replace(hoja_de_calculo, "]", "")
If hoja_de_calculo <> "" Then
Hoja2.Select
Hoja2.Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = Left(hoja_de_calculo, 31)
Range("A1").Select
ActiveCell = hoja_de_calculo
End If
Else
hoja_de_calculo.Select
End If
End If
Application.ScreenUpdating = True
End Sub
Espero me puedas colaborar
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
Application.ScreenUpdating = False
Set datos = Range("A:A")
If Union(Target, datos).Address = datos.Address And ActiveCell <> "" Then
hoja_de_calculo = ActiveCell.Value
Sheets(hoja_de_calculo).Select
If ActiveSheet.Name <> hoja_de_calculo Then
hoja_de_calculo = Replace(hoja_de_calculo, ":", "")
hoja_de_calculo = Replace(hoja_de_calculo, "/", "")
hoja_de_calculo = Replace(hoja_de_calculo, "\", "")
hoja_de_calculo = Replace(hoja_de_calculo, "?", "")
hoja_de_calculo = Replace(hoja_de_calculo, "*", "")
hoja_de_calculo = Replace(hoja_de_calculo, "[", "")
hoja_de_calculo = Replace(hoja_de_calculo, "]", "")
If hoja_de_calculo <> "" Then
Hoja2.Select
Hoja2.Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = Left(hoja_de_calculo, 31)
Range("A1").Select
ActiveCell = hoja_de_calculo
End If
Else
hoja_de_calculo.Select
End If
End If
Application.ScreenUpdating = True
End Sub
1 Respuesta
Respuesta de Isaac Reyes
1