Revisión de código para guardar imágenes en una carpeta en especifico

Que me proporcionaron en el foro:

Con este código, se guarda la imagen de excel en una carpeta en especifico

Sub ejemplo2()
'Por.DAM
On Error Resume Next
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
For Each img In ActiveSheet.DrawingObjects
If img.Top >= Cells(i, "A").Top And img.Top < Cells(i + 1, "A").Top Then
img.Select
img.CopyPicture
ActiveSheet.Shapes.AddChart
ActiveSheet.ChartObjects(1).Select
With Selection
.Chart.Paste
.Chart.Export "C:\Documents and Settings\Compaq_Propietario\Escritorio\" & Cells(i, "A").Value & ".JPEG"
.Delete
End With
Exit For
End If
Next
Next
End Sub

Y con este código, si el nombre de la imagen coincide con la descripción del excel, me muestra la imagen en un control de imagen

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

'Por.DAM

On Error Resume Next

If Not Intersect(Target, Range("H4:H815")) Is Nothing Then
ruta = ActiveWorkbook.Path & "\IMAGENES\"
If Dir(ruta & Target & ".jpeg") <> "" Then
Image1.Picture = LoadPicture(ruta & Target & ".jpeg")
Else
Image1.Picture = Nothing
End If
End If

If Not Intersect(Target, Range("H4:H815")) Is Nothing Then
Image1.Visible = True
Else
Image1.Visible = False
End If

[fila] = Target.Row

End Sub

Hasta ahí, todo excelente.

Mi duda es que quise agregar una imagen a la carpeta IMAGENES, sin la macro EJEMPLO(2), pero no la lee, forzosamente tengo que guardar la imagen con la macro, hay forma de que pueda agregar cualquier imagen a la carpeta IMAGENES, ¿sin necesidad de utilizar la macro?

Cualquier duda, me avisan

1 respuesta

Respuesta
3

Claro que puedes agregar una imagen a la carpeta IMAGENES, pero tiene que tener extensión jpeg, ya que la segunda macro, solamente lee archivos con extensión jpeg.

If Dir(ruta & Target & ".jpeg") <> "" Then
Image1.Picture = LoadPicture(ruta & Target & ".jpeg")

Hola experto, sobre esto le comento que lo he intentado y no reconoce la imagen, guardo la imagen en la carpeta IMAGENES, verifique que este con la misma extensión y al momento que ingreso el concepto en el archivo excel en la columna H, no la reconoce, es ahi mi problema, su ayuda, porfa

Envíame tu archivo con la macro, me dices en qué fila tienes el problema y también envíame la imagen.

Ya te lo mande

Saludos

Los archivos pueden tener extensión JPG o JPEG, es el mismo formato. La diferencia es que JPG es para Windows y JPEG es para Mac, aunque ahora windows ya puede manejar los archivos con JPEG, todavía existe software que guarda las imágenes con JPG, por eso te comentaba que tus archivos deben tener extensión JPEG.

Pero le hice un cambio a la macro para que busque el archivo y realice la carga sin importar la extensión, puede ser jpeg, jpg, bmp, etc. Siempre y cuando sea una imagen.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Por.Dante Amor
    On Error Resume Next
    If Not Intersect(Target, Range("H4:H900")) Is Nothing Then
        ruta = ActiveWorkbook.Path & "\IMAGENES\"
        arch = Dir(ruta & Target & ".*")
        nom = Left(arch, InStrRev(arch, ".") - 1)
        ext = Mid(arch, InStrRev(arch, "."))
        If Dir(ruta & Target & ".*") <> "" Then
            Image1.Picture = LoadPicture(ruta & nom & ext)
        Else
            Image1.Picture = Nothing
        End If
    End If
    If Not Intersect(Target, Range("H4:H900")) Is Nothing Then
        Image1.Visible = True
    Else
        Image1.Visible = False
    End If
    [fila] = Target.Row
End Sub

Saludos.Dante Amor

No olvides valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas