Extraer foto automaticamente

10/06/2004 - 00:14 por José Frasquet | Informe spam
Hola grupo, necesito otra macro? ... que cuando extraiga en una plantilla
los datos correspondientes a una referencia de una base de datos en excel,
me coloque la foto correspondiente a esa referencia y que está tambien
almacenada en dicha base de datos con un hipervinculo al fichero jpg
correspondiente.
no se si me he explicado.
MUCHAS GRACIAS
 

Leer las respuestas

#1 Héctor Miguel
10/06/2004 - 09:07 | Informe spam
hola, José !

... que cuando extraiga ... datos correspondientes a ... una base de datos en excel,
... coloque la foto [de] esa referencia y que esta ... almacenada ... con un hipervinculo al fichero jpg [...]



si 'conviertes' el hipervinculo a [simple] texto en la base de datos con la 'ubicacion' de los archivos jpg
[que 'incluya' directorio/s + nombre_archivo + la EXTension -que inclusive pudiera 'estar' en otra hoja-]
un procedimiento seria 'algo' +/- como lo siguiente:

¿comentas datos adicionales?
saludos,
hector.
-
=> suponiendo que haces un BuscarV para la 'referencia' en la celda 'B7'
y 'obtienes' la ruta a la foto en la celda 'contigua' [C7] [p.e.] =BuscarV(B7,HojaConFotos!base_de_datos,col_foto)
y quieres que la foto se 'ajuste dentro' del rango 'C8:E21' ...
=>copia el siguiente codigo en el modulo de eventos de 'la hoja':
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Target.Address = "$B$7" Then Exit Sub
Dim Foto As Object, Arriba As Double, Izquierda As Double, Ancho As Double, Alto As Double
Application.ScreenUpdating = False
On Error Resume Next
Me.Shapes("La_Foto").Delete
If Dir(Range("c7")) = "" Then Exit Sub
Set Foto = Me.Pictures.Insert(Range("c7"))
With Range("c8:e21")
Arriba = .Top
Izquierda = .Left
Ancho = .Offset(0, .Columns.Count).Left - .Left
Alto = .Offset(.Rows.Count, 0).Top - .Top
End With
With Foto
.Name = "La_Foto"
.Top = Arriba
.Left = Izquierda
.Width = Ancho
.Height = Alto
End With
Set Foto = Nothing
End Sub

Preguntas similares