Borrar hojas con prefijo

JoaoM

New Member
Joined
Dec 3, 2010
Messages
13
Tengo esta macro (codigo) para eliminar hojas de excel colocando el prefijo solamente.

Sub borrar_con_prefijo()
'si hay errores que continúe
On Error Resume Next
'omitimos los avisos
Application.DisplayAlerts = False
'preguntamos el prefijo
respuesta = InputBox("Prefijo de las hojas a borrar", "Pregunta")
'contamos el largo de la respuesta
largo = Len(respuesta)
'para todas las hojas
For Each hoja In Sheets
'comprobamos si coincide el prefijo
If Left(hoja.Name, largo) = respuesta Then
'la borramos
Sheets(hoja.Name).Select
ActiveSheet.Delete
'creamos un contador
contador = contador + 1
End If
Next
Sheets(1).Select
'si hay contador, mostramos un mensaje
If contador Then MsgBox ("Se han eliminado " & contador & " hojas.")
End Sub

XE. al preguntarme coloco m doy Aceptar y me elimina las hojas que comiencen por m o M
Lo malo es que si le doy en Cancelar me elimina TODAS menos una, sean 20, 30, 50 hojas que tenga en el libro

Si le elimino la linea roja no me elimina ninguna pero me sigue diciendo que elimino X hojas (la totalidad) y no es cierto
Quisiera que si le doy Cancelar me diga; "No se eliminó ninguna hoja" pero que de verdad no elimine pero tambien que pueda tener la linea roja activa para cuando coloque un prefijo para eliminar
 

Excel Facts

Enter current date or time
Ctrl+: enters current time. Ctrl+; enters current date. Use Ctrl+: Ctrl+; Enter for current date & time.
Hola Joao,

Podés probar con esta versión a la cual agregué una líneas (en
rojo), la primera (Option Compare Text) debe
ir arriba, antes del comienzo de la Sub para poder realizar comparación de texto de minúsculas contra mayúsculas
o comparación "case insensitive".

Code:
[COLOR=Red]Option Compare Text[/COLOR]
Sub borrar_con_prefijo()
'si hay errores que continúe
On Error Resume Next
'omitimos los avisos
Application.DisplayAlerts = False
'preguntamos el prefijo

respuesta = InputBox("Prefijo de las hojas a borrar", "Pregunta")
'contamos el largo de la respuesta
largo = Len(respuesta)
'para todas las hojas

For Each hoja In Sheets
    'comprobamos si coincide el prefijo
    If Left(hoja.Name, largo) = respuesta [COLOR=Red]And respuesta <> ""[/COLOR] Then
    'la borramos
        Sheets(hoja.Name).Delete
        'creamos un contador
        contador = contador + 1
    [COLOR=Red]ElseIf Left(hoja.Name, largo) <> respuesta And respuesta <> "" Then
        Noencontrada = Noencontrada + 1
    ElseIf respuesta = "" Then[/COLOR]
        MsgBox ("No se eliminó ninguna hoja")
      [COLOR=Red]  Exit Sub[/COLOR]
    End If
Next
Sheets(1).Select
'si hay contador, mostramos un mensaje
[COLOR=Red]If Noencontrada And contador = 0 Then MsgBox ("Búsqueda en " & Noencontrada & " hoja, ninguna encontrada con prefijo <<" & _
respuesta & ">> para eliminar")[/COLOR]
If contador Then MsgBox ("Se han eliminado " & contador & " hojas.")
End Sub
Espero ayude,
 
Upvote 0
PERFECTO

Precisamente lo que queria, mensage de x hojas eliminadas, mensage de NO encontrada y mensage de Cancelada operacion, GRACIAS, mil gracias
Ya quisiera saber la mitad, lo que pasa es que mi ocupacion es otra, mas pesada, reparacion y reconstruccion de maquinaria PESADA CAT & JD y el tiempo me falta, por eso mis conocimientos en programacion es casi nulo, codigo que busco y encuentro en la red lo voy adaptando a mis necesidades y así tengo algunas aplicaciones para mi uso, tales como Control de operarios, horarios: entrada y salida, dias feriados, faltas, tiempo de interrupcion, horas extras, y pago final

Doy por finalisado el tema
Gracias
 
Upvote 0
Que bueno saber que funcionó como necesitabas.;)

A mi más bien me gustaría que mi ocupación fuera sobre estas cosas, he ido aprendiendo algunas cosas
porque me gusta y ahora trato de responder cuando puedo para ayudar como muchos otras me han
ayudado cuando mis conocimientos eran menores aún.
:biggrin:

Saludos cordiales.
 
Upvote 0

Forum statistics

Threads
1,224,576
Messages
6,179,639
Members
452,935
Latest member
mm1t1

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top