IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

execution automatique macro


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 119
    Par défaut execution automatique macro
    bonsoir

    je souhaiterai qu'une fois un fichier excel ouvert une macro s'execute automatiquement toutes les minutes pendant 9 heures
    avez vous un code a me proposer ?

    merci

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Public Chrono As Boolean
     
    Sub Workbook_Open()
    Dim HFin
        HFin = Now + TimeValue("09:00:00")  'Délai fixé à 9 heures
        Chrono = True
        Call FaitTourner
        Do   
            Chrono = Now < HFin
            DoEvents
        Loop While Chrono  'Arrête si temps est dépassé
    End Sub
     
     
    Sub FaitTourner()
        'Relance la pendule (mise à jour de OnTime) toutes les minutes
        If Chrono Then Application.OnTime Now + TimeValue("00:01:00"), "FaitTourner"
        Call TaMacro '***********
    End Sub
    Tu dis
    A+

  3. #3
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 119
    Par défaut
    cela ne semble pas fonctionner
    j ai deux trois question

    la macro a partir du moment que je fais une macro portant se "nom" elle va s'executer des que j'ouvre mon fichier ?

    je ne comprends pas bien cette ligne
    une fois que j'appelle ma macro ne faut il pas dans mamacro rapeller fait trouner ?

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Déjà, pour tester, réduits les délais. Chez moi, ces macros fonctionnent. J'ai fait les tests dur une durée d'une minute, avec 5 secondes entre chaque appel.
    Pour tester, fais ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Public Chrono As Boolean
     
    Sub Workbook_Open()
    Dim HFin
        HFin = Now + TimeValue("00:00:30")  'Délai fixé à 9 heures
        Chrono = True
        Call FaitTourner
        Do   
            Chrono = Now < HFin
            DoEvents
        Loop While Chrono  'Arrête si temps est dépassé
    End Sub
     
    Sub FaitTourner()
        'Relance la pendule (mise à jour de OnTime) toutes les minutes
        If Chrono Then Application.OnTime Now + TimeValue("00:00:05"), "FaitTourner"
        Call TaMacro '***********
    End Sub
     
    Sub TaMacro()
        Msgbox "Coucou !"
    End sub
    Quant à Sub Workbook_Open(), tu la places dans ThisWorkbook pour que la macro se déclenche à l'ouverture du classeur. Si tu veux la lancer depuis un bouton, rebaptise-la d'un autre nom et place-la dans un module standard
    A+

    Si tu as toujours un pb de fonctionnement, tu dis, je te donnerai une solution. C'est peut-être un pb de vitesse de Mµ (?)

  5. #5
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 119
    Par défaut
    ok je n avais pas place workbook_open dans worksheet

    ca semble marché cependant j ai maintenant un souci dans ma macro
    la voici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    sub var()
    Range("M1:M15").Select
    Selection.ClearContents
    Range("N1:N15").Select
    Selection.ClearContents
    For i = 3 To 15
    If Range("G" & i & "").Value < 0 Then Range("M" & i & "").Value = "BAISSE": _
    Range("M" & i & "").Select: Selection.Font.ColorIndex = 3 Else: Range _
    ("M" & i & "").Value = "HAUSSE": Range("M" & i & "").Select: Selection.Font.ColorIndex = 4
    If Range("G" & i & "").Value = 0 Then Range("M" & i & "").Value = "EGAL": Range("M" & i & "").Select: Selection.Font.ColorIndex = 1
    Next i
    end sub
    j ai le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    incompatibilite de type 
    If Range("G" & i & "").Value < 0
    alors que si lance ma macro a partir d'un bouton elle fonctionne

  6. #6
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 119
    Par défaut
    ok j ai trouve j avais un #NA dans ma cellule
    merci encore pour ton aide

    a+

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Et pour
    If Range("G" & i & "").Value < 0
    remplace par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Range("G" & i).Value < 0
    A+

  8. #8
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 119
    Par défaut
    je te reviens sur ce sujet

    tu disais que tu avais une soluce pour probleme de vitesse ?
    en fait ca fais pas mal mouliné mon processeur

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Non, ce dont je voulais parler était un pb si le Mµ est plus rapide que le mien (2,4MHz) le DoEvents aurait pu ne pas suffire et le premier appel à FaitTouner() ne pas se faire.
    Pour accélérer ton code ? Je regarde... Déjà, faudrait supprimer tous les select, ajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sub var()
        Application.screenUpdating = false
    au début et remettre à true à la fin.
    Et évite de faire du basic, on n'a pas de pb de place... (remplace tes ":" par un retour à la ligne, c'est plus facile de corriger ou de relire )
    Ça devrait donner un truc qui ressemble à ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Application.screenUpdating = false
    Range("M1:M15").ClearContents
    Range("N1:N15").ClearContents
    For i = 3 To 15
    If Range("G" & i & "").Value < 0 Then 
         Range("M" & i & "").Value = "BAISSE"
         Range("M" & i & "").Font.ColorIndex = 3 
       Else
         Range("M" & i & "").Value = "HAUSSE"
         Range("M" & i & "").Font.ColorIndex = 4
    'là je ne sais même pas s'il y a un endif (...)
         If Range("G" & i & "").Value = 0 Then
             Range("M" & i & "").Value = "EGAL"
             Range("M" & i & "").Font.ColorIndex = 1
         endif 
    Endif 'Tu corrige s'il n'est pas là ;) 
    Next i
    Application.screenUpdating = True
    A+

  10. #10
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 119
    Par défaut
    ok merci pour ces conseils

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. execution automatique macro
    Par ericdev67 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 01/12/2009, 16h24
  2. Macro qui s'execute automatiquement!
    Par Boonichou dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 28/07/2007, 20h35
  3. [VBA-E]Execution automatique macro
    Par dev81 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/06/2007, 10h35
  4. [vba-E] VBA pour macro executable automatiquement
    Par ricachu dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/07/2006, 15h20
  5. [vba-E] pour une macro executable automatiquement
    Par ricachu dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/07/2006, 12h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo