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

dos imagenes con el mismo nombre

70 views
Skip to first unread message

Mauro Jes�s

unread,
May 8, 2009, 3:05:16 PM5/8/09
to
Hola!

He resuelto mi problema posteado hace unos dias, ahora tengo un nuevo
problema.
en mi formato tengo dos imagenes distintas, en distintas ubicaciones (una en
la parte superior y otra en la parte inferior pero en la misma hoja) pero
con el mismo nombre (imagen01)
ya tengo el codigo que me permite traer al frente la imagen que deseo, pero
si ambas tienen el mismo nombre, �como indico que la que se debe cambiar es
la imagen de la parte superior o la imagen de la parte inferior ?

s� que si cambio el nombre a alguna de las dos no voy a tener problemas para
traer al frente cualquiera de las dos, pero si excel permite tener imagenes
con el mismo nombre, entonces debe haber una forma para determinar a cual se
hace referencia via codigo. �Es posible mediante codigo?


--
Saludos!
Mauro Jes�s


H�ctor Miguel

unread,
May 8, 2009, 8:17:05 PM5/8/09
to
hola, Mauro !

> ... tengo dos imagenes... en distintas ubicaciones... en la misma hoja) pero con el mismo nombre (imagen01)


> ya tengo el codigo que me permite traer al frente la imagen que deseo, pero si ambas tienen el mismo nombre

> como indico que la que se debe cambiar es la imagen de la parte superior o la imagen de la parte inferior ? ...

si estan en distintas ubicaciones, significa que tienes ademas "otras" imagenes superpuestas a esas imagenes ?
(o sea, otra "imagen2" cobre cada "imagen1" ? o como es que fuera necesario intercambiar cual esta "al frente" ?)

si es asi, por vba puedes consultar la propiedad .TopLeftCell de "la imagen" (o de cada una) para saber la fila donde esta

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


Mauro Jes�s

unread,
May 9, 2009, 9:54:06 AM5/9/09
to
Efectivamente Hector, Tengo en total 6 imagenes, tres en la parte superior
(en la misma posicion, y tama�o) y tres en la parte inferior.
Voy a hacer pruebas con la propiedad que me mencionas. por otra parte, yo
utilizo generalmente la propidad
shapes("nombre de la imagen").ZOrder msoBringToFront

pero ayer estuve haciendo pruebas usando la propiedad
shapes(indice).ZOrder msoBringToFront

(indice es una variable entera) de esta manera puedo seleccionar la imagen
que necesito traer al frente ya sea la superior o la inferior, puesto que el
indice no se repite, pero tuve que estar usando
Shapes(indice).Select

hacer pausa y pasar a la hoja de excel para ver que imagen era la que
quedaba seleccionada para saber de cada imagen su indice y volver a ejecutar
la instruccion.Shapes(indice).Select
�Hay alguna otra manera de saber que indice le corresponde a una imagen y
en su caso, poder cambiar ese indice?

--
Saludos!
Mauro Jes�s


"H�ctor Miguel" <NOhemio...@PLShotmail.com> escribi� en el mensaje
news:Oj0N$tD0JH...@TK2MSFTNGP05.phx.gbl...

H�ctor Miguel

unread,
May 9, 2009, 3:40:36 PM5/9/09
to
hola, Mauro !

> Efectivamente... en total 6 imagenes, tres en la parte superior (en la misma posicion, y tama�o) y tres en la parte inferior.


> Voy a hacer pruebas con la propiedad que me mencionas.

(creo que) esta es la via menos "fragil" para lo que indicas necesitar para intercambiar cual imagen "se va al frente"

> por otra parte, yo utilizo generalmente la propidad shapes("nombre de la imagen").ZOrder msoBringToFront

=> este metodo implica asignar una macro a cada objeto "segun su nombre", o... incuirlo en la llamada a la macro PERO...
cuando un shape tiene otro objeto "encima" (obviamente) la macro del shape "de abajo" no podria ser ejecutada (no ?)

> pero ayer estuve haciendo pruebas usando la propiedad shapes(indice).ZOrder msoBringToFront
> (indice es una variable entera) de esta manera puedo seleccionar la imagen que necesito traer al frente ya sea la superior o la inferior

> puesto que el indice no se repite, pero tuve que estar usando Shapes(indice).Select
> hacer pausa y pasar a la hoja de excel para ver que imagen era la que quedaba seleccionada
> para saber de cada imagen su indice y volver a ejecutar la instruccion.Shapes(indice).Select
> Hay alguna otra manera de saber que indice le corresponde a una imagen y en su caso, poder cambiar ese indice?

=> (hasta donde se):
el "indice" es a una numeracion secuencal/consecutiva/ascendente/... (interna) que hace excel a cada objeto incrustado
no tiene nada que ver con el "tipo" de objeto incrustado, si no con el "orden" en el que van siendo incrustados en la hoja
es mas, si eliminas el objeto en el indice 3, e insertas un objeto nuevo, sera (auto)numerado como el objeto-indice 4
(o el siguiente numero que le corresponda, aun cuando el 3 ha quedado "disponible")
esta auto-numeracion no es "manipulable" (de forma facil/transparente/segura/...) ni por codigo ni por la interfaz grafica

saludos,
hector.


Mauro Jes�s

unread,
May 11, 2009, 9:15:58 AM5/11/09
to
Hola Hector.

Pues estuve haciendo pruebas y la forma en que puedo traer enfrente sin
temor a confusion porque dos imagenes (o mas) tengan el mismo nombre es por
medio de su indice. lo unico es como lo mencion� antes y que como tu bien lo
comentas, Excel asigna ese indice y parece que la unica forma de saber que
indice le asign� a excel es por codigo. si se pudiera saber el indice
asigando en tiempo de dise�o, seria un poco mas facil, pero en fin. por via
de mientras, lo del indice me sirve para solucionar mi problema.

--
Saludos!
Mauro Jes�s


"H�ctor Miguel" <NOhemio...@PLShotmail.com> escribi� en el mensaje

news:OqIeH4N0...@TK2MSFTNGP04.phx.gbl...

H�ctor Miguel

unread,
May 11, 2009, 12:45:40 PM5/11/09
to
hola, Mauro !

> Pues estuve haciendo pruebas y la forma en que puedo traer enfrente sin temor a confusion
> porque dos imagenes (o mas) tengan el mismo nombre es por medio de su indice.
> lo unico es como lo mencion� antes y que como tu bien lo comentas

> Excel asigna ese indice y parece que la unica forma de saber que indice le asigno a excel es por codigo.


> si se pudiera saber el indice asigando en tiempo de dise�o, seria un poco mas facil, pero en fin.
> por via de mientras, lo del indice me sirve para solucionar mi problema.

seria bueno si comentas "como" es que dos imagenes (distintas ?) toman el mismo nombre (?)
tambien me gustaria insistir en evitar nombres iguales para objetos distintos (podrias ahorrar "algo mas")
conocer el numero de indice de un objeto es facil, el detalle seria estar seguro de que es el objeto "esperado"

saludos,
hector.


Mauro Jes�s

unread,
May 11, 2009, 2:49:32 PM5/11/09
to
Explico.

Finalmente, renombr� dichas imagenes con nombres distintos no tanto porque
usando indices sea malo, sino mas bien para que yo sepa a que imagen hago
referencia en el codigo.
no es lo mismo
activeSheet.Shapes(1).ZOrder msoBringToFront
que
activeSheet.Shapes("imagen1").ZOrder msoBringToFront

aunque ambas instrucciones hacen lo mismo, es mas entendible (para mi) la
segunda instruccion. y desde luego, asumiendo que a "imagen1" le corresponde
el indice 1
Nota: el nombre es sin las comillas.

Ahora bien, en lo que me preguntas acerca de como dos imagenes (o mas)
pueden tener el mismo nombre estando en la misma hoja pasa lo siguiente:
Si yo inserto las imagenes y despues quiero cambiar el nombre, Excel no lo
permite, porque cuando quiero poner el nombre en la segunda imagen y este
nombre al ya existir te selecciona la imagen con ese nombre y bajo esta
manera no se puede duplicar el nombre. Lo curioso es que si desde un archivo
tienes una imagen con el nombre de "imagen1", abres otro archivo de excel
(que contenga una imagen con el nombre de "imagen1") , la copias, te pasas
al primer archivo y pegas la otra imagen puedes tener dos imagenes con el
mismo nombre.

yo prefiero usar Insertar / Imagen / Desde archivo que copiar y pegar
imagenes de un archivo a otro, pero el usuario que me proporcion� el archivo
ya habia hecho esto y yo unicamente tenia que programarlo.

Si lo prefieres, te puedo mandar un archivo ejemplificando lo que acabo de
describir.

Por ultimo, estoy usando Excel 2000 y no s� si esto siga ocurriendo con las
versiones posteriores (2003, 2007)

--
Saludos!
Mauro Jes�s


"H�ctor Miguel" <NOhemio...@PLShotmail.com> escribi� en el mensaje

news:eyQhtfl0...@TK2MSFTNGP05.phx.gbl...

H�ctor Miguel

unread,
May 11, 2009, 3:32:49 PM5/11/09
to
hola, Mauro !

> ... Si yo inserto las imagenes y despues quiero cambiar el nombre, Excel no lo permite


> porque cuando quiero poner el nombre en la segunda imagen y este nombre al ya existir
> te selecciona la imagen con ese nombre y bajo esta manera no se puede duplicar el nombre.
> Lo curioso es que si desde un archivo tienes una imagen con el nombre de "imagen1"

> abres otro archivo de excel (que contenga una imagen con el nombre de "imagen1"), la copias

> te pasas al primer archivo y pegas la otra imagen puedes tener dos imagenes con el mismo nombre...
> ... el usuario que me proporciono el archivo ya habia hecho esto y yo unicamente tenia que programarlo.


> Si lo prefieres, te puedo mandar un archivo ejemplificando lo que acabo de describir.
> Por ultimo, estoy usando Excel 2000 y no s� si esto siga ocurriendo con las versiones posteriores (2003, 2007)

ya lo decia yo, a menos que estes "heredando" un mismo nombre para objetos distintos... con el copy/paste (???)
no es necesario "ver" el archivo, asi es como funciona el procedimiento que sigui el usuario (sin embargo)...
en la ayuda de excel tambien se comenta que de dos nombres iguales, se hace referencia "al primero encontrado" :-((

saludos,
hector.


Mauro Jes�s

unread,
May 11, 2009, 6:33:31 PM5/11/09
to
Si, siempre se selecciona el primero que encuentra, de ahi el motivo de este
post. pero bueno, usando nombres distintos o un poco mas complicado pero
tambien funcional con los indices, tuve dos opciones para resolver el
problema. agradezco tu inter�s en este post Hector. te envio un cordial
saludo desde la bella airosa!

--
Mauro Jes�s


"H�ctor Miguel" <NOhemio...@PLShotmail.com> escribi� en el mensaje

news:uGVgI9m0...@TK2MSFTNGP05.phx.gbl...

0 new messages