1. AyudaExcel utiliza cookies. Si continuas utilizando AyudaExcel, estás aceptando la utilización de nuestras cookies. Más información.
  2. ¡Bienvenid@ a AyudaExcel! El foro más visitado sobre Excel en habla hispana.

    Si esta es tu primera visita, asegúrate de revisar los temas de la sección Utilización y Funcionamiento para familiarizarte con las funciones del foro. Si deseas publicar mensajes, será necesario que te Registres para que puedas dejar respuestas y crear tus propios mensajes, recuerda que es gratuito.

Pendiente Manipulación de imágenes

Tema publicado en 'Macros y programación VBA' iniciado por LUISETE, 13 Mar 2012.

  1. LUISETE

    LUISETE Nuevo Usuario

    Registrado:
    4 Mar 2012
    Mensajes:
    9
    Me Gusta recibidos:
    0
    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.-
  2. Macro Antonio

    Macro Antonio Incondicional de Ayuda Excel

    Registrado:
    12 May 2010
    Mensajes:
    5.599
    Me Gusta recibidos:
    1.032
    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:

    CÓDIGO:
    Image1.Picture = LoadPicture("")
    Saludos

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

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

    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 unacaja de texto, a dicha caja de texto podrás referirte de la siguiente forma:

    ActiveSheet.Shapes(1) .Por posicionamiento dentro de la colección Shapes

    o

    ActiveSheet.Shapes("1 TextBox")
    .Por nombre del objeto (puedes cambiarlo en la caja de nombres)
    Última edición: 13 Mar 2012
  3. LUISETE

    LUISETE Nuevo Usuario

    Registrado:
    4 Mar 2012
    Mensajes:
    9
    Me Gusta recibidos:
    0
    Muchas gracias Macro Antonio. Cuelgo una versión .xls de mi código de inventario. No sé mucho de programación, por lo que me figuro que lo verás poco elaborado.
    Voy a mirar tu respuesta, a ver si aprendo algo, y comento.
    Gracias, luis.-

    Adjuntos:

  4. Macro Antonio

    Macro Antonio Incondicional de Ayuda Excel

    Registrado:
    12 May 2010
    Mensajes:
    5.599
    Me Gusta recibidos:
    1.032
    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.

    Adjuntos:

  5. LUISETE

    LUISETE Nuevo Usuario

    Registrado:
    4 Mar 2012
    Mensajes:
    9
    Me Gusta recibidos:
    0
    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.-
  6. LUISETE

    LUISETE Nuevo Usuario

    Registrado:
    4 Mar 2012
    Mensajes:
    9
    Me Gusta recibidos:
    0
    Hola de nuevo, gracias a la ayuda de Macro Antonio, ya se puede cerrar este tema,
    saludos a todos.-

Compartir esta página