Reproducir varias fotos en userform

Tengo varias fotos en una carpeta y quiero reproducirlas como si fueran un video lo estoy haciendo en un userform pero solo funciona cuando hago un clic en un botón y se salta uno por uno, lo que quiero es que se reproduzca automáticamente sin necesidad de hacer barios clic y además que me aparenca en un textbox su nombre de la foto, me podrían ayudar por favor. Estaré agradecido con su aporte

1 respuesta

Respuesta
2

[Hola

Tengo algo así para archivos *.jpg. Vamos a suponer que tienes un objeto Image1 y un Label1, entonces, pega esto en el módulo del Userform:

Private Sub UserForm_Activate()
Dim FSO As New Scripting.FileSystemObject
Dim strTitulo$, strcarpeta$, strextension$
Dim carpeta As folder
Dim archivo As File
Dim archivos As Variant
Let strTitulo = "Seleccione una carpeta"
With CreateObject("shell.application")
    Let strcarpeta = .browseforfolder(0, strTitulo$, 0).Items.Item.Path
End With
Set FSO = CreateObject("Scripting.FileSystemObject")
Set carpeta = FSO.GetFolder(strcarpeta)
Set archivos = carpeta.Files
For Each archivo In archivos
    Let strextension = FSO.GetExtensionName(archivo)
    If strextension = "jpg" Then
        Me.Image1.Picture = LoadPicture(strcarpeta & "\" & archivo.Name)
        Me.Label1.Caption = archivo.Name
        Application.Wait (Now + TimeValue("0:00:02"))
        DoEvents
    End If
Next archivo
Set FSO = Nothing
Set carpeta = Nothing
Set archivos = Nothing
End Sub

Obviamente el tiempo lo puedes variar y además no olvides ajustar las propiedades del objeto Image para que las imágenes se vean del tamaño que desees.

Abraham Valencia

Buenas Abraham una consulta más en una hoja excel, yo tengo todos los nombres de la foto enumerados y desde allí me jala todas las fotos de una carpeta sucesivamente como lo aria para que me reproduzca como si fuera un video que al hacer cic. estaré a la espera de tu repuesta muchas gracias

Pues más fácil aún. Suponiendo que todas las imágenes están en la misma carpeta y que todos los nombres de la columna E realmente existen como archivo con esa extensión, entonces esto te servirá:

Private Sub UserForm_Activate()
Dim Celda As Range
Dim UltimaFila As Long
Dim Ruta$
Let UltimaFila = Cells(Rows.Count, 5).End(xlUp).Row
Let Ruta = "C:\Users\EAVJ\Pictures\"
For Each Celda In Range("E2:E" & UltimaFila)
    Me.Image1.Picture = LoadPicture(Ruta & Celda.Value)
    Me.Label1.Caption = Celda.Value
    Application.Wait (Now + TimeValue("0:00:02"))
    DoEvents
Next Celda
End Sub

Saludos]

Abraham Valencia

Perfecto funciona bien, mucha gracias y como hago para ponerle pause y que avance más rápido

Sugiero tratar de entender los códigos, leer un poco sobre dichas instrucciones. El tiempo está dado por el Application. Wait, así que basta cambiarlo para hacerlo más rápido.

Sobre hace una pausa, como no hay algo así en específico que pause una macro tal cual mencionas, necesariamente hay que ingeniárselas, es decir, hay que programar algo que lo simule, lo cual conlleva a un tiempo que no necesariamente se tiene para ayudar ad honorem como hacemos por aquí. Sugiero intentar alternativas y sobre avances hechos, volver a pedir ayuda.

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas