Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

borrar hojas, nombres quedan en libro ?

656 views
Skip to first unread message

Paul Bauschmid

unread,
Aug 23, 2004, 6:53:03 AM8/23/04
to
Hola.

tengo una hoja "muestra" para entregar datos y una macro para copiar algunos
de los datos en una hoja que se llama "resumen". cuando están copiados,
querría copiar la hoja "muestra" y después borrar los datos, para consequir
que la hoja "muestra" se quede como antes.

Sheets("muestra").Select 'hoja para entregar datos
Sheets("muestra").Copy After:=Sheets(2) (*FL1*)
....
Sheets("muestra (2)").Select
Sheets("muestra (2)").Name = fichero 'nuevo nombre


(*FL1*) esta fila es la que da errores, excel me pone la siguiente:
--------------------------------
una fórmula u hoja que desea pegar o copiar contiene el nombre 'a', que ya
existe en la hoja de cálculo de destino.
¿Desea usar esta versión del nombre?
* Para usar el mismo nombre que el definido en la hoja de destino, haga clic
en Sí.
* Para volver a dar nombre al rango referido en la fórmula u hoja de
cálculo, haga clic en No y escriba un nombre nuevo en el cuadro Conflicto de
nombre.
------------------------------------

cuando confirmo con "Sí", aparecen más errores con nombres diferentes.
no existe ningun hoja que se llama "a" o de los otros nombres, ni rango con
este nombre. he usado nombres como "a" antes para testear la macro. yo borré
las hojas, pero supongo que los nombres están guardado en un sitio diferente.

¿ alguien tiene una idea ?
muchas gracias.

Héctor Miguel

unread,
Aug 23, 2004, 7:22:21 PM8/23/04
to
hola, Paul !

> tengo una hoja "muestra" ... y una macro para copiar algunos ... datos en una hoja ... "resumen".
> ... copiar la hoja "muestra" ... borrar los datos, para ... que la hoja "muestra" se quede como antes.


> Sheets("muestra").Select 'hoja para entregar datos
> Sheets("muestra").Copy After:=Sheets(2) (*FL1*)

> .... => [supongo que existen MAS instrucciones EN ESTA macro] <= ;) [...]


> (*FL1*) esta fila es la que da errores, excel me pone la siguiente:

> una formula u hoja que desea pegar o copiar contiene el nombre 'a', que ya existe en la hoja ... de destino [...]
> ... cuando confirmo con "SI­", aparecen mas errores con nombres diferentes.


> no existe ningun hoja que se llama "a" o de los otros nombres, ni rango con este nombre.

> he usado nombres como "a" antes para testear la macro. yo borre las hojas
> pero supongo que los nombres estan guardado en un sitio diferente.

1° con relacion a los nombres [insertar / nombre / definir...] ->a menos que los borres<-... 'se van quedando por ahi'
[si has borrado sus 'referencias'... seguramente quedan 'evaluados' con error :-( pero... siguen ahi]
->son parte de<- el libro que los contiene ...o... de cada hoja [si existe nombres 'repetidos/duplicados']
2° cuando copias una hoja ->que contiene nombres<-... NO hay 'problemas'
[excel 'resuelve' este tipo de 'conflictos' generando un nuevo 'set' de nombres]
3° el 'aviso' de que los nombres que 'ya existen' -etc- [es probable que] se 'origina' en otra parte de la macro [?]
[p.e.] cuando copias ->solo un rango<- de datos ->entre hojas<- que 'contienen/comparten' algunos nombres] ???
lo anterior... al menos 'hasta donde se'... y... ya sea por macro o 'a pie'

¿comentas datos adicionales?
saludos,
hector.

Paul Bauschmid

unread,
Aug 24, 2004, 4:19:01 AM8/24/04
to
hola, muchas gracias para tu repuesta.

creo que eso es el problema (ad 1º). copié la hoja "muestra" en un libro
nuevo sin la macro, luego en el nuevo libro cuando haga una copia de la hoja,
los mismos 24 pop-ups aparecen sucesivamente. -> los variables/nombres son
grabados en la hoja. que raro, q no se puede ver/modificar/borrar estos?

ad 2º, es la verdad q no hay problemas, puedo copiar la hoja. me molesta
sólo, que yo tengo que pulsar 'intro' muchas vezes (24 vezes, tantas pops-ups
aparecen!) o hacer unos 24 clics. ¿se puede ocultar estas pop-ups?

gracias.
paul


"Héctor Miguel" escribió:

Héctor Miguel

unread,
Aug 24, 2004, 12:21:21 PM8/24/04
to
hola, Paul !

> creo que eso es el problema ... copie la hoja "muestra" en un libro nuevo sin la macro
> .... luego en el nuevo libro cuando haga una copia de la hoja ... 24 pop-ups aparecen sucesivamente.
> ... que raro, q no se puede ver/modificar/borrar estos?
> ... es la verdad q no hay problemas, puedo copiar la hoja.
> ... molesta solo, que yo tengo que pulsar 'intro' ... tantas pops-ups aparecen!)
> ... ¿se puede ocultar estas pop-ups?

aunque puedo estar equivocado [no seria la primera vez]...
no creo que los pop-ups aparezcan... ->cuando copias una hoja completa<- [excel 'puede' resolver 'eso']
sino... cuando [solamente] copias ->un rango entre hojas que 'comparten' el uso de los mismos nombres<-
para 'evitar' la aparicion de [tantos] mensajes de 'advertencia', podrias [p.e.]
->inhabilitar los avisos del sistema [Application.DisplayAlerts = False] ANTES DE
->continuar con la linea que causa el error [aqui te sugiero 'encontrar' CUAL es]
->rehabilitar los avisos del sistema [Application.DisplayAlerts = True]

p.e. si estas seguro que la linea que causa el error es cuando copias la hoja ->completa<- ...
[... otras lineas de tu codigo ...]
Application.DisplayAlerts = False
Sheets("muestra").Copy After:=Sheets(2) ' esta fila es la que da errores [etc. etc. etc.]
Application.DisplayAlerts = True
[... otras lineas de tu codigo ...]

saludos,
hector.

David Canales

unread,
Aug 25, 2004, 1:42:25 AM8/25/04
to
Aparentementente este es un comportamiento que excel no deberia de tener. Les
expongo:
1.-Los Nombres de Rangos cuando son creados, normalmente son creados a nivel de
Libro y estan disponibles en todas las Hojas del Libro.
2.-Se pueden tambien crear Nombres de Rango a nivel de Hoja. Cuando se crean
estos, uno les pone el Nombre del Libro antes del Nombre del Rango.

Parece que lo que sucede es lo siguiente:
3.-Si copiamos una Hoja que contiene un Nombre de Rango a nivel de Libro,
siguiendo manualmente los pasos que explica Paul y despues vamos a Insertar,
Nombre, Definir vemos que en la nueva Hoja los Nombres de Rango estan a nivel de
Hoja, o sea, tienen a la derecha del Nombre del Rango, el Nombre de la hoja y en
Refiere a: la referencia incluye el Nombre de la Hoja.
4.-Cuando se hace el primer copiado no hay mensajes por que la Hoja original no
contiene Nombres a nivel de Hoja, el problema surge cuando la Hoja origen tiene
nombres a nivel de Hoja y se quiere copiar la misma, entonces comienza el excel
a dar los mensajes, uno por cada Nombre de Rango.
5.-Entonces la solucion podria ser buscar en la Hoja origen los Nombres de Rango
que pertenecen a la Hoja y borrarlos.
6.-A pesar del paso anterior, el excel crea los Nombres de Rango a nivel de Hoja
en la nueva hoja, aunque los hayas borrado en la origen.
7.-Dado lo anterior, entonces se hace necesario borrar los Nombres de Rango
tanto en la Hoja origen como en la copia.

Les propongo el siguiente codigo para lograr lo anterior como punto de partida
para una solucion. Estoy asumiendo que la nueva hoja se llama "Prueba" y que
Paul no ha definido Nombres de Rango a nivel de Hoja sino que solamente Nombres
de Rango a nivel de Libro.

Sub CopiarHoja()
'Eliminando los Nombres de Rango a nivel de Hoja
Dim Nombre As Name, N As String
Sheets("Muestra").Select
For Each Nombre In Worksheets("Muestra").Names
N = Nombre.Name
ActiveWorkbook.Names(N).Delete
Next
Sheets("Muestra").Copy After:=Sheets(1)
Sheets("Muestra (2)").Select
Sheets("Muestra (2)").Name = "Prueba"
For Each Nombre In Worksheets("Prueba").Names
N = Nombre.Name
ActiveWorkbook.Names(N).Delete
Next
End Sub

--
Saludos,

David Canales


"Héctor Miguel" <NOhemio...@PLShotmail.com> wrote in message
news:O2oOnZfi...@TK2MSFTNGP10.phx.gbl...

Héctor Miguel

unread,
Aug 25, 2004, 2:04:15 AM8/25/04
to
hola, de nuevo, chicos !

David: es una importante labor de investigacion la que has efectuado ;)
[yo] solo me limitare a lo que considero 'basico', tomando como punto de partida...
un comentario de Paul en su mensaje 'original' y que decia...
-> 'he usado nombres como "a" antes para testear la macro' <-
[creo que aqui, a Paul se le quedo en el tintero como 'compuso' los nombres de 'testeo'] [?]

> 4.- ... el problema surge cuando la Hoja origen tiene nombres a nivel de Hoja [...]

1° estoy totalmente de acuerdo en que los ->primeros<- nombres 'quedan' a nivel de libro...
2° cuando esa 'primera' hoja es copiada [ya sea por macros o manualmente]
-> todos <- los nombres 'originales' son 'duplicados' [ahora] a nivel 'de hoja'
[hasta aqui...] NO hay 'problemas' si se [re]copian hojas 'copiadas'
inclusive si los nombres hacen referencia a 'constantes' <=OJO
-> excepto <- los nombres que 'refieren' a ->otros nombres 'originales'<-
AQUI 'es donde' surgen los 'problemas' de los pop-ups :-(
[incluso] dichos nombres QUEDAN a nivel de libro [NO pueden ser duplicados a nivel de hoja]

> 5.- ... la solucion podria ser ... en la Hoja origen los Nombres ... que pertenecen a la Hoja y borrarlos [...]

considero que 'antes' de borrar cualquier nombre [quiero suponer que 'realmente' son 'importantes']
seria preferible dejar una hoja 'base' y limpia de nombres 'testeros' :))
si queda alguno que sea de 'relevancia' para el modelo [y las siguientes copias de la hoja 'base']...
usar la instruccion Application.DisplayAlerts [False antes de copiar y True una vez copiada] ;)

=> pude haber 'quedado corto' en las pruebas <= :-(
[aunque tampoco es facil 'acertar' cuando se tiene que adivinar lo que pudo haberse quedado en el tintero] :D

espero que Paul nos quiera comentar cual ha sido 'la realidad' :))
saludos,
hector.

Paul Bauschmid

unread,
Aug 27, 2004, 4:11:02 AM8/27/04
to
Hola !

Muchas gracias para vuestra ayuda !

@david: usando tu pequeño programa y con la inspección pude ver, cómo totos
los nombres que me han molestado tanto tiempo, han sido borrado.
Ningun pop-up aparece !

Gracias a vosotros dos !
Saludos,
Paul


"Héctor Miguel" escribió:

0 new messages