¿Dato Variable (imágenes) en excel?

Mi nombre es Gabriela Jiménez. Revisé varias consultas que te hicieron
en Internet, con requerimientos similares al mío, intente modificar las macros,
que tu amablemente contestaste, pero no logre hacer correr la macro
correctamente, además que sinceramente no tengo mucha experiencia en visual
basic… L
Requiero
Insertar fotos en una hoja de Excel.
Las fotos
Las tengo en un directorio con formato jpeg..
Lo que
Requiero que haga el programa es que verifique el dato variable que tengo en la
celda D1, de la hoja “ficha” de Excel; dicho dato corresponde al número con que
tengo guardada la foto en mi disco duro (E:\TEPEJI\FOTOS) y el nombre de la
foto por ejemplo es: 93840
Tengo 2
Fotos para cada número, por ejemplo: 93840 A y 93840 B. Las fotos ya están al tamaño que las
requiero.
La foto A
Requiero que sea colocada en la celda B10 y la foto B requiero que la coloque
en la celda E24, de la hoja “ficha”.
Una vez
Insertadas las fotos requiero se genere un archivo en PDF con el nombre de la
foto sin letra.
Cada vez
Que cambie el dato de la celda variable (D1) quisiera que la foto previa se borre y se inserte
la nueva
Para
Facilitar te resumo los datos:
Dirección
donde están las fotos: E:\TEPEJI\FOTOS
Celda que
Contiene dato variable de foto que requiero insertar: D1
Nombre de
Hoja de Excel que estoy utilizando: ficha
Nombre de
La foto :
4 ó 5 números, un espacio y una letra
Celda donde
Requiero se coloque foto A: B10
Celda donde
Requiero se coloque foto A: E24
Espero me
Puedas ayudar con la macro y haber sido clara….. Mil gracias de antemano por tu
valiosísima ayuda!.
Gaby.

1 respuesta

Respuesta
1

Te mando mi solución. Pega esta macro en el objeto hoja donde quieras que funcione, no se pega en un módulo, ya que es un evento y se autoejecutará siempre que teclees algo en la celda D1 de la citada hoja.

Cuando escribas el código en la celda D1 te insertará las fotos tal y como lo solicitas y posteriormente generará un pdf con el nombre de la foto.

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Address = "$D$1" Then
valor = Target.Value
topea = Range("b10").Top
izqa = Range("b10").Left
topeb = Range("e24").Top
izqb = Range("e24").Left
ActiveSheet.Pictures.Insert("E:\TEPEJI\FOTOS\" & valor & " a.jpg").Select
Selection.ShapeRange.Top = topea
Selection.ShapeRange.Left = izqa
Selection.ShapeRange.Height = 124
ActiveSheet.Pictures.Insert("E:\TEPEJI\FOTOS\" & valor & " b.jpg").Select
Selection.ShapeRange.Top = topeb
Selection.ShapeRange.Left = izqb
Selection.ShapeRange.Height = 124
End If
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=valor
End Sub

recuerda finalizar y puntuar

Hola, muchas gracias la verdad funciona como queremos, lo único que sucede es que necesitamos que nos borre la foto previa al ingresar un nuevo dato en la celda D1, lo que hace es que sobrepone las fotos una sobre otra y manejamos una base de mas de mil fotos
Gracias por tu ayuda, saludos

Pues tu macro ahora es esta:

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Address = "$D$1" Then
activesheet.pictures.delete
valor = Target.Value
topea = Range("b10").Top
izqa = Range("b10").Left
topeb = Range("e24").Top
izqb = Range("e24").Left
ActiveSheet.Pictures.Insert("E:\TEPEJI\FOTOS\" & valor & " a.jpg").Select
Selection.ShapeRange.Top = topea
Selection.ShapeRange.Left = izqa
Selection.ShapeRange.Height = 124
ActiveSheet.Pictures.Insert("E:\TEPEJI\FOTOS\" & valor & " b.jpg").Select
Selection.ShapeRange.Top = topeb
Selection.ShapeRange.Left = izqb
Selection.ShapeRange.Height = 124
End If
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=valor
End Sub

recuerda finalizar y puntuar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas