Excel - MACRO PARA INSERTAR IMAGENES

 
Vista:

MACRO PARA INSERTAR IMAGENES

Publicado por Gabriela Rangel  (2 intervenciones) el 04/05/2010 23:19:57
Hola a todos.

Necesito de su ayuda... Trabajo en base a catalogos de articulos en libros de excel, las imagenes las tengo en una sola carpeta, son formato .jpg, necesito una macro que me relacione el codigo del articulo con la imagen y me inserte la imagen que corresponda al articulo en la fila que se encuentra, y se adapte al tamaño de la celda.

Ya encontre algunas macros, pero solo me sirven para insertar una imagen poniendole el nombre de la misma, siendo que mas bien lo que necesito es que me inserte todas las imagenes que correspondan con los codigos.

Jeje... no se si me explique, agradezco sus comentarios.

Saludos.

Gracias por su apoyo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JuanC

RE:MACRO PARA INSERTAR IMAGENES

Publicado por JuanC (1237 intervenciones) el 05/05/2010 23:39:54
pienso que cada imagen debería tener por nombre el código del articulo
y de esa manera crear el vínculo
algo más interesante es usar la técnica de la esteganografía, de esa manera
el código va dentro de la imagen sin modificarla y fácil para encontrar, eso sí,
el código se pierde si la imagen es modificada/editada...
también sería interesante ver lo que tenés...

Saludos, desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MACRO PARA INSERTAR IMAGENES

Publicado por Gabriela Rangel  (2 intervenciones) el 07/05/2010 00:29:08
Si Juan, asi es... la imagen tiene el mismo nombre que el codigo, pero como en el listado de excel son bastantes codigos, necesito que me inserte todas las imagenes segun el codigo correspondiente a la lista.

No se si me explique... Sorry por las molestias..

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JuanC

RE:MACRO PARA INSERTAR IMAGENES

Publicado por JuanC (1237 intervenciones) el 07/05/2010 00:48:48
No es molestia...
hay varias formas de hacerlo, dependerá de cómo tengas organizados los códigos y cómo quieras mostrar las imágenes...
este pequeño código muestra una imagen por vez,
la imagen mostrada es la que corresponde al valor de la celda
seleccionada
para probrarlo insertá una imagen en la hoja y nombrala "Foto"
en las celdas deben ir las rutas de las fotos a ser mostradas

Ej: si en la celda A1 dice C:\imgs\foto1.jpg
entonces mostrará la foto1, así con cualquier celda/foto

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If Dir(Target.Value) = "" Or Err <> 0 Then
ActiveSheet.Shapes("Foto").Delete
Exit Sub
End If
Dim f As Object
Application.ScreenUpdating = False
With ActiveSheet
.Shapes("Foto").Delete
Set f = .Pictures.Insert(Target.Value) '//Target.Value contiene C:\imgs\foto1.jpg
With f '//Dimensiones de la foto
.Name = "Foto"
.Left = Target.Left + Target.Width
.Top = Target.Top
.Width = 100
.Height = 100
End With
End With
Set f = Nothing
Application.ScreenUpdating = True
End Sub

si querés mostrar varias fotos simultáneamente podés crear un array
y trabajar con bucles For Each ... In en lugar del evento SelectionChange
por otro lado vinculás los códigos con las celdas que tienen el
nombre de la imagen, usando la función BuscarV, por ejemplo...
en fin, hay muchas posibilidades...

Saludos, desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MACRO PARA INSERTAR IMAGENES

Publicado por JesJones (1 intervención) el 06/10/2010 01:35:49
Hola buen dia, quisiera q me ayudaran con una macro, Quiero que en cada celda q selecciones aparesca una imagen

C:10 D:10(IMAGEN)
C:11 D:11(IMAGEN)
C:12 D:12(IMAGEN)
C:13 D:13(IMAGEN)

Private Sub SelectionChange(ByVal Target As Range)
'Si ha errores, que continúe
On Error Resume Next

'Si cambiamos el dato de la celda C4,
'mostramos la foto de ese vehículo
If Target.Cells = Range("C10") Then
'If Target.Cells = Range("C11") Then
'If Target.Cells = Range("C12") Then
'If Target.Cells = Range("C13") Then
'If Target.Cells = Range("C14") Then
'If Target.Cells = Range("C15") Then

'Ocultamos el procedimiento
Application.ScreenUpdating = False


'pasamos a una variable, el nombre de la foto,
'que será el mismo que el nombre del coche, pero
'separado con guiones, y sin acentos, para que
'todos los usuarios puedan verlo correctamente
foto = Range("C10").Value
'foto = Range("C11").Value
'foto = Range("C12").Value
'foto = Range("C13").Value
'foto = Range("C14").Value
'foto = Range("C15").Value

'en la foto, reemplazamos los espacios, por guiones
foto = Replace(foto, " ", "-")

'ahora le añadimos la extensión "jpg"
foto = foto & ".jpg"
'ahora buscamos la foto en el mismo directorio
'donde tenemos este fichero de excel
rutayarchivo = ActiveWorkbook.Path & "\" & foto
'borramos la foto del coche (si hubiera alguna)
Me.Shapes("ImagCav").Delete
'creamos el objeto fotografia, con la foto insertada
Set fotografia = Me.Pictures.Insert(rutayarchivo)

'haremos que la foto ocupe desde B6 hasta D21,
'para que no salgan fotos supergrandes, o
'superpequeñas, y salgan más "normalitas"
With Range("E10")
'With Range("E11")
'With Range("E12")
'With Range("E13")
'With Range("E14")
'With Range("E15")

Arriba = .Top
'Izquierda = .Left
Izquierda = .Left
'Ancho = .Offset(0, .Columns.Count).Left - .Left
Ancho = .Offset(0, .Columns.Count).Left - .Left
Alto = .Offset(.Rows.Count, 0).Top - .Top
End With
'le ponemos un nombre al objeto "fotografia"
'para poder borrarla cuando cambie la celda D6
'(ver que borramos la foto que hubiese, antes de insertar la nueva)
With fotografia
.Name = "imagCav"
.Top = Arriba
.Left = Izquierda
.Width = Ancho
.Height = Alto
End With
'eliminamos el objeto
Set fotografia = Nothing
'ponemos todo como estaba
Application.ScreenUpdating = True

End If

End Sub

Gracias por la ayuda q me puedan dar!
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MACRO PARA INSERTAR IMAGENES

Publicado por Juan Antonio Correa (6 intervenciones) el 02/12/2010 15:33:31
Perdona que utilice este correo de respuesta a tu cuestión como una pregunta a mis dudas.
He observado tu código y me sería muy útil para una aplicación de listas de alumnos, pero me gustaría que en lugar de que todas las fotos tuviesen que estar necesariamente en la misma carpeta del archivo del programa (como en tu programa (rutayarchivo = ActiveWorkbook.Path & "\" & foto), pudiesen estar en una subcarpeta.
Si la subcarpeta se llamase fotos1º ¿Me podrías indicar qué habría que modificar de la línea de código para esto?

¿¿¿ rutayarchivo = ActiveWorkbook.Path & "\" & foto ???

He probado con varias posibilidades y en todas me encuentro errores.

Muchísimas gracias por tu atención y por tu trabajo. Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MACRO PARA INSERTAR IMAGENES

Publicado por Antonio (1 intervención) el 15/01/2015 12:32:44
Hola,
¿Solucionaste la macro?, Podrias indicarme como lo hiciste finalmente.

Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MACRO PARA INSERTAR IMAGENES

Publicado por federico (1 intervención) el 12/08/2015 02:07:54
Hola chicos, tengo que hacer una lista de precios con 450 imagenes en excel y me da constantemente error, la verdad que no soy muy ducho para esto, algunos de ustedes se dedica a hacer este trabajo, lo pago obviamente, aguardo sus repuesta, saludos
Federico
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MACRO PARA INSERTAR IMAGENES

Publicado por Miguel Angel (1 intervención) el 15/02/2016 14:12:16
Estimado JuanC, me parece muy util tu comentario final que lo adjunto lineas abajo, yo quisiera hacer una macro para mostrar varias imagenes en simultaneo y vincularlo a una columnas de celdas que sean dimanicas. Tu podras mostrarme como deberia ser el codigo a insertar en VB excel, te lo agradeceria enormemente.
Saludos cordiales.
Miguel Vargas.


..........................................................................................................
No es molestia...
hay varias formas de hacerlo, dependerá de cómo tengas organizados los códigos y cómo quieras mostrar las imágenes...
este pequeño código muestra una imagen por vez,
la imagen mostrada es la que corresponde al valor de la celda
seleccionada
para probrarlo insertá una imagen en la hoja y nombrala "Foto"
en las celdas deben ir las rutas de las fotos a ser mostradas

Ej: si en la celda A1 dice C:\imgs\foto1.jpg
entonces mostrará la foto1, así con cualquier celda/foto

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If Dir(Target.Value) = "" Or Err <> 0 Then
ActiveSheet.Shapes("Foto").Delete
Exit Sub
End If
Dim f As Object
Application.ScreenUpdating = False
With ActiveSheet
.Shapes("Foto").Delete
Set f = .Pictures.Insert(Target.Value) '//Target.Value contiene C:\imgs\foto1.jpg
With f '//Dimensiones de la foto
.Name = "Foto"
.Left = Target.Left + Target.Width
.Top = Target.Top
.Width = 100
.Height = 100
End With
End With
Set f = Nothing
Application.ScreenUpdating = True
End Sub

si querés mostrar varias fotos simultáneamente podés crear un array
y trabajar con bucles For Each ... In en lugar del evento SelectionChange
por otro lado vinculás los códigos con las celdas que tienen el
nombre de la imagen, usando la función BuscarV, por ejemplo...
en fin, hay muchas posibilidades...

Saludos, desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jose Carlos

RE:MACRO PARA INSERTAR IMAGENES

Publicado por Jose Carlos (1 intervención) el 24/02/2017 21:05:15
Excelente aporte a mi me sirvio increible no lo use exactamente como el codigo que subiste, solo tome lo que necesitaba y lo adapte a lo que necesitaba, gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Dirk
Val: 455
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

RE:MACRO PARA INSERTAR IMAGENES

Publicado por Dirk (166 intervenciones) el 24/07/2019 16:52:44
Estimados, en la medida de lo posible... compartan el archivo, no necesariamente tiene que ser con toda la data sino con ejemplos... así los usuarios pueden descargarlo, revisar las macros, usar solo lo que necesiten y/o ajustar parte de la programación.

Por lo que he leído serviría para alumnos (para carnet, para empleados, etc) y catálogos de productos y/o artículos (de ferretería, autopartes, etc)

Por cierto.... cuidado con insertar las imágenes... el archivo de excel podría aumentar su tamaño considerablemente como para hacerlo inmanejable de tal forma que no pase por correo como el caso de los catálogos, en estos casos sería mejor usar hipervínculos a imágenes compartidas en la nube...

Salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MACRO PARA INSERTAR IMAGENES

Publicado por Miguel @ngel (1 intervención) el 13/03/2017 18:49:04
Hola,

Con este método las imagenes quedan Vinculadas al libro de Excel, no insertadas. Hay alguna posibilidad de guardar el libro generado con las imagenes incluidas.

Gracias anticipadas. Miguel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MACRO PARA INSERTAR IMAGENES

Publicado por estrada brandon (1 intervención) el 23/04/2017 07:27:20
hola muy buen día quisiera saber si me podrías mostrar una macro que inserte una imagen en una celda o en un cuadro de texto, pero utilizando un código algo sencillo que no sea ni tan complicado ni tan difícil, y soy apenas un aprendiz y quisiera un código para principiantes que no utilice privetsub me ayudaría mucho por que es un proyecto gracia
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MACRO PARA INSERTAR IMAGENES

Publicado por Daniel Neria (1 intervención) el 21/09/2016 16:27:01
Buenos días Juan. He leído lo que quieren hacer los integrantes del tema por decirlo de algún modo y pues bueno, estoy en las mismas, quiero generar credenciales en excel y poner la misma imagen para todas ellas y para disminuir el tiempo de inserción se me ocurrió poner las imágenes en un arreglo, investigando supe que se pueden convertir a binario si no mal recuerdo, lo que pretendo hacer si es que se puede, guardar la ruta de la imagen y después insertarla en las celdas que deben de ir pero todas al mismo tiempo, Es posible hacer eso?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MACRO PARA INSERTAR IMAGENES

Publicado por Guillermo (1 intervención) el 05/03/2017 17:23:37
Hola JuanC, podrías explicarme como es eso del array? Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2
Ha aumentado su posición en 12 puestos en Excel (en relación al último mes)
Gráfica de Excel

RE:MACRO PARA INSERTAR IMAGENES

Publicado por Wilson Roly (1 intervención) el 06/04/2020 01:12:01
Saludos... queria preguntarte la acerca de como puedo centrar la imagen a una celda, mi imagen esta con dimensiones aptas para la celda, no necesito cambiar sus dimensiones, solo centrarla en la celda:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Option Explicit
 
Sub InsertarImagenes()
 
    Dim RutaActual As String
    Dim RangoImagen As Range
    Dim shp As Object
 
    On Error Resume Next
 
    For Each shp In ActiveSheet.Shapes
 
        shp.Delete
    Next shp
 
    RutaActual = ThisWorkbook.Path
 
    ActiveSheet.Range("E11").Select
 
    Do While ActiveCell.Offset(0, -4).Value <> Empty
 
        Set RangoImagen = ActiveCell.Offset(0, -4)
        ActiveSheet.Pictures.Insert (RutaActual & "\IMAGENES\" & RangoImagen.Value & ".JPG")
        ActiveCell.Offset(1, 0).Select
'        With Selection
'        .HorizontalAlignment = xlCenter
'       .Left = target.Left + (.widht) / 2
'       .Top = .Top + (.Top) / 2
'
'
'        .ReadingOrder = xlContext
'        .MergeCells = False
'        End With
 
    Loop
 
    Range("A11").Select
 
    On Error GoTo 0
 
End Sub

de antemano agradezco su colaboracion
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MACRO PARA INSERTAR IMAGENES

Publicado por Tio Archi (2 intervenciones) el 23/01/2017 18:26:51
Aunque sé que lo que deseas es una macro, te recomiendo la utilización de hipervínculos, para ello lo que puedes hacer es abrir el google chrome y como tema a buscar colocas la dirección del archivo en el que se encuentran las imágenes que quieres visualizar, luego seleccionas todos los enlaces que aparecerán y los pegas en el excel, posteriormente haces las macros direccionándolas a los enlaces que correspondan.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2
Ha aumentado su posición en 11 puestos en Excel (en relación al último mes)
Gráfica de Excel

RE:MACRO PARA INSERTAR IMAGENES

Publicado por nemesiuss (1 intervención) el 24/07/2019 00:08:16
Hola. Mi problema está vinculado al tema. Tengo una toolbox con varias funciones asignadas para una macro general que corresponde a un formulario en el que hasta el momento los usuarios solo pueden escribir en campos de textos asignados. Ahora bien, necesito que puedan subir en algunos puntos del formulario, sus propias imagenes y que queden insertadas para que, cuando el revisor abra el archivo, pueda verlas. Leí todos los posteos de ese hilo y no encontré una solución que me permitiera insertar en mi toolbox un campo de imagen que los deje subir las fotografías.
Si alguien pudiese orientarme con el código se los agradecería.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar