Jump to content

Manipulación de imágenes


Recommended Posts

Hola,

Para realizar un inventario, he creado un userform con varios combobox y textbox y un image para seleccionar una imagen. Cuando completo todos los campos y pulso el botón correspondiente, los datos y la imagen se añaden a las celdas de la primera fila sin datos de la hoja. Así sucesivamente. Mediante dos botones del userform puedo subir y bajar por las filas de mi inventario y ver, a su vez, los registros en los controles.

El caso es que he creado un botón eliminar, para eliminar la fila que contiene un registro que quiero dar de baja, pero no me elimina la imagen!!

Llevo varios días buscando información sobre imágenes y su manipulación en visual basic, pero no encuentro literatura.

Agradecería que me iluminarais sobre como puedo eliminar también la imagen al eliminar la fila y, en general, sobre el manejo de imágenes en celdas de excel mediante VBA.

Gracias, Luis.-

Link to comment
Share on other sites

Bienvenido al foro:

Mejor sube el archivo, y aparte de que nos quedará mas claro lo que pretendes, cumplirás de paso con una de las normas del foro.

Te adelanto una solución, siempre y cuando la imagen esté dentro de un control Image, y que cuando hablas de "Eliminar" estés hablando de borrar la imagen y no el control Image, si el control se llama Image1:

Image1.Picture = LoadPicture("")[/CODE]

Saludos

PD: Para saber mas de imágenes insertadas directamente en la hoja mira lo que dice la [b]ayuda de VBA[/b] para la colección [b]Shapes.

[/b]

Cualquier objeto visual que insertemos en una hoja, controles de formulario incluidos, son objetos de tipo [b]Shape [/b]y están incluidos dentro de la colección [b]Shapes[/b].

Con la grabadora de macros activada, inserta cualquier imagen, forma u otra cosa que se te ocurra y luego miras el código que ha generado.

En una hoja vacía inserta una[b]caja de texto[/b], a dicha caja de texto podrás referirte de la siguiente forma:

[b]ActiveSheet.Shapes(1)[/b] .Por posicionamiento dentro de la colección Shapes

o

[b]

ActiveSheet.Shapes("1 TextBox") [/b].Por nombre del objeto (puedes cambiarlo en la caja de nombres)

Link to comment
Share on other sites

Hola:

La verdad es que no he tenido que tocar demasiado, básicamente darle un nombre normalizado a la imagen en el momento de crearla ("Foto" + nº de la celda donde se inserta), para así poder reconocerla en el momento de eliminar la fila.

Después de eliminar la fila, se renombran las imágenes desde esa fila hasta el final de datos.

Ya comentarás.

Saludos.

INVENTARIO2.xls

Link to comment
Share on other sites

Hola de nuevo, Macro Antonio, te agradezco muchísimo tu contribución a mi código. Es una solución ingeniosísima!!

He estado mirando cambiar el nombre de las imágenes y asignarle el mismo nombre que el código que genera el programa, pero me da algunos problemas y creo que lo voy a dejar tal y como está. Ahora me queda localizar la foto eliminada en la carpeta de fotos y eliminarla.

En cualquier caso, gracias por tu rápida y elegante respuesta, luis.-

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

Privacy Policy