Dim foto As Object, Arriba As Double, Izquierda As Double, Ancho As Double,
Alto As Double
Dim ruta As String
Application.ScreenUpdating = False
On Error Resume Next
Hoja1.Shapes("Foto").Delete
'ruta = "H:\ALL FASHION\DAMAS\DSC05037.jpg"
ruta = Application.Dialogs(xlDialogInsertPicture).Show//AQUI APERTURO LA
CAJA DE DIALGO Y ELIGO LA IMAGEN
Set foto = Hoja1.Pictures.Insert(ruta)
'With ActivateCell.Select //AQUI INTENTO QUE SE AJUSTE A LA CELDA ACTIVA
With Range("d1") //CON ESTE Y TODA LA RUTA H:\ALL
FASHION\DAMAS\DSC05037.jpg, FUNCIONA EL AJUSTE, PERO QUIERO ESCOGER LA
IMAGEN, POR Q SON VARIAS INCERCIONES DE IMAGENES
Arriba = .Top
Izquierda = .Left
Ancho = .Offset(0, .Columns.Count).Left - .Left
Alto = .Offset(.Rows.Count, 0).Top - .Top
End With
With foto
.Name = "Foto"
.Top = Arriba
.Left = Izquierda
.Width = Ancho
.Height = Alto
End With
Set foto = Nothing
Application.ScreenUpdating = True
End Sub
> Tengo... una macro... que... intenta... insertar una imagen y ajustarla... al tamano de la celda
> ... logro insertarla, pero no puedo hacer que se ajsute, agradecere su ayuda...
con las modificaciones que haces al codigo "original" pierdes el control de las imagenes insertadas
concretamente, el metodo: Application.Dialogs(xlDialogInsertPicture).Show
1) lo que hace es INSERTAR la imagen seleccionada EN LA CELDA ACTIVA (si el usuario lo acepta)
la imagen queda como "seleccion activa" (objeto seleccionado) y tu codigo no sabe cual es "su nombre"
por lo tanto, no puede administrar sus propiedades (alto, ancho, posiciones, etc.), ademas...
si se trata de varias imagenes, por cada una debes PRIMERO seleccionar "la celda" para insertar la imagen
2) si el usuario CANCELA el dialogo, este devuelve un "false" (pero esto ya no lo sabe tu codigo por su forma de uso)
por otro lado, no se que tan indispensable sea insertar VARIAS imagenes en una sola hoja (o libro)...
con la posibilidad de "poner en riesgo" la integridad de tu archivo (dependiendo del numero de objetos insertados ?)
comentas (si hubiera) los detalles que dejas "en el tintero" ?
saludos,
hector.
__ el codigo expuesto __
"Héctor Miguel" escribió:
> ... mi siguiente consulta al respecto es:
> COmo puedo hacer para que una vez escogida la imagen, atravez de la caja de dialogo
> se reconzca el nombre para poder modificar las propiedades...
tomando como punto de partida que la imagen incrustada queda como objeto "activo" (punto 1 del mensaje anterior)
puedes hacer referencia (directamente) a la seleccion activa (Selection), ya despues decidiras como "volver" a las celdas (p.e.)
with selection
.name = "foto"
.top = arriba
.left = izquierda
.width = ancho
.height = alto
end with
saludos,
hector.
__ OP __