Buscar-Eliminar Hojas

20/08/2008 - 00:58 por Manny_90 | Informe spam
Que tal.

Pudieran ayudarme a generar una macro que pueda buscar y eliminar hojas.
Tengo Hoja1, hoja2, hoja3. De esas tres hojas se generan otras ("UNA",
"DOS", "TRES") con un macro pero lo que me gustaria hacer es que si hay un
error busque las hojas nuevas que se crearon (si es que existieron) y que las
elimine (no es necesario que la seleccione).

Me gustaria hacer algo asi

Si existe (hoja) "UNA" eliminarla
Si existe "DOS" eliminarla
Si existe "TRES" Eliminarla.

Mil GRACIAS

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
20/08/2008 - 03:54 | Informe spam
hola, !

... macro que pueda buscar y eliminar hojas.
Tengo Hoja1, hoja2, hoja3. De esas tres hojas se generan otras ("UNA", "DOS", "TRES")
con un macro pero lo que me gustaria hacer es que si hay un error busque las hojas nuevas que se crearon
(si es que existieron) y que las elimine (no es necesario que la seleccione).
Me gustaria hacer algo asi
Si existe (hoja) "UNA" eliminarla
Si existe "DOS" eliminarla
Si existe "TRES" Eliminarla.



si lo que quieres es que elimine "determinadas" hojas (sin preguntar)... prueba con algo +/- como lo siguiente:

on error resume next
with application
.displayalerts = false
worksheets("una").delete
worksheets("dos").delete
worksheets("tres").delete
.displayalerts = true
end with

saludos,
hector.
Respuesta Responder a este mensaje
#2 Manny_90
20/08/2008 - 16:22 | Informe spam
Que tal. muchas gracias, pero , aparte de que no me gustaria que pida
minsajes cuando las borre primero es necesario saber si es que existe, es
decir, la macro que tengo yo genera algunas paginas (entre otras cosas) y
quiero , que cuando exista algun error, te borre las paginas que se han
creado hasta el momento del error, el error puede existir desde la segunda
linea, o bien hasta el final del macro,
cuando haya un error, entonces se va a una parte para que busque la hoja
"UNA" (si es que existe) y la borre, busque la hoja "DOS" y la borre (si es
que existe), busque la hoja "Tres" y la borre (si es que existe) y termine el
macro.

Es probable que exista un error y no tenga que borrar ninguna hoja (porque
aun no ha existido).

Muchas gracias









"Héctor Miguel" wrote:

hola, !

> ... macro que pueda buscar y eliminar hojas.
> Tengo Hoja1, hoja2, hoja3. De esas tres hojas se generan otras ("UNA", "DOS", "TRES")
> con un macro pero lo que me gustaria hacer es que si hay un error busque las hojas nuevas que se crearon
> (si es que existieron) y que las elimine (no es necesario que la seleccione).
> Me gustaria hacer algo asi
> Si existe (hoja) "UNA" eliminarla
> Si existe "DOS" eliminarla
> Si existe "TRES" Eliminarla.

si lo que quieres es que elimine "determinadas" hojas (sin preguntar)... prueba con algo +/- como lo siguiente:

on error resume next
with application
.displayalerts = false
worksheets("una").delete
worksheets("dos").delete
worksheets("tres").delete
.displayalerts = true
end with

saludos,
hector.



Respuesta Responder a este mensaje
#3 Héctor Miguel
20/08/2008 - 18:31 | Informe spam
hola, !

... aparte de que no me gustaria que pida minsajes cuando las borre primero es necesario saber si es que existe
... la macro que tengo yo genera algunas paginas (entre otras cosas) y quiero que cuando exista algun error
... borre las paginas que se han creado hasta el momento del error
el error puede existir desde la segunda linea o bien hasta el final del macro
cuando haya un error, entonces se va a una parte para que busque la hoja "UNA" (si es que existe) y la borre
busque la hoja "DOS" y la borre (si es que existe), busque la hoja "Tres" y la borre (si es que existe) y termine el macro.
Es probable que exista un error y no tenga que borrar ninguna hoja (porque aun no ha existido).



lo que te puedo comentar es que la instruccion "on error resume next" sirve (entre otras cosas) para que...
- si "la hoja" no existe, (simplemente) no hace nada
- si "la hoja" SI existe, (no pregunta y...) la borra


PERO... lo que no puedo adivinar (entre otras cosas) es:
- que error/es debiera/n borrar (si existe) alguna de las hojas creadas... "hasta el momento del error"
- ni (obviamente) cual es ese "momento del error", ni cual pudiera ser "la causa esperada" que provoque "el error" -???-

o... adaptas la forma de determinar como/cuando/por que/con cual error/... se borra "X" hoja ya creada (si existe)
o... comentas algun detalle que permita "ver"... (lo que de momento, solo tu conoces) :))

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ OP __
... macro que pueda buscar y eliminar hojas.
Tengo Hoja1, hoja2, hoja3. De esas tres hojas se generan otras ("UNA", "DOS", "TRES")
con un macro pero lo que me gustaria hacer es que si hay un error busque las hojas nuevas que se crearon
(si es que existieron) y que las elimine (no es necesario que la seleccione).
Me gustaria hacer algo asi
Si existe (hoja) "UNA" eliminarla
Si existe "DOS" eliminarla
Si existe "TRES" Eliminarla.



si lo que quieres es que elimine "determinadas" hojas (sin preguntar)... prueba con algo +/- como lo siguiente:

on error resume next
with application
.displayalerts = false
worksheets("una").delete
worksheets("dos").delete
worksheets("tres").delete
.displayalerts = true
end with
Respuesta Responder a este mensaje
#4 Manny_90
20/08/2008 - 19:15 | Informe spam
OOOOOOOOO
MIL DISCULPAS, lo que pasa es que cuando llega a ala etiqueta de errores:

Sub mimacro()

on error goto errorres

macro
macro
'todo el macro que genera hojas


errores:
RESPUESTA = MsgBox("HAY UN ERROR" & vbCrLf & "- REVIZA LOS VALORES" &
vbCrLf & _
"- Caracteres ilegales" & vbCrLf & "- Nomenclatura de los numeros de
parte", vbExclamation, "ERROR")
On Error Resume Next
With Application
.DisplayAlerts = False
WorkSheets("UNO").Delete
WorkSheets("DOS").Delete
WorkSheets("TRES").Delete
.DisplayAlerts = True
End With



El macro esta bien (no lo agrego porque esta demasiado largo), hace el
trabajo, la hoja la modifique para que exista algun error "X" y solamente
tenga creada la hoja "UNO". Pero cuando llega a la etiqueta "ERRORES:"

obviamente borra la hoja "UNO" pero el macro se detiene en la linea:
WorkSheets("DOS").Delete.

y genera el error '9'
Subscript out of range


pense que era porque no encontro la hoja "DOS", por eso agregue todo otra
vez...
gracias



"Héctor Miguel" wrote:

hola, !

> ... aparte de que no me gustaria que pida minsajes cuando las borre primero es necesario saber si es que existe
> ... la macro que tengo yo genera algunas paginas (entre otras cosas) y quiero que cuando exista algun error
> ... borre las paginas que se han creado hasta el momento del error
> el error puede existir desde la segunda linea o bien hasta el final del macro
> cuando haya un error, entonces se va a una parte para que busque la hoja "UNA" (si es que existe) y la borre
> busque la hoja "DOS" y la borre (si es que existe), busque la hoja "Tres" y la borre (si es que existe) y termine el macro.
> Es probable que exista un error y no tenga que borrar ninguna hoja (porque aun no ha existido).

lo que te puedo comentar es que la instruccion "on error resume next" sirve (entre otras cosas) para que...
- si "la hoja" no existe, (simplemente) no hace nada
- si "la hoja" SI existe, (no pregunta y...) la borra


PERO... lo que no puedo adivinar (entre otras cosas) es:
- que error/es debiera/n borrar (si existe) alguna de las hojas creadas... "hasta el momento del error"
- ni (obviamente) cual es ese "momento del error", ni cual pudiera ser "la causa esperada" que provoque "el error" -???-

o... adaptas la forma de determinar como/cuando/por que/con cual error/... se borra "X" hoja ya creada (si existe)
o... comentas algun detalle que permita "ver"... (lo que de momento, solo tu conoces) :))

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ OP __
>>> ... macro que pueda buscar y eliminar hojas.
>>> Tengo Hoja1, hoja2, hoja3. De esas tres hojas se generan otras ("UNA", "DOS", "TRES")
>>> con un macro pero lo que me gustaria hacer es que si hay un error busque las hojas nuevas que se crearon
>>> (si es que existieron) y que las elimine (no es necesario que la seleccione).
>>> Me gustaria hacer algo asi
>>> Si existe (hoja) "UNA" eliminarla
>>> Si existe "DOS" eliminarla
>>> Si existe "TRES" Eliminarla.
>>
>> si lo que quieres es que elimine "determinadas" hojas (sin preguntar)... prueba con algo +/- como lo siguiente:
>>
>> on error resume next
>> with application
>> .displayalerts = false
>> worksheets("una").delete
>> worksheets("dos").delete
>> worksheets("tres").delete
>> .displayalerts = true
>> end with



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida