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
> ... 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.
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...
> 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.
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...
> 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.
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...
> ... 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
"H�ctor Miguel" <NOhemio...@PLShotmail.com> escribi� en el mensaje
news:uGVgI9m0...@TK2MSFTNGP05.phx.gbl...