Pb EXCEL VBA

Résolu
Bonjour,

Sur mon code vba, j'essaye d'utliser "application.ontime" mais rien ne fonctionne :

Private Sub Workbook_Open()    

Application.ontime Now() + TimeValue("00:00:10"), "ontime" 
  'ontime est un autre code : private sub ontime() 
                
End Sub


Donc à l'ouverture, cela devrai lancer le code dans 10 seconde -> ça, ça marche.

Mais je n'arrive pas à faire en sorte qu'il se relance seul toute les 10 seconde : ce message apparait : Impossible d'éxécuter la macro il se peut que les macro soit désactivé (ou un truc comme ca)...

Merci de votre aide,

Cordialement,

7 réponses

  1. ^^Merci c'était bien ça, il fallait mettre le code dans un module, alors que moi je l'avais mis dans le thisworkbook.

    Merci à tous les deux.
    1. oué désolé , c'est exactement ce que j'allais dire, j'avais juste pas eu le temps. reunion oblige ^^
  2. Bonjour a vous deux,

    Juste un mot pour vous aiguiller.

    Procedures ou Macros sont dans un ou plusieurs modules.

    A+
    1. Merci mais ça me remet le message d'erreur. Ce que j'ai fait :

      Private Sub Workbook_Open()
      Call j
      End Sub
      
      Sub j()
      Application.ontime Now + TimeValue("00:00:05"), "ontime"
      Call ontime
      End Sub
      
      Private Sub ontime()
      Dim a As String
      Application.ScreenUpdating = False
      a = ActiveSheet.Name
      Sheets("Planète").Select
      Range("a1").Select
      Calculate
      Sheets("Accueil").Select
      Calculate
      Sheets("Générale").Select
      Calculate
      If [c12] < Now() Then
          If [b12] <> "" Then
              Range("b9").Select
              Selection.Copy
              Range("g12").Select
              Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                  :=False, Transpose:=False
              Application.CutCopyMode = False
              [f12] = Range("c12").Value
              [b12] = ""
              [b3] = [b3] + 1
          End If
      End If
      
      If [c13] < Now() Then
          If [b13] <> "" Then
              Range("c9").Select
              Selection.Copy
              Range("h13").Select
              Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                  :=False, Transpose:=False
              Application.CutCopyMode = False
              [f13] = Range("c13").Value
              [b13] = ""
              [c3] = [c3] + 1
          End If
      End If
      
      If [c14] < Now() Then
          If [b14] <> "" Then
              Range("d9").Select
              Selection.Copy
              Range("i14").Select
              Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                  :=False, Transpose:=False
              Application.CutCopyMode = False
              [f14] = Range("c14").Value
              [b14] = ""
              [d3] = [d3] + 1
          End If
      End If
      
      If [c15] < Now() Then
          If [b15] <> "" Then
              [f15] = Range("c15").Value
              [b15] = ""
              [e3] = [e3] + 1
          End If
      End If
      
      If [c16] < Now() Then
      If [c16] < Now() Then
          If [b16] <> "" Then
              [f16] = Range("c16").Value
              [b16] = ""
              [f3] = [f3] + 1
          End If
      End If
      End If
      
      If [c17] < Now() Then
      If [c17] < Now() Then
          If [b17] <> "" Then
              [f17] = Range("c17").Value
              [b17] = ""
              [g3] = [g3] + 1
          End If
      End If
      End If
      
      If [c18] < Now() Then
      If [c18] < Now() Then
          If [b18] <> "" Then
              [f18] = Range("c18").Value
              [b18] = ""
              [h3] = [h3] + 1
          End If
      End If
      End If
      
      If [c19] < Now() Then
      If [c19] < Now() Then
          If [b19] <> "" Then
              [f19] = Range("c19").Value
              [b19] = ""
              [i3] = [i3] + 1
          End If
      End If
      End If
      
      Sheets(a).Select
      Range("a1").Select
      a = ""
      Application.ScreenUpdating = True
      
      End Sub
      
      


      Pourquoi àa marche pas chez moi.

      (excel 2007)
      1. envoi ton fichier xls : www.cjoint.com
        que j'essaye sur un autre support, si ca se trouve il te manque une références.
    2. Merci, mais je veux pas actualisé au changement d'onglet, mais toute les 10secondes tout court en faite.

      Private Sub Workbook_Open()    
      Application.ontime Now() + TimeValue("00:00:10"), "ontime"      
      End Sub


      J'ai essayé dans le sub ontime() de mettre à la fin : Application.ontime Now() + TimeValue("00:00:10"), "ontime"

      mais ça plante....
      1. Tu devrais mettre ca en plus :
        Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
        Application.ontime Now() + TimeValue("00:00:10"), "ontime"  
        End Sud


        Je présume que ta macro réactualise tes feuilles, donc on boucle sur la boucle :
        Tu ouvre ton fichier +10sec ca actualise, ce qui déclenche la deuxieme sub au changement de feuille +10sec.
        1. Bonjour, ta sub ne peux pas fonctionner de facon répétitive pour la seul raison c'est que tu as mis la fonction en workbook_open, et tu le réouvre pas toutes les 10sec , ^^ !