Imprimir página | Cerrar ventana

funcion sleep VBA ppt

Impreso de: Foro de Access y VBA
Categoría: Otros de Microsoft: Windows y Office
Nombre del foro: Otros Productos Microsoft
Descripción del foro: PowerPoint, Navision, Visio, FrontPage, InfoPath etc
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=82015
Fecha de impresión: 16/Febrero/2020 a las 20:20


Tema: funcion sleep VBA ppt
Publicado por: j.koroso
Asunto: funcion sleep VBA ppt
Fecha de publicación: 03/Agosto/2016 a las 15:56
Hola!

Tengo una diapositiva ppt donde he puesto recuadros con texto, un procedimiento de vba conecta a una base de datos y rellena el texto de los cuadrados. En principio tenia un botón para lanzar el procedimiento y funciona ok. El caso es que quiero que se haga solo cada 15 segundos y he usado la función sleep pero el ppt se queda colgado. Hay algo parecido al timer de visual basic para que el ppt no se quede bloqueado?

muchas gracias, uso PowerPoint 2010



Respuestas:
Publicado por: mounir
Fecha de publicación: 03/Agosto/2016 a las 16:34
Hola!

Creo que te has equivocado de foro, esta sección es de Access.

Contestando a tu pregunta, la función Sleep no es propia de PowerPoint, tienes que declararla como Api de Windows.

En un Modulo pones esta línea:

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)


luego en un determinado evento la utilizas de la siguiente forma:

Sleep 1000   ' Donde 1000 (milisegundos) equivale a un segundo.

Espero que te funcione.

-------------
Un Saludo.


Publicado por: j.koroso
Fecha de publicación: 03/Agosto/2016 a las 16:58
Hola gracias por tu respuesta!

Lo puse en esta sección porque mi consulta es mas de VBA a que de PowerPoint. Como bien indicas hay que declararla antes de usarla, eso ya lo he hecho y como comento el problema es que haciéndolo asi la aplicación se queda bloqueada y no puedo interactuar con nada.

busco algún control o procedimiento que haga lo mismo sin dejar la aplicación bloqueada, saludos


Publicado por: mounir
Fecha de publicación: 03/Agosto/2016 a las 18:26
Hola!

Aquí te dejo un enlace de las posibles opciones:

http://analystcave.com/vba-sleep-vs-wait/" rel="nofollow - http://analystcave.com/vba-sleep-vs-wait/

-------------
Un Saludo.


Publicado por: j.koroso
Fecha de publicación: 03/Agosto/2016 a las 18:45
Muchas gracias!

he encontrado este codigo y parece que funciona, voy a probar tambien lo que me has pasado.

Private Sub actualizar_Click()

Dim PauseTime, Start, Finish, TotalTime

    Do

    PauseTime = 5    ' Set duration.
    Start = Timer    ' Set start time.
        Do While Timer < Start + PauseTime
            DoEvents    ' Yield to other processes.
            Call prueva(Me) ' consulta a la base de datos
        Loop
    Finish = Timer    ' Set end time.
    TotalTime = Finish - Start    ' Calculate total time.
   
   
    Loop

End Sub






Publicado por: ceac
Fecha de publicación: 03/Agosto/2016 a las 22:33
Hola!

Yo siempre he usado este:

Public Function PausaCodigo(n As Integer)

Dim Inicio As Date

'Cargo el valor que se utiliza en el bucle Do
Inicio = Now()

Debug.Print "Hora antes de entrar en el Bucle: " & Inicio

'Recorre el bucle hasta que han pasado n segundos

Do
    If DateDiff("s", Inicio, Now()) >= n _
    Then Exit Do

Loop

'Imprime la hora final y emite un sonido
Debug.Print "Hora despues de salir del bucle: " & Now()
Beep

End Function


-------------
«Todos morimos, pero sólo unos pocos viven de verdad» Mel Gibson - Corazón Valiente




Imprimir página | Cerrar ventana