Pause non bloquante en VBA

Bonsoir tt le monde

Je voudrais intégrer une pause dans mon code vba et pendant la pause, reprendre la main !

comment faire ??

avec le code application.wait c'est possible ou non ??

bonjour,

insérer un "stop" dans votre code ?

Sub stoppen()
     MsgBox "on s'arrête ici"
    Stop
     MsgBox "et on recommence"
End Sub

Non ca ne va pas il me faut une pause par exemple de 10 minutes et que ca reprenne automatiquement

bonjour, il faut couper la macro en 2 et ajouter un application.ontime etc.

Ce n'est pas évidant !

Oui j'y ai pensé mais ca marche quelques instants mais au bout d'un moment ca plante

bonjour,

dans un module

Public dOntime, Val1, Str1

Sub stoppen()
     'pendant la première partie, il y a des valeurs, qu'on a besoin dans la 2ième partie, il faut les mémoriser d'une manière ou l'autre
     'dans cette exemple 2 valeurs "Public" et une valeur dans une cellule
     Val1 = 123456
     Str1 = "the brown fox jumps..."
     Range("A1").Value = Now
     dOntime = Now + TimeSerial(0, 0, 30)     'pause de 30 sec
     MsgBox "on s'arrête ici pour une minute jusqu'à " & Format(dOntime, "hh:mm:ss"), vbInformation
     Application.OnTime dOntime, "Part2", , 1
End Sub

Sub ResetOntime()
     On Error Resume Next
     Application.OnTime dOntime, "Part2", , 0
     On Error GoTo 0
End Sub

Sub Part2()
     MsgBox "et on recommence à " & Format(Now, "hh:mm:ss") & vbLf & vbLf & "les anciennes valeurs étaient " & vbLf & "Val1 : " & Val1 & vbLf & "str1 : " & Str1 & vbLf & "un moment : " & Format(Range("A1").Value, "ddd dd-mm-yy hh:mm:ss")
End Sub

dans thisworkbook

Private Sub Workbook_BeforeClose(Cancel As Boolean)
     ResetOntime
End Sub
3nicolas.xlsb (22.00 Ko)

oulà c'est compliqué faudrait que j'apllique ça à mon code !

J'ai créé un bouton à bascule qui lance une macro importation, quand elle est désactivé j'aimerais que l'importation s'arrete

Mon problème est que le code marche plus ou moins correctement sauf que je n'arrive jamais à reset la procedure, du coup au bout d'un moment ca créé un dysfonctionnement

Private Sub ToggleButton1_Click()
 With ToggleButton1
        Select Case .Value
            Case True
                .BackColor = RGB(96, 192, 255) 'Bleu Clair
                .ForeColor = RGB(0, 0, 0)
                Call AutoImportation

            Case False
                .BackColor = RGB(64, 128, 192) 'Bleu Foncé
                .ForeColor = RGB(255, 255, 255)
        End Select
    End With
End Sub

Function FichierRepertoire(str) As Long
    Dim DatChaine As String
    Dim n As Long
    DatChaine = Dir$(str & "\*summary.txt*")
    Do While Len(DatChaine) > 0
    n = n + 1
    DatChaine = Dir$()
    Loop
    FichierRepertoire = n
End Function

Sub AutoImportation()
    Dim Temps As Date

  Temps = Now + TimeValue("00:05:00")
  Application.OnTime Temps, Procedure:="Importation2"

End Sub

Sub Importation2()
   Dim Tws As Worksheet
   Dim i As Long

   Application.EnableEvents = False

  ' vérifier si l'utilisateur a arrété l'autoimportation (S9 la cellule liée au bouton à bascule)
    If Range("S9") = "Faux" Then End

' Vérifie la présence de fichiers .text
     i = FichierRepertoire(CheminAuto)

 ' retour au départ si pas de fichiers

     If i = 0 Then
        Call Autoimportation
     Else
     ' le reste de mon code qui marche bien

End Sub

mon code vérifie la présence de fichiers txt dans un dossier

et je voudrais que si pas de fichiers txt (i=0)

on reverifie la présence de fichiers txt 5 minutes plus tard et ainsi de suite

bonjour Nicolas,

voici un autre essai, il n'y a que 5 secondes entre chaque tentative pour accélérer tout pour le test

4nicolas.xlsb (22.87 Ko)

Merci beaucoup pour ton aide je vais étudier le code dans la soirée

J'ai testé le code et ca marche impeccable !

Le ontime se reset bien et du coup plus de dysfonctionnement

Un grand grand Merci

Rechercher des sujets similaires à "pause bloquante vba"