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. 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 , ^^ !
    0
    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.
      0
      1. 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....
        0
        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)
          0
          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.
            0
        2. Bonjour a vous deux,

          Juste un mot pour vous aiguiller.

          Procedures ou Macros sont dans un ou plusieurs modules.

          A+
          0
          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.
            0
            1. oué désolé , c'est exactement ce que j'allais dire, j'avais juste pas eu le temps. reunion oblige ^^
              0