Cómo eliminar hojas en excel?

cgcamal

Active Member
Joined
May 2, 2007
Messages
472
Hola,

¿Quisiera saber cómo puedo decir en una macro que quiero borrar todas las páginas existentes menos las que yo desee y que lo haga automático sin necesidad de dar click en "Aceptar" cuando aparezca el mensaje "Se van a perder los datos de la hoja. desea borrar"?


Muchas gracias,
 

Excel Facts

Repeat Last Command
Pressing F4 adds dollar signs when editing a formula. When not editing, F4 repeats last command.
Proba esto:
Code:
Sub SheetsDeletear()

Application.DisplayAlerts = False
    Sheets(Array("Hoja2", "Hoja3")).Select
    ActiveWindow.SelectedSheets.Delete

Application.DisplayAlerts = True

End Sub
 
Upvote 0
¿Gali, por qué las selecciona? No es necesario.
Code:
Sub foo()
    Application.DisplayAlerts = False
    ThisWorkbook.Sheets(Array("Sheet2", "Sheet3")).Delete
    '// poner la propiedad a TRUE otra vez no es necesario
    '// si su código termina pronto porque al terminar la
    '// rutina se vuelve a CIERTO automaticamente.
    '// Pero si falta más actividades, mejor ponerla como
    '// CIERTO otra vez.
    Application.DisplayAlerts = True
End Sub
 
Upvote 0
Greg: francamente no me habia percatado del innecesario paso por select, en gran parte por haber usado la grabadora para facilitarme la tarea de codificar.

Lo que me ha resultado interesante es la aclaración sobre la VUELTA A TRUE de Display Alerts, con ScreenUpdating pasa lo mismo?
Con Enableevents?

Cual sería la medida O CRITERIO SI ES QUE PUEDE DEFINIRSE de ese "PRONTO"??, al que te referís, cuando decis si SU CODIGO TERMINA PRONTO"
 
Upvote 0
Muchas gracias Galileo y Greg, a ambos. Resolví esa parte de mi macro.
Pondré luego más consultas.

Gracias.
 
Upvote 0
¿...con ScreenUpdating pasa lo mismo? ¿Con Enableevents?
...
¿Cual sería la medida O CRITERIO SI ES QUE PUEDE DEFINIRSE de ese "PRONTO"?, al que te referís, cuando decis si SU CODIGO TERMINA PRONTO"
~galileogali

Con SU sí, con EE no. Corre Main, y después corre Marino o Consciente para ver -->
Code:
Sub main()
    acuático
    marino
    With Application
        MsgBox "DA..." & vbTab & .DisplayAlerts & vbCr _
             & "SU..." & vbTab & .ScreenUpdating & vbCr _
             & "EE..." & vbTab & .EnableEvents, vbInformation, "main"
    End With
    consciente
End Sub

Sub acuático()
    With Application
        .DisplayAlerts = False
        .ScreenUpdating = False
        .EnableEvents = False
        MsgBox "DA..." & vbTab & .DisplayAlerts & vbCr _
             & "SU..." & vbTab & .ScreenUpdating & vbCr _
             & "EE..." & vbTab & .EnableEvents, vbInformation, "acuático"
    End With
End Sub

Sub marino()
    With Application
        MsgBox "DA..." & vbTab & .DisplayAlerts & vbCr _
             & "SU..." & vbTab & .ScreenUpdating & vbCr _
             & "EE..." & vbTab & .EnableEvents, vbInformation, "marino"
    End With
End Sub

Sub consciente()
    With Application
        MsgBox "DA..." & vbTab & .DisplayAlerts & vbCr _
             & "SU..." & vbTab & .ScreenUpdating & vbCr _
             & "EE..." & vbTab & .EnableEvents, vbInformation, "consciente"
    End With
End Sub

Y con este ejemplo se ve que quiere decir "pronto". O sea que no faltan más rutinas en una cadena. Que la rutina no sea una que podría ser llamado como parte de una cadena. Por lo general cuando uno apaga DA y ScrnUpdt, uno las deja apagados para toda la rutina y reestablece los valores antes del END SUB. Por lo general apago y enciendo estas propiedades dentro de la misma rutina, o sea, si la(s) apago en acuático allí mismo la(s) encendería, si la(s) apago en Main entonces la(s) enciendo al cerrar Main aunque no es necesario.
 
Upvote 0
Gracias Greg:
Clara tu explicacion y muy ingeniosos tus ejemplos.

Muy util: principalmente para evitar innecesarias sentencias antes de los Exit sub que puedan estar apareciendo en el codigo.
 
Upvote 0

Forum statistics

Threads
1,223,963
Messages
6,175,656
Members
452,664
Latest member
alpserbetli

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