Elimiar hojas de excel ecepto las que yo no quiero

Buen día.
Me dirijo a ustedes para que me puedan auxiliar necesito una macro que me borre todas las hojas de excel excepto las que yo le indique en el código.
Ejemplo:
En Mi libro de Excel Facturas.xlsm
Tengo las siguientes Hojas:
Relación de Facturas
Factura
Fac0001
Fac0002
Fac003
Etc...
Requiero borrar todas las hojas de excel excepto mis Hojas "Relación de Facturas" y "Factura"
Sin más por el momento y agradeciendo de antemano su apoyo.

1 respuesta

Respuesta
1
Lo puedes hacer de esta manera:
Sub EliminarHojas()
    Dim oWorksheet As Worksheet
    For Each oWorksheet In ThisWorkbook.Worksheets
        If Left(oWorksheet.Name, 3) = "Fac" And oWorksheet.Name <> "Factura" Then
            Application.DisplayAlerts = False
            oWorksheet.Delete
            Application.DisplayAlerts = True
        End If
    Next
End Sub
Lo que hace la macro es borrar todas las hojas cuyo nombre comienza por "Fac" excepto "Factura"
Te he dejado el ejemplo aquí por si quieres descargarlo
http://goo.gl/t5tSv
Saludos,
Carlos
[email protected]
De antemano te doy las gracias por la pronta respuesta. Me sirvió el código,
Pero no necesariamente las demás hojas empiezan con FAC en mi archivo, así como haces la ecepcion para factura podrían se más de una hoja. Es decir quiero que la macro borre todas las hojas a ecepcion las que yo le indique en el código.
oWorksheet.Name <> "Factura" Then "Creo que esta es la instrucion que evita borrar esta hoja.
En ese caso te quedaría así:
Sub EliminarHojas()
    Dim oWorksheet As Worksheet
    For Each oWorksheet In ThisWorkbook.Worksheets
        If oWorksheet.Name <> "Relacion de Facturas" And _
           oWorksheet.Name <> "Factura" And _
           oWorksheet.Name <> "LoQueQuieras" Then
            Application.DisplayAlerts = False
            oWorksheet.Delete
            Application.DisplayAlerts = True
        End If
    Next
End Sub
Puedes añadir las excepciones que quieras en el If

Añade tu respuesta

Haz clic para o