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 :

Lancer Requêtes toutes les x mins mais.


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Constructeur ossature bois
    Inscrit en
    Mars 2014
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Constructeur ossature bois
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2014
    Messages : 897
    Par défaut Lancer Requêtes toutes les x mins mais.
    Bonjour à tous,

    Mon but est de récupérer toutes les x minutes des données mais il y a un MAIS...

    Avec une autre requête je récupère des liens stockés dans un tablo ainsi que les heures de fin, chaque liens renvoient une page avec des données qui fluctuent jusqu'à une heure donnée de fin de fluctuation (ex: lien n°1: fin à 13h50;lien n°2: 14h20;lien n°3: 14h50;lien n°4: 15h20).

    pour info, il y a 30 mins d'écart entre chaque fin (ex: 13h50;14h20;14h50;15h20 --> 30 mins).

    EXEMPLES:
    Lien N°1-----Heure de fin------à 12h45
    On commence la journée à (heure de fin - 3h15)
    on récupère une 1ère fois à 9h30
    puis à 10h30
    puis à 11h00
    puis à 11h30
    puis à 12h00
    puis à 12h30
    puis 1/4h avant fin, on récupère toutes les mins jusqu'à 12h43 (midi quarante-trois)(heure de fin - 2min)

    Lien N°2-----Heure de fin------à 13h15
    Idem, mais on commence à (heure de fin - 3h15) donc 10h00
    Et non pas 9h30 comme le lien n°1

    Lien N°2-----Heure de fin------à 13h45
    Idem, mais on commence à (heure de fin - 3h15) donc 10h30
    Et non pas 9h30 comme le lien n°1 ou 10h00 pour le lien n°2

    Et cela pour tous les liens

    Bien évidemment j'ai commencé à esquisser un code, mais je ne vois pas bien le suite pour chaque lien à des heures de début et fin différentes....

    Pour info:
    Une début de journée ne commencera jamais avant 9h30
    Donc piège ici
    si heure de fin à 11h30, on ne pourra pas récupérer à (heure de fin - 3h15) mais seulement à partir de 9h30....

    Voyez vous mon problème??
    dans module:
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    Sub Tempo()
        Heurfin = "13H50"
     
        'Programmation de l'évènement
        Tps = Now - TimeValue("00:10:00")
        Application.OnTime Tps, "Tempo"
     
        'appel sub Course
        Call Cour
     
        'Traitement
        Sheets(2).Range("C1").Value = Format(Now, "hh:nn:ss")
    End Sub
     
    Sub StopTempo()
        On Error Resume Next
        'Stopper la gestion de l'évènement OnTime en cours
        Application.OnTime Tps, "Tempo", , False
    End Sub
    Sub Cour()
        Dcol = ThisWorkbook.Worksheets("R2").Cells(2, Columns.Count).End(xlToLeft).Column
        Set Lacell = ThisWorkbook.Worksheets("R2").Cells(2, Dcol)
        Lacell.Select
        'Appel sub
        recupCot
    End Sub
     
    Sub Rafraichissement()
    ' Définit l'intervalle avec l'heure actuelle + trente minutes
    DansTrenteMinutes = TimeSerial(Hour(Time), Minute(Time) + 30, Second(Time))
     
        If DansTrenteMinutes < heurfin Then
            ' Appel récursif de la fonction Rafraichissement
            Application.OnTime DansTrenteMinutes, "Rafraichissement"
     
            Call Cour
     
        Else
            If DansTrenteMinutes > heurfin Then
     
            Application.OnTime Date + 1 + DansTrenteMinutes, "Rafraichissement"
            ' Appel de la fonction cour
             Call Cour
            End If
        End If
     
    End Sub
    Dans thisworkbook
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Workbook_Open()
     
        'Activation de l'heure
        Tempo
        'Lance la sub tous les jours à 9h30
        Application.OnTime TimeValue("09:30:00"), "Rafraichissement"
     
        'Lance la Sub en fonction de l'heure voulu
        Application.OnTime (Range(".....")), "Rafraichissement"
    End Sub
    Ces codes ont été repris dans le forum, et me paraissent intéressant pour mon utilisation
    Merci de votre aide
    Seb

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    tache planifiées Windows je vois que ca sinon ca implique que le classeur lanceur reste ouvert toute la période 9.30 a 15.45 c'est inconcevable tu le comprends bien
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    pour le fun, si en plus tu y trouves ton compte, on sera content tous les deux :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Sub toto()
    Const Heure As Date = 1 / 24
    Const DemieHeure As Date = 1 / 48
    Const QuartHeure As Date = 1 / 96
    Const Minute As Date = 1 / 1440
     
    Dim HeureDebut As Date, HeureFin As Date, HeureMini As Date, HeureAction As Date
     
    '>> ici la date de fin à boucler <<
    HeureFin = 13 * Heure + DemieHeure + QuartHeure
     
     
    HeureMini = 9 * Heure + DemieHeure
    HeureDebut = HeureFin - (3 * Heure + QuartHeure)
     
    If HeureDebut < HeureMini Then HeureDebut = HeureMini
    Debug.Print ">> Debut extraction à : " & Format(HeureDebut, "hh:mm")
    Debug.Print ">> Fin extraction à : " & Format(HeureFin, "hh:mm")
     
     
    For HeureAction = HeureDebut To HeureFin - QuartHeure Step DemieHeure
        Debug.Print "Lancement 30 min à : " & Format(HeureAction, "hh:mm")
    Next HeureAction
     
    Debug.Print "Bascule en extraction minute à : " & Format(HeureAction - DemieHeure, "hh:mm")
     
    For HeureAction = HeureFin - QuartHeure To HeureFin - 2 * Minute Step Minute
        Debug.Print "Lancement minute à " & Format(HeureAction, "hh:mm")
    Next HeureAction
     
    Debug.Print "Arrêt extraction à : " & Format(HeureAction - Minute, "hh:mm")
    End Sub

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut
    hoh!!!!! joe
    ne lui montre pas ca il va le faire
    la j'ai honte pour toi hahaha

    allez au pire un vbs avec des SLEEP!!!!!!!
    y va fuméééééé son proc
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Le but c'était surtout de montrer que travailler sur des heures et des minutes, c'est aussi simple que de manipuler des chiffres

    Y compris pour gérer des contraintes granulaires sur différents intervalles.

  6. #6
    Membre éclairé
    Homme Profil pro
    Constructeur ossature bois
    Inscrit en
    Mars 2014
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Constructeur ossature bois
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2014
    Messages : 897
    Par défaut
    Salut à vous deux,
    tache planifiées Windows je vois que ca
    Je l'ai déjà envisagé, mais bon
    sinon ca implique que le classeur lanceur reste ouvert toute la période 9.30 a 15.45 c'est inconcevable tu le comprends bien
    Mon classeur est sur serveur donc il peux rester ouvert constamment, sans problème

    hoh!!!!! joe
    ne lui montre pas ca il va le faire
    la j'ai honte pour toi hahaha
    C'est une usine à gaz ton truc JOE, visiblement aux yeux de Patrick, et je tiens à mon proc...

    Joe, je t'avouerai ne pas avoir très bien saisi ton code...
    pour gérer des contraintes granulaires sur différents intervalles.
    ok et avec ça, je prend quoi

    Serait-ce si compliqué que ça....si oui, je vais envisager autre chose....mais quoi..

    Seb

    Joe,

    Après essai, c pas mal ton truc, évidemment valable pour un lien....mais s'il faut que je lance ça pour chaque lien...je crains ce que dit Patrick, la surchauffe....Non?
    seb

Discussions similaires

  1. [AC-2010] exécution automatique de requêtes toutes les 30 min
    Par Pdg6704 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 08/06/2015, 13h00
  2. lancer fonction toutes les 10us
    Par DayKay dans le forum C
    Réponses: 1
    Dernier message: 10/01/2008, 15h06
  3. exécuter des requêtes tout les X jours
    Par Hypnocrate dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/10/2007, 11h37
  4. Réponses: 1
    Dernier message: 16/05/2007, 15h52
  5. Group By tout les 10 min
    Par clancy182 dans le forum Requêtes
    Réponses: 10
    Dernier message: 29/01/2006, 23h30

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