Fotos de forma automática en excel

Para elsa: en el libro enviado previamente hay un recuadro en las celdas ( k41 ) y en la hoja datos se escribe información que sirve para el llenado de hoja ( rustico ) .

En la hoja "rustico" en la celda (m11) agrego el numero de folio que coincide con la información que hay en la hoja "datos" . Tengo una carpeta llamada fotos en donde pretendo poner a las fotos cualquier nombre o números consecutivos o podría ser que coincidieran con los números de folio y así al insertar en la celda( m11 ) el numero de folio se agregue la foto en la celda ( k41 ). De igual manera si no tengo la foto que no le afecte a la hoja o que me diga " no se encuentra el archivo esta seguro de seguir trabajando? Al decirle que si, me deje trabajar, y si tengo la foto en el archivo pues ya por lógica se insertara en la hoja .. Note que en el libro hay una ruta en la hoja datos, la pregunta es: agrego la foto tal y como esta la ruta, previamente te envíe una foto te gustaría que la enviara de nuevo?

1 respuesta

Respuesta
1

No hace falta que me envíes la foto. Te lo preparo para mañana.

Sdos!

Se me ocurre que debieras aprovechar el nro introducido en la celda M11 para asignar la foto.

Según tu muestra el nombre será "05001" & valor de la celda. Podés jugar un poco con esto: dejar como nombre solo el valor de la celda o combinarlo de algún otro modo.

La macro se ejecutará al cambiar el valor de M11, ya te envío el libro para que la veas.

Private Sub Worksheet_Change(ByVal Target As Range)
'x Elsamatilde
Dim ruta As String, foto As String
'al ingresar un dato en M11 busca la foto asociada
If Target.Address <> "$M$11" Then Exit Sub
'si se borra la celda no se ejecuta
If Target.Value = "" Then Exit Sub
'busca la foto de = nombre que se encuentra en la carpeta indicada como 'ruta'
ruta = "D:\carpetas Datos\Descargas\Octavioi_macros\fotos\"
foto = "05001" & Format(Target.Value, "000") & ".jpg"
'retiro foto anterior
For Each sh In ActiveSheet.Shapes
If InStr(1, sh.Name, Imagen) > 0 Then sh.Delete
Next sh
'inserta en la hoja activa la imagen cuyo nombre y ubicación  se definieron en la variable ruta
ActiveSheet.Pictures.Insert(ruta & foto).Select
'asigna dimensión de las celdas combinadas
Selection.Top = Range("K41").Top
Selection.Left = Range("K41").Left
Selection.Height = Range("K41:M50").Height
Selection.Width = Range("K41:M50").Width
'quitar selección a la imagen
Target.Offset(1, 0).Select
End Sub

Sdos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas