Pb EXCEL VBA

Résolu
eljojo_e Messages postés 1255 Statut Membre -  
ViriisXP Messages postés 535 Statut Membre -
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. ViriisXP Messages postés 535 Statut Membre 41
     
    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
  2. ViriisXP Messages postés 535 Statut Membre 41
     
    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
  3. eljojo_e Messages postés 1255 Statut Membre 155
     
    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
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. eljojo_e Messages postés 1255 Statut Membre 155
     
    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. ViriisXP Messages postés 535 Statut Membre 41
       
      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
  6. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour a vous deux,

    Juste un mot pour vous aiguiller.

    Procedures ou Macros sont dans un ou plusieurs modules.

    A+
    0
  7. eljojo_e Messages postés 1255 Statut Membre 155
     
    ^^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. ViriisXP Messages postés 535 Statut Membre 41
       
      oué désolé , c'est exactement ce que j'allais dire, j'avais juste pas eu le temps. reunion oblige ^^
      0