Saltar al contenido

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.-

Enlace a comentario
Compartir con otras webs

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)

Enlace a comentario
Compartir con otras webs

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

Enlace a comentario
Compartir con otras webs

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.-

Enlace a comentario
Compartir con otras webs

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.