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 :

dans excel : arret et demarrage automatique


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2006
    Messages : 94
    Par défaut dans excel : arret et demarrage automatique
    bonjour,
    je voudrai que ma macro automate, démarre a partir de 9h ou plus si l'ouverture du fichier est apres 9h et s'arrete ou ne démarre pas s'il est plus de 17h59min59sec, j'ai fait ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub automate()
    ' exécuter Worksheet_Calculate à 9 heures.
    Application.OnTime TimeValue("09:00:00"), "Worksheet_Calculate"
    ' annuler le paramétrage de OnTime a 18 heures moins 1 seconde.
    Application.OnTime EarliestTime:=TimeValue("17:59:59"), _
    Procedure:="Worksheet_Calculate", Schedule:=False
    End Sub

    est ce juste ou comment le compléter pour qu'il corresponde bien a ma problématique ?

    merci

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    tu devrai faire un tour dans l'aide en ligne de OnTime ... la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Application.OnTime TimeValue("09:00:00"), "Worksheet_Calculate

    ne permet d'exécuter la procédure "Worksheet_Calculate" qu'une seule
    fois à 9h00 .. c'est ce que tu ve ..?

    et la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Application.OnTime EarliestTime:=TimeValue("17:59:59"), _
    Procedure:="Worksheet_Calculate", Schedule:=False
    va t'amener à une erreur .. il n'y as rien de précédament programmé .. 17:59:59

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2006
    Messages : 94
    Par défaut
    ba effectivement ca marche pas !
    je me demandais si éventuellement avec une boucle ca pouvait marcher mais je ne sais pas comment le programmer :
    sub automate()

    tant qu'il est entre 9h et 17h59min59sec

    Worksheet_Calculate

    Sinon ne rien faire

    end sub
    mais je sais pas faire le tant qu'il est entre 9h et...

    merci de m'aider !

    yahi

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    mais il y as quoi dans ta procedure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Worksheet_Calculate
    .. tu dois la répéter périodiquement..?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2006
    Messages : 94
    Par défaut
    Ma procedure observe un certain nombre de cellules qui sont ammenées a etre modifier de facon extérieur. Dès qu'une d'elles change, alors ca va copier le contenue sur d'autres lignes, les une sous les autres pour en faire un graphique.
    Mais mes données tombent entre 9h et 18h et si ca prend avant ou apres, ca plante ! voila le pb !
    Ma "Worksheet_Calculate" ne prend pas l'info a interval de temps mais seulement quand qqchose change* ! (calcule de température, ... )


    * et oui si je mets interval 1sec, excel plante ou plutot boure la machine et ca finit par planter ; ca prend des valeures égales qui n'ont aucun intéret, et le tableau devient encore plus monstrueux !

    ;-)

    yahi

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par yahi.jye
    ..
    Ma "Worksheet_Calculate" ne prend pas l'info a interval de temps mais seulement quand qqchose change* ! (calcule de température, ... )
    .....
    ben utilise une procédure sur changement d'état dans ces cellules .., et teste l'heure avant d'éffectuer la copie..

    enfin.. j'ai pas encore tout compris...

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2006
    Messages : 94
    Par défaut
    euh.. faut faire comment justement pour tester l'heure ...
    sinon ca incrémente bien mes colonnes !
    C'est "juste" pour déterminer le démarage et l'arret (ou plutot la plage horraire de travail) qui pose pb..


  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2006
    Messages : 94
    Par défaut
    if 9h < time < 17h59min59sec then ...
    ...
    end if
    end sub

    je suis vraiment pas sur que ca s'exprime ainsi !??

    yahi

  9. #9
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    ben cela donne..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    If Time > TimeValue("09:00") And Time < TimeValue("17:59") Then
     ....
     Ici ton code ... ou l'appel à ta Work..:
    Worksheet_Calculate
    ...
      End If

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2006
    Messages : 94
    Par défaut
    Je vais te mettre dans mes favoris !

    donc t'es la le soir, et tu me résouds tout en un tour de main !
    c'est génialissime !

    merci bcp !

    a bientot pour de nouvelles aventures VBA !

    passe une bonne soirée !

    yahi, ravi !

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2006
    Messages : 94
    Par défaut
    ha juste histoire de..
    ca se met comment une procédure de changement d'état d'une cellule,
    ca peut etre intéressant de mettre un enregistrement automatique, au cas ou le pc plante...
    je crois que je pourait faire avec un enregistrement toutes les demi heures, mais pkoi pas inclure directement a chaque changement ?

    promis apres j'arrete pour ce soir !

    yahi

  12. #12
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    dans l'editeur de code tu double clic sur ta feuille dans l'arborescence à gauche...

    puis dans les 2 combobox en haut tu choisi Worksheet et Change

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    la variable target en paramétre est la plage de cellule modifié.. une petite recherche sur ce forum te permettra de trouver des exemples d'utilisation .. (voir aussi intersect..)

    bonne nuit..

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2006
    Messages : 94
    Par défaut
    Bon ce sera a voir un autre jour, ca me parle pas trop !
    merci encore !

    bonne nuitée !
    yahi

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

Discussions similaires

  1. Enregistrement automatique dans Excel
    Par kfmystik dans le forum Excel
    Réponses: 2
    Dernier message: 01/08/2008, 11h37
  2. Exporter dans Excel automatiquement.
    Par JarAsh dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 31/07/2007, 16h23
  3. Réponses: 8
    Dernier message: 14/05/2007, 13h51
  4. Export automatique VBA dans Excel
    Par eddyG dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/12/2006, 23h34
  5. Faire un filtre automatique comme dans Excel
    Par ptitdav dans le forum Access
    Réponses: 2
    Dernier message: 19/09/2005, 13h29

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