Pido de nuevo ayuda en macro autofilter

18/07/2004 - 17:52 por José Frasquet | Informe spam
Necesito ayuda por favor, aunque sea parcialmente. Gracias

En un libro tengo las siguientes hojas entre otras:

1) "Base de datos" (con 43 columnas) Se trata de pisos para vender.
2) "Impresión de listados" (con la función BuscarV) y tres cuadros de lista
para elegir campos de las 43 columnas de la "Base de datos" antes
mencionada.
3) "Plantilla" (extrae datos con BuscarV de la "Base de datos")<> (por
cada referencia un DIN A4, con foto)
Bien, ahora voy a plantear lo que necesito y agradezco a cualquier maestro
del foro que me pueda ayudar.
1) En esta hoja necesitaría tene en una columna nueva, p.e. "foto", una
forma de llamar a la foto correspondiente a cada referencia de piso, ó si es
posible, ¿la propia foto?.
2) En esta hoja me gustaria tener un boton al que asignaria la macro que
basada en el autofiltro de la hoja "Base de datos", y en razón de los
criterios de filtrado que he elegido en los cuadros de lista, me
proporcione, copiando la columna en cuyo rango están las referencias de los
pisos y pegando ese rango en esta hoja, el listado que se pretende,
teneiendo en cuenta que al pegar el rango actuaria la función BuscarV antes
de imprimir finalmente la hoja.
3) Por último, en la hoja "Plantilla", tengo el rango H17:L34 destinado a
pegar la foto que corresponda a la referencia del piso solicitado. Agradezco
al maestro Héctor Miguel la ayuda que me proporcionó en su día (10-06-04) y
de hecho la estoy aprovechando actualmente, pero como no le dí la suficiente
explicación de lo que quería hacer, no me funciona demasiado práctica
aquella solución. Estoy usando ahora esta macro:
Sub Macrofotos2()
'
' Macrofotos2 Macro
' Macro grabada el 19/06/2004 por José R.
'
Range("H17").Select
ActiveSheet.Pictures.Insert( _
"C:\Documents and Settings\Isabel\Escritorio\Pepe Frasquet\Fichas de
pisos\5002.JPG" _
).Select
'Me gustaría cambiar a una carpeta en Mis documentos que se llame "Fotos
de pisos" y se llamarían por la referencia, p.ej. 5002.JPG
Range("a3").Select
End Sub

Bueno es todo. (ya es bastante...) Agradezco infinitamente la ayuda.
Gracias. Saludos
Pepe Frasquet
 

Leer las respuestas

#1 Sergio A Campos H
19/07/2004 - 02:25 | Informe spam
CUALQUIER DUDA VUELVES A EXPONER

Insertar una imágen en la hoja de cálculo. Al




seleccionar la celda debe de ser exactamente el nombre del
archivo sin extensión (debe de ser .jpg la imágen),
presionamos Ctrl + M y se insertará en la hoja actual la
imágen simpre y cuando sea el nombre correcto.

Que tal.

Nota: La macro se va a ejecutar con la combinación Ctrl+M,
puedes ejecutarla antes de modificarla para que veas si
ese es un buen lugar para mostrar la imágen.

*************ESTO ES SOLO SI QUIERES QUE LA FOTO APAREZCA
EN OTRA PARTE DE LA HOJA Y CON OTRO TAMAÑO (OPCIONAL).
Solo dos indicaciones que debes de hacer cuando quieras
ejecutar la macro, esto es según tu preferencia, lo debes
de modificar en
Menú>>Herramientas>>Macro>>Macros>>ViewImage>>modificar.





En la línea siguiente vas a cambiarle el valor a la
columna, dependiendo en donde quieras que se alinee la
imágen.
Selection.ShapeRange.Left = .Columns("B").Left

En la línea siguientes vas a cambiarle el valor a la Fila
(Rows), dependiendo en donde quieras que se alinee la
imágen.
Selection.ShapeRange.Top = .Rows("2").Top

En la línea siguiente vas a cambiarle el valor al zoom
(0.4 o menos, ejemplo: 0.3), dependiendo que tan reducido
quieras la imágen.
Selection.ShapeRange.ScaleWidth 0.4, msoFalse,
msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight 0.4, msoFalse,
msoScaleFromTopLeft

EL CÓDIGO PARA LA MACRO >>>>>>>>>>>>>>>































Sub ViewImage()
'
' Macro1 Macro
' Macro grabada el 27/05/2003 por Sergio Alejandro Campos
Hdez
'
'Primeramente se definen las variables como "variantes"
Dim FromCell As Variant
Dim NoExistImage As Variant
Dim User As Variant
Dim DirectImage As Variant
User = Application.UserName
On Error GoTo NoExistImage
'En esta instrucción verifica si hay objetos de imágen y
'los borra para que aparezca el siguiente
ActiveSheet.DrawingObjects.Delete
With ThisWorkbook.Sheets("Hoja1")
FromCell = ActiveCell
'Con las variables antes dadas de alta, se abrirá la
imágen con en nombre que
'tiene la celda activa
DirectImage = "C:\Documents and
Settings\Isabel\Escritorio\Pepe Frasquet\Fichas de pisos\"
.Pictures.Insert (DirectImage) & FromCell & (".jpg")
'Selecciona la imágen y la ubica en la posición que a
continuación se muestra
.DrawingObjects.Select
Selection.ShapeRange.Left = .Columns("B").Left
Selection.ShapeRange.Top = .Rows("2").Top
Selection.ShapeRange.ScaleWidth 0.4, msoFalse,
msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight 0.4, msoFalse,
msoScaleFromTopLeft
End With
Exit Sub
'Si la celda no contiene un nombre correcto aparecerá el
error
NoExistImage:
MsgBox "Está intentando mostrar una imágen que no existe
en la ruta especificada:" _
& vbCrLf & DirectImage & vbCrLf & vbCrLf & "Error " & CStr
(Err.Number) & " " & _
CStr(Err.Description), vbCritical, User
End Sub

Preguntas similares