En macro Excel, crear una hoja para filtro

En la macro, al ejecutar el botón Consultar, crear una hoja "Temp" para filtrado

Al cerrar el libro, esta se eliminará

1 Respuesta

Respuesta
1

Para crear la hoja.

Agregar el siguiente evento en el formulario:

Private Sub UserForm_Initialize()
'Por.Dante Amor
    For Each h In Sheets
        If h.Name = "temp" Then
            existe = True
            Exit For
        End If
    Next
    If existe = False Then
        Sheets.Add(After:=Sheets(Sheets.Count)).Name = "temp"
        ActiveSheet.Visible = 0
    End If
End Sub

En los eventos de Thisworkbook agregar lo siguiente:

Private Sub Workbook_Open()
'Por.Dante Amor
    For Each h In Sheets
        If h.Name = "temp" Then
            existe = True
            Exit For
        End If
    Next
    If existe = False Then
        Sheets.Add(After:=Sheets(Sheets.Count)).Name = "temp"
        ActiveSheet.Visible = 0
    End If
End Sub
'
Private Sub Workbook_BeforeClose(Cancel As Boolean) 'Cierra libro en la hoja Inicio
'Por.Dante Amor
    On Error Resume Next
    Application.DisplayAlerts = False
    Sheets("Temp").Delete
    ActiveWorkbook.Save
End Sub

sal u dos

Disculpa preguntar tanto pero, com odicen acá y en algunas otras partes; si no preguntas, jamas sabrás algo.

Crea la hoja en el evento Initialize y también en Open ¿por qué? Tendrá una explicación el porque en los 2 eventos

No la crea 2 veces.

En ambos eventos revisa, si ya existe no la crea, si no existe entonces la crea.

Tu pediste que se creara la hoja en el evento Open, pero si por alguna causa la hoja no fue creada en el evento Open, entonces el formulario consulta no va a funcionar, es por eso que tengo que revisar nuevamente si existe.

Puedes preguntar lo que quieras, pero si la explicación es muy larga deberás crear la pregunta correspondiente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas