Excel - Insertar fotos de un directorio a una hoja de excel dependiendo del valor de una celda

 
Vista:
sin imagen de perfil

Insertar fotos de un directorio a una hoja de excel dependiendo del valor de una celda

Publicado por Mauricio Olea (23 intervenciones) el 05/11/2017 15:42:25
Hola, por favor necesito ayuda con una macro, necesito una macro que me inserte una foto dependiendo del valor de una celda, por ejemplo las fotos tienen como nombre un código numérico, así, si en la celda f6 le pongo 112254.jpg, me traiga esa imagen desde un directorio por ejemplo C:\mauricio\fotos que es el directorio donde estan las fotos a la celda j9 y que al cambiar este código de la foto, automáticamente me cambie la foto, pero borrando la anterior... puede ser por medio de un botón de macro, aunque me gustaría si lo puede hacer automáticamente al cambiar el código de la foto.
Espero haberme explicado bien.
Actualmente tengo esta macro:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub insertafoto()
'tomar el nombre de una celda y poner una foto
'Por.Dam
    'Nombre del directorio
    carpeta = "c:\mauricio\fotos\"
    'el nombre de la foto deberá estar en alguna celda
    imagen = Range("F6")
    'Celda donde se va a poner la foto
    Range("j9").Select
    ActiveSheet.Pictures.Insert(carpeta & imagen).Select
    With Selection
        .Placement = xlMoveAndSize
        .PrintObject = True
    End With
    Selection.ShapeRange.LockAspectRatio = msoFalse
    'modificar las siguientes medidas para ajustar el tamaño de la foto
    Selection.ShapeRange.Height = 65#
    Selection.ShapeRange.Width = 65#
    Selection.ShapeRange.Rotation = 0#
End Sub

Pero esta macro cada vez que cambio el código de la foto me la sobrepone a la anterior, no la borra, así se sobreponen muchas fotos, lo que necesito es que me borre la foto anterior y solo deje la actual...
Agradezco de antemano a su gentil ayuda.
Gracias.
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 Andres Leonardo
Val: 3.136
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Insertar fotos de un directorio a una hoja de excel dependiendo del valor de una celda

Publicado por Andres Leonardo (1583 intervenciones) el 06/11/2017 15:34:47
Graba la macro eliminado la foto de forma manual y lo pones antes de este codigo

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
sin imagen de perfil

Insertar fotos de un directorio a una hoja de excel dependiendo del valor de una celda

Publicado por Mauricio Olea (23 intervenciones) el 06/11/2017 21:02:04
Hola amigo Andres, disculpa pero no entendí, que es lo que debo hacer?
Gracias por tu respuesta, aguardo tus comentarios.
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

Insertar fotos de un directorio a una hoja de excel dependiendo del valor de una celda

Publicado por Mauricio Olea (23 intervenciones) el 06/11/2017 21:22:30
Andres, si te entendi bien, debo grabar una macro manualmente eliminando la foto que esta actualmente, que es la ultima que quedo en mi archivo, asi lo hice, resultando esta macro:

1
2
3
4
5
6
7
8
Sub Macro1()
'
' Macro1 Macro
'
'
    ActiveSheet.Shapes.Range(Array("Picture 5")).Select
    Selection.Delete
End Sub

copio las dos lineas a mi macro original, al principio como indicas, pero me da error:

1
ActiveSheet.Shapes.Range(Array("Picture 5")).Select


al revisar la imagen, resulta que a cada consulta que hago me da una imagen con nombre diferente, ejemplo: imagen, la segunda imagen 2... y así sucesivamente.....
Como podría corregir esto?
Gracias por tu paciencia, aguardo tus comentarios.
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 Andres Leonardo
Val: 3.136
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Insertar fotos de un directorio a una hoja de excel dependiendo del valor de una celda

Publicado por Andres Leonardo (1583 intervenciones) el 06/11/2017 23:25:09
Mauricio mil disculpas .... por no atender durante el dia lo reviso y luego por que entiendo que podrias poner el nombre en una variable cuando la colocas y ese valor luego lo borras .. que te parece... creo que asi podria ser.
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

Insertar fotos de un directorio a una hoja de excel dependiendo del valor de una celda

Publicado por Mauricio Olea (23 intervenciones) el 07/11/2017 05:50:49
Andres, mas una vez gracias por tu gentil atención, no entendí lo de la variable, no estoy muy familiarizado aun con macros y programación... podrías explicarme un poquito mas como se hace?
Disculpa tantas preguntas amigo.
Mil gracias nuevamente.
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 Andres Leonardo
Val: 3.136
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Insertar fotos de un directorio a una hoja de excel dependiendo del valor de una celda

Publicado por Andres Leonardo (1583 intervenciones) el 07/11/2017 14:54:46
No te preocupes .. como te decia sin tu codigo se me complica muchísimo ... pero mas o menos la idea es esto .
cuando entras colocas en una variable tipo string el nombre


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
Dim NombreFigura as String
 
 
Sub insertafoto()
'tomar el nombre de una celda y poner una foto
'Por.Dam
    'Nombre del directorio
    carpeta = "c:\mauricio\fotos\"
    'el nombre de la foto deberá estar en alguna celda
    imagen = Range("F6")
'en algun lado de tu codigo se genera el nombre de la figura y ese se lo enviaras como parametro a la macro 
 NombreFoto = imagen
 
    'Celda donde se va a poner la foto
    Range("j9").Select
    ActiveSheet.Pictures.Insert(carpeta & imagen).Select
    With Selection
        .Placement = xlMoveAndSize
        .PrintObject = True
    End With
    Selection.ShapeRange.LockAspectRatio = msoFalse
    'modificar las siguientes medidas para ajustar el tamaño de la foto
    Selection.ShapeRange.Height = 65#
    Selection.ShapeRange.Width = 65#
    Selection.ShapeRange.Rotation = 0#
End Sub
 
 
 
 
 
Sub LlamaraBorrarFigura
'En algun lado con un boton o lo que sea vas a llamar a borrar la imagen , pero lo importante es que la imagen sea la que exista.
  MacroEliminaFigura(NombreFigura)
End SUb
 
Sub MacroEliminaFigura(Nombre as String )
'' Macro para Eliminar 
' ActiveSheet.Shapes.Range(Array(NombreFigura)).Select
    Selection.Delete
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Insertar fotos de un directorio a una hoja de excel dependiendo del valor de una celda

Publicado por Mauricio (23 intervenciones) el 07/11/2017 17:03:06
Buen día Andres, gusto en saludarte, te comento que hice lo que me dijiste, pero me da error, me imagino que es por el nombre de la foto, a cada consulta de estudiante el nombre cambia, tengo 400 alumnos registrados... y cada uno tiene su propio código, o sea, son 400 nombres de imágenes diferentes....
la macro que uso para llamar la foto es la siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub CONSNOTPERS_Rectánguloredondeado2_Haga_clic_en()
'
 
    'Nombre del directorio
    carpeta = "g:\pele\fotos\"
    'el nombre de la foto deberá estar en alguna celda
    imagen = Range("g5")
    'Celda donde se va a poner la foto
    Range("m6").Select
    ActiveSheet.Pictures.Insert(carpeta & imagen).Select
    With Selection
        .Placement = xlMoveAndSize
        .PrintObject = True
    End With
    Selection.ShapeRange.LockAspectRatio = msoFalse
    'modificar las siguientes medidas para ajustar el tamaño de la foto
    Selection.ShapeRange.Height = 150#
    Selection.ShapeRange.Width = 150#
    Selection.ShapeRange.Rotation = 0#
End Sub

Te adjunto mi archivo para que lo veas.
las fotos están en una carpeta del disco duro.
Mil gracias por tu tiempo y tu paciencia amigo.
Aguardo tus comentarios, 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 Andres Leonardo
Val: 3.136
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Insertar fotos de un directorio a una hoja de excel dependiendo del valor de una celda

Publicado por Andres Leonardo (1583 intervenciones) el 07/11/2017 17:27:00
lo estoy viendo del movil llego a una pc y te aviso

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
Imágen de perfil de Andres Leonardo
Val: 3.136
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Insertar fotos de un directorio a una hoja de excel dependiendo del valor de una celda

Publicado por Andres Leonardo (1583 intervenciones) el 07/11/2017 20:02:26
Listo Creo que con esto funciona.

Espero te sirva cualquier cosa me avisas... como te decia faltaba el nombre anterior .. lo hice ahi muismo con tu codigo.

prueba y me avisas...


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
Sub CONSNOTPERS_Rectánguloredondeado2_Haga_clic_en()
    On Error Resume Next                ' Si ocurre un error sale del macro
    'Nombre del directorio
    'Carpeta = ActiveWorkbook.Path & "\img\" & foto ' Este para la ruta de Andres
    Carpeta = "g:\pele\fotos\"
    'el nombre de la foto deberá estar en alguna celda
    imagen = Range("G5").Value        ' Trae el nombre del archivo que está en G5
        Application.ScreenUpdating = False  'No actualiza la pantalla
 
        ActiveSheet.Shapes("fotoanterior").Delete        ' Borra la foto anterior
        Range("M6").Select  ' Celda donde se colocará la fotografía
        ActiveSheet.Pictures.Insert(Carpeta & imagen).Select ' Inserta la imagen
 
            With Selection
                .Name = "fotoanterior"  ' Le da un nombre para borrarlo si se vuelve a cambiar
                .Placement = xlMoveAndSize
                .PrintObject = True
                .ShapeRange.LockAspectRatio = msoFalse
            'modificar las siguientes medidas para ajustar el tamaño de la foto
                .ShapeRange.Height = 150#
                .ShapeRange.Width = 150#
                .ShapeRange.Rotation = 0#
            End With
'                With Selection
'
'                    .Placement = xlMoveAndSize  ' Lugar y posición
'                    .PrintObject = True         ' Impresión
'                    .ShapeRange.LockAspectRatio = msoFalse  ' Modificación proporcional de la imagen
'                    .ShapeRange.Height = 85#    ' Alto  en pixeles
'                    .ShapeRange.Width = 65#     ' Ancho en pixeles
'                    .ShapeRange.Rotation = 0#   ' Angulo de rotación
'                End With
'
        Application.ScreenUpdating = True   'Actualiza la pantalla
 
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Insertar fotos de un directorio a una hoja de excel dependiendo del valor de una celda

Publicado por Mauricio (23 intervenciones) el 07/11/2017 20:57:00
Mil Gracias Andres, funciona a la perfección, borra la anterior y me trae la nueva....
Gracias amigo....
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 Andres Leonardo
Val: 3.136
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Insertar fotos de un directorio a una hoja de excel dependiendo del valor de una celda

Publicado por Andres Leonardo (1583 intervenciones) el 07/11/2017 21:31:57
Que bueno que te haya funcionado ... lo importante de lo qeu te decia la imagen anterior para borrar .. por cierto ... no olvides el +1 no solo por mi reputacion si no por quienes buscan soluciones parecidas les ayuda a identificar que la solucion funciona

SAludos desde Ecuador
Andres.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar