Si deseáis insertar una imagen en Excel desde Visual Basic mediante una macro tenéis que ejecutar un código similar a este:
Sub inserta_imagen(hoja)
Sheets(hoja).Select
ActiveSheet.Pictures.Insert("C:\grafico.png").Select
With Selection.ShapeRange
.Top = Range("B5").Top
.Left = Range("B5").Left
End With
End Sub
En una hoja de vuestro libro de Excel insertáis el archivo especificado. Luego lo ubicáis donde sea necesario. En el ejemplo que os he puesto en la celda B5. Truco sencillo, saludos.
MIRA WEY TU COMENTARIO ME VALE MADRES POR QUE NO ME SIRVIO DE NADA CTM.
Gracias por su aporte me sirvio bastante, nada mas algo que quisiera que me ayudara seria una vez agregado las imagenes como le hago para borrar las mismas imagenes.
saludos
Aprende a realizar tus propios Códigos… o se equivoco de pagina ??? es solo para personas con un intelecto mínimo de lógica.. y para eso hay que estudiar …
Saludos
Worksheets(«nombrehoja»).Pictures.Insert(«c:\IMAGEN.JPG»).Select
With Selection.ShapeRange
.Top = Range(«B59»).Top
.Left = Range(«B59»).Left
End With
Sub inserta_imagen()
‘nombrehoja entre comillas» » igual la ruta entre comillas » »
Worksheets(«nombrehoja»).Pictures.Insert(«c:\IMAGEN.JPG»).Select
With Selection.ShapeRange
.Top = Range(«B59»).Top
.Left = Range(«B59»).Left
End With
La imagen NO LA INSERTA solo pega un vinculo a la imagen, si la muevo de lugar y guardo el libro al abrirlo no la carga
Chicos, perdon una pregunta.
Una vez ejecutada la macro, quiero poder enviarlo por mail.
Hay alguna forma de desvincular la macro a las imagenes traidas asi no se rompe el link cuando lo envio?
Gracias
Interesante cuestión, me da lugar a un truco Excel. A ver si saco tiempo para hacerlo
Sub PutPicture(ByVal cFullPath As String, ByVal r As Range, ByVal nGAP As Integer)
‘ Centra una imagen colocada en el rango de celdas especificado
‘ respetando las dimensiones de la imagen
‘ ejemplo: CALL PutPicture(«D:\IMG\eg1.jpg»,range(«A1:F5»),2)
Dim a, b, c, d, ID As Integer
With ActiveSheet
.Pictures.Insert (cFullPath)
ID = .Shapes.Count
.Pictures(ID).Name = «IMG_» & Format(ID, «0000»)
.Pictures(ID).ShapeRange.LockAspectRatio = msoTrue
a = .Pictures(ID).Height
b = .Pictures(ID).Width
c = r.Height
d = r.Width
If (a * d) > (b * c) Then
.Pictures(ID).Height = r.Height – 2 * nGAP
.Pictures(ID).Top = r.Top + nGAP
.Pictures(ID).Left = r.Left + (r.Width – .Pictures(ID).Width) / 2
Else
.Pictures(ID).Width = r.Width – 2 * nGAP
.Pictures(ID).Top = r.Top + (r.Height – .Pictures(ID).Height) / 2
.Pictures(ID).Left = r.Left + nGAP
End If
End With
End Sub
en excel 2010 no me funciona el metodo picture, con que otra función la pudiera suplir