Poner fotos en excel, codigo salta error

03/05/2005 - 03:06 por Daniel Padilla Cañamero | Informe spam
KL me ayudo con esta macro pero me sale un error :

Sub test()
Dim Imagen As Shape, Ruta As String
Dim Izquierda As Single, Arriba As Single, Escala As Single

'La ruta y el nombre del archivo con la imagen
Application.Dialogs(xlDialogInsertPicture).Show
'los puntos desde el extremo izquierdo de la hoja
Izquierda = Columns("A:C").Width
'los puntos desde el extremo superior de la hoja
Arriba = Rows("1:5").Height
Escala = 0.5 'o sea 50% del tamaño original.

Set Imagen = ActiveSheet.Shapes.AddPicture _
(Ruta, True, True, Izquierda, Arriba, 1, 1)
With Imagen
.ScaleHeight Escala, msoCTrue, msoScaleFromTopLeft
.ScaleWidth Escala, msoCTrue, msoScaleFromTopLeft
End With
End Sub

Este es el codigo cuando uno quiere inserta la imagen se abre la ventana
para buscar dicha imagen q uno desee pero al dar click en insertar imagen
sale el mensaje "Se ha producido el error '1004' en tiempo de ejecución:
No se encontró el archivo especificado.

A pesar de este mensaje si inserta la foto al dar click en depurar me
resalta en amarillo:

Set Imagen = ActiveSheet.Shapes.AddPicture _
(Ruta, True, True, Izquierda, Arriba, 1, 1)

Espero puedan ayudarme la idea es q la foto cualquiera q fuese su tamaño
entre en un rango de celdas de A1 a B7 la columna A y B tendra un ancho de
6.86 c/u.
Se necesita ese tamaño por ser fotos tamaño carnet.

Espero su gran colaboracion gracias por su tiempo
Saludos Cordiales
Daniel Padilla Cañamero
Lima-Perú
 

Leer las respuestas

#1 KL
03/05/2005 - 08:48 | Informe spam
Hola Daniel,

El codigo que citas no es exactamente el que te di - no estaba diseñado para
la instruccion: Application.Dialogs(xlDialogInsertPicture).Show.
Si necesariamente quieres usar un dialogo usa el codigo que sigue.

Saludos,
KL

Sub test()
Dim Imagen As Shape, Ruta As Variant
Dim Ancho As Single, Alto As Single, Escala As Single

'La ruta y el nombre del archivo con la imagen
Ruta = Application.GetOpenFilename _
("Todos Los Archivos,*.*", , "Abrir la imagen")
If Ruta = False Then
MsgBox "Se ha cancelado la operacion."
Exit Sub
End If
'los puntos de ancho
Ancho = Columns("A:B").Width
'los puntos de alto
Alto = Rows("1:7").Height

Set Imagen = ActiveSheet.Shapes.AddPicture _
(Ruta, True, True, 1, 1, Ancho, Alto)
End Sub

Preguntas similares