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
1

1 respuesta

Respuesta
1
Por lo que veo, son dos los problemas que reqieres resolver. Así que nos vamos por orden y me explicas bien el primero (una vez resulto este seguimos con el segundo).
¿Qué hace específicamente la macro que envías?
¿Qué es lo que debería hacer y no hace?
Ayudame a entender un poco el problema.
Hola te cuento lo que realiza el macro es crear una hoja de un libro de excel con el nombre de un listado ya solucione el problema, pero quería poder crear con un botón en donde haga lo mismo pero que yo diga quiero crear 20 hojas me lo permita por el nombre de la hoja no hay problema porque podría colocar por defecto hoja1, hoja 2. bueno pero esto no lo necesito tanto lo que si me interesaría es esto es viable que me ayudes con lo siguiente como puedo crear un control + B o buscar con un macro pero que busque en todo el libro
como siempre te agradezco la ayuda sobre todo con lo de buscar dame una idea
chaos y también te envío muchos saludos,
Me alegro que hayas podido solucionar el otro problema.
Para resolver lo de la búsqueda:
Uso de la macro que busca
Sub buscar()
   
'Para buscar en la hoja1 la palabra hola

    SubBuscar Hoja1, "hola"
End Sub

'Macro que busca
Sub subBuscar(hojaBusq As Worksheet, strBuscar As String)
    Set resulta = hojaBusq.UsedRange.Find(strBuscar, LookIn:=xlValues, LookAt:=xlWhole)
    If Not resulta Is Nothing Then
        hojaBusq.Select
        resulta.Select
    End If
End Sub

---------------------------------
'Para crear 20 hojas en el libro activo, sin que importe el nombre
For i = 1 To 20
        Sheets.Add
Next

--------------------------
Espero que te sirva... cualquier consulta, no dudes en plantearla.
Hola
Disculpa mi falta de conocimiento pero no me esta funcionado, ¿para la macro de buscar debo crear un userform? ¿Para qué me de la opción de escribir lo que debo buscar? Disculpa y gracias por tu ayuda.
Saludos
Tu decides la forma en que le pides el valor a buscar al usuario
'puede ser con una celda (A1, por ejemplo)
Sub buscar() 'Puedes activar esta macro con un boton en la hoja
    'Para buscar en la hoja1 el valor de la celda a1
    subBuscar Hoja1, Hoja1.[A1]
End Sub

'Con un inputbox
Sub buscar()'Puedes activar esta macro con un boton en la hoja
    'Para buscar en la hoja1 el valor del inputbox
    subBuscar Hoja1, InputBox("¿Que desea buscar?")
End Sub

'En el evento click del boton de un user form
Private Sub CommandButton1_Click()  
     'Para buscar en la hoja1 el valor del text1 del userform
subBuscar Hoja1, Text1.Text
End Sub

La macro subBuscar debe quedar en un módulo.
Espero te quede más claro, cualquier duda.. sólo consulta
Hola si otra vez yo perdón pero mi tengo esto código y me esta funcionando a medias
Private Sub CommandButton1_Click()
Dim n As Range
palabra_a_buscar = InputBox("Introduce la palabra a buscar", "BUSCADOR")
Set n = Cells.Find(What:=palabra_a_buscar)
If n Is Nothing Then
MsgBox "No he encontrado nada. Lo siento."
Else
Range(n.Address).Select
MsgBox "Aquí tienes la palabra " & UCase(palabra_a_buscar) & "."
End If
End Sub
Pero no me esta buscando lo palabra en todo el libro como hago ayuda
disculpame tanta molestia.
Un saludo
Cierra el tema anterior y abre uno nuevo cada vez que consultes.
Ahora a tu problema:
Con la macro que tienes estás buscando sólo en la hoja activa, por tanto, tienes que ir cambiando de hoja para buscar en todo el libro. Eso lo haces con un for (Lo que está en negritas es lo que agregué).
Private Sub CommandButton1_Click()
    Dim n As Range
    Dim h As Worksheet
    Dim i As Integer

    palabra_a_buscar = InputBox("Introduce la palabra a buscar", "BUSCADOR")
    For i = 1 To Sheets.Count
        Set n = Sheets(i).Cells.Find(What:=palabra_a_buscar)
        If n Is Nothing Then
            If i = Sheets.Count Then MsgBox "No he encontrado nada. Lo siento."
        Else
            Sheets(i).Select
            n.Select
            MsgBox "Aquí tienes la palabra " & UCase(palabra_a_buscar) & "."
            Exit For
        End If
    Next
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas