.
Anteriormente se han publicado otros post sobre insertar imágenes o fotos en Excel mediante macro en macro para insertar fotos y macro abre explorador e inserta fotos, como así también se mostró una macro que insertar imágenes en un comentario de excel; centrar o ubicar fotos automáticamente respecto de una celda o mediante una posición, alto y ancho especificado.
Ahora muestro como insertar fotos recorriendo las celdas, tomando de una columna la dirección de la foto e insertándola en la fila correspondiente ajustando el ancho de la columna y alto de la fila, es decir ubicar la imagén en forma automática en la fila y columna correspondiente.
El vídeo que sigue muestra una explicación más detallada y gráfica de la macro presentada, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como por ejemplo como copiar varias tablas vinculadas de Excel a Word, como ejecutar una macro dependiendo del valor de una celda, pasar datos de listbox a hoja de Excel, buscar en listbox mientras escribes en textbox, crear indice a hojas del mismo libro y al menú principal, conectar Excel con Access e insertar datos y muchos ejemplos más.
if (payload.eventType == ‘subscribe’) {
// Add code to handle subscribe event.
} else if (payload.eventType == ‘unsubscribe’) {
// Add code to handle unsubscribe event.
}
if (window.console) { // for debugging only
window.console.log(‘YT event: ‘, payload);
}
}
Código que se inserta en un módulo
Sub InsertaPicture()
Application.ScreenUpdating = False
On Error Resume Next
Dim imag As Object
Dim celda As Range
Dim path As Variant
Dim fila As Integer
fila = 3
‘uf = Sheets(«Hoja1»).Range(«B» & Rows.Count).End(xlUp).Row
While Sheets(«Hoja1»).Cells(fila, 1) <> Empty
path = Sheets(«Hoja1»).Cells(fila, 2)
Cells(fila, 3).Activate
Set ran = ActiveCell
Set imag = Sheets(«Hoja1»).Pictures.Insert(path)
cw = 35 ‘ActiveCell.ColumnWidth ‘imag.Width / 10.67111364
rh = 70 ‘ActiveCell.RowHeight ‘imag.Height / 2
With imag
.Top = ran.Top
‘reducimos el alto y ancho de la foto
.Width = cw
.Height = rh
‘se centra horizontalmente en la celda indicada
.Left = ran.Left ‘ + (ran.Width – imag.Width) / 2
End With
‘damos altura a la fila igual al alto final de la imagen
ActiveCell.RowHeight = imag.Height
ActiveCell.ColumnWidth = 17
fila = fila + 1
Wend
Set imag = Nothing
Set ran = Nothing
End Sub
Application.ScreenUpdating = False
On Error Resume Next
Dim imag As Object
Dim celda As Range
Dim path As Variant
Dim fila As Integer
fila = 3
‘uf = Sheets(«Hoja1»).Range(«B» & Rows.Count).End(xlUp).Row
While Sheets(«Hoja1»).Cells(fila, 1) <> Empty
path = Sheets(«Hoja1»).Cells(fila, 2)
Cells(fila, 3).Activate
Set ran = ActiveCell
Set imag = Sheets(«Hoja1»).Pictures.Insert(path)
cw = 35 ‘ActiveCell.ColumnWidth ‘imag.Width / 10.67111364
rh = 70 ‘ActiveCell.RowHeight ‘imag.Height / 2
With imag
.Top = ran.Top
‘reducimos el alto y ancho de la foto
.Width = cw
.Height = rh
‘se centra horizontalmente en la celda indicada
.Left = ran.Left ‘ + (ran.Width – imag.Width) / 2
End With
‘damos altura a la fila igual al alto final de la imagen
ActiveCell.RowHeight = imag.Height
ActiveCell.ColumnWidth = 17
fila = fila + 1
Wend
Set imag = Nothing
Set ran = Nothing
End Sub
.
If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.
Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends