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

Contribuez Discussion :

Accélérer une requête sur des multiples pages Web


Sujet :

Contribuez

  1. #21
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2013
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 411
    Points : 231
    Points
    231
    Par défaut re
    Bonjour Marc,

    Peux tu m'expliquer/vérifier les éléments suivants stp:
    La sub Been possède application.ontime
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.OnTime TS, Me.CodeName & ".AfficheBoutons", , SHEDULE
    donc a time= TS soit Now +0.007 s application.ontime va lancer Feuil1.afficheboutons et si excel non prêt il va attendre jusqu'à être prêt pour lancer cette procédure...Schedule=true pour permettre de planifier une nouvelle procédure...
    Cependant je ne vois pas cette procédure se lancer...la sub afficheboutons existe mais pas Feuil1.AfficheBoutons et donc en testant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.OnTime TS, "AfficheBoutons", , SHEDULE
    et bien rien ne se passe non plus!!!

    Sinon pour quitter le script tu indiques: WScript.Quit 1 et WScript.Quit 2
    Pourquoi 1 et 2? Quelle est la différence? pour savoir d'où vient l'erreur?
    Par contre ce point est intéressant car c'est aussi une idée à exploiter pour pouvoir relancer le script quitté suite à une erreur...
    Merci pour tes explications...

  2. #22
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Oui c'est bien cela, c'était lors de tests en monotâche pour contrôler une sortie avec erreur du script …


    TS = Now + 0.0007 : Excel stocke la notion de date / heure dans un nombre,
    la partie entière représentant la date et la partie décimale les heures, 1 valant 24 heures = 24 * 60 * 60 = 86 400 secondes.
    Donc un temps de 0.0007 est égal à 0.0007 * 86400 = 60,48 secondes, environ une minute …
    Sinon voir l'exemple de l'aide d'Application.OnTime utilisant la fonction TimeValue.

    Concernant la ligne de code Application.OnTime TS, Me.CodeName & ".AfficheBoutons", , SHEDULE,
    sa procédure devant se trouver dans le module de la feuille de calculs contenant les données
    d'où l'importance de préciser le module dans cette ligne de code.

    Si toutes les abeilles retournent à la ruche avant le temps imparti, l'alerte est annulée …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  3. #23
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2013
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 411
    Points : 231
    Points
    231
    Par défaut re
    d'accord thank you,
    ok étude en cours...c'est ardu!!! mais pour le moment ca rentre (lentement mais ca rentre petit à petit)

  4. #24
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    salut tout les deux
    ouais !!!!..... ca rentre a noël 2016 on sera bon

    nan je rigole, Marc je te réserve une surprise qui va te scotcher, valable pour itwoo aussi
    patience je lâche la bombe le 25 juste pour le symbole

    et kiki qui va tout faire Peter encore !!???c'est le toulonnais !!!!
    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. #25
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2013
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 411
    Points : 231
    Points
    231
    Par défaut re
    Bonjour,
    Pat vérifie bien le dosage que ce ne soit pas juste un pétard
    Marc vraiment encore une fois tu balades (chapeau pour ce code d'anthologie!!!)
    Une petite modification(vraiment un petit détail) possible si j'ai bien compris: si tous les liens sont déjà présents sur la feuille active excel alors rien ne se passe (peut être ici pourrais tu prévoir d'abord avant de lancer tout d'effacer tous les liens de la page active à étudier)
    Sinon peux tu m'expliquer le point suivant car sur ton code pas moyen d'avoir un lien défectueux pour faire les tests!!!: si un lien est défectueux dans le SC tu as prévu 2 indicateurs d'erreur:
    le 1° pour controler le : With CreateObject(""MSXML2.XMLHTTP"") => avec If Err.Number Then WScript.Quit 1
    le 2° pour controler le: .open ""POST"",WScript.Arguments(0),False => avec If Err.Number Then WScript.Quit 2
    Il faudrait stp que tu me détailles cela car je ne sais pas ce qui se passe ici:
    si createObject échoue alors par exemple Err.Number= 52 et ensuite WScript.Quit s'enclenche et le message Script 1 défectueux va apparaitre ou alors c'est le n° du script en cours de lancement qui va apparaitre?
    C'est fou ca d'en venir à chercher les erreurs pour vérifier que tout marche!!!
    Merci

  6. #26
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    En fait c'est un code de sortie du script interrogeable en procédure batch DOS via un IF ERRORLEVEL
    ou encore via $LASTEXITCODE en PowerShell par exemple …
    J'ai laissé ces codes de sortie dans la version finale alors que j'aurais pu très bien les retirer.

    Chaque script reçoit en paramètres l'adresse du lien hypertexte et l'adresse d'une cellule
    pour y écrire directement le résultat dans la feuille (script généré dans l'exemple de parisdauphine) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    On Error Resume Next
    With CreateObject("MSXML2.XMLHTTP")
    If Err.Number Then WScript.Quit 1
    .open "POST",WScript.Arguments(0),False
    If Err.Number Then WScript.Quit 2
    .send
    If .status=200 Then SP=Split(.responseText,"End of placement</td><td>"): If UBound(SP)>0 Then T=Split(SP(1),"<")(0)
    End With
    GetObject(,"Excel.Application").Workbooks("Let It Bee v2 parisdauphine .xlsm").Worksheets("CbondS").Range(WScript.Arguments(1)).Value=T
    Donc si une cellule résultat reste vide, soit son script était en erreur sur le lien hypertexte
    (message final « Bee missing in Action ! »), soit le statut de la requête était différent de 200 …


    Il serait possible aussi au lieu de sortir par WScript.Quit d'alimenter la variable T
    afin d'avoir un message dans la cellule résultat :

    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
    On Error Resume Next
    With CreateObject("MSXML2.XMLHTTP")
    If Err.Number Then
        T = "Erreur 1 !"
    Else
        .open "POST", WScript.Arguments(0), False
        If Err.Number Then
            T = "Erreur 2 !"
        Else
            .send
            If .status = 200 Then
                SP = Split(.responseText, "End of placement</td><td>")
                If UBound(SP) > 0 Then T = Split(SP(1), "<")(0) Else T = "Erreur 3 !"
            Else
                T = .status & " : " & .statusText
            End If
        End If
    End If
    End With
    GetObject(, "Excel.Application").Workbooks("Let It Bee v2 parisdauphine .xlsm").Worksheets("CbondS").Range(WScript.Arguments(1)).Value = T
    Dans ce cas, plus besoin de déclencher une procédure d'alerte via Application.OnTime
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  7. #27
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2013
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 411
    Points : 231
    Points
    231
    Par défaut re
    d'accord merci ...
    Pourrais tu me dire quel serait le message d'erreur de WScript stp: il indiquerait/indentifierait erreur script n°7 ou erreur WScript Quit 1 ou erreur n°52?
    De plus cela couperait le lancement du script défectueux mais si désir de le relancer ce script est ce que je pourrais le faire dans Letitbe juste en le remettant avec ses arguments dans la file des scripts à lancer ou cela viendrait perturber tous les autres scripts?

  8. #28
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut




    Tu as répondu alors que j'étais toujours en cours d'édition de mon précédent message : à relire donc …

    Selon le message dans la cellule, il serait alors possible d'effectuer un traitement via une procédure évènementielle
    à la condition de bien identifier l'erreur car par exemple si le site est à l'Ouest, à quoi bon ?!

    Chaque script est un processus indépendant …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  9. #29
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2013
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 411
    Points : 231
    Points
    231
    Par défaut
    Bonjour,

    Ah oui désolé...pour la réponse prématurée, OK pour T c'est noté

    Perso je ne suis pas sûr que le site soit à l'ouest si juste 1-2 vbs sont défectueux d'où l'idée de relancer....les vbs défectueux

    Sinon dans la
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Private Sub Workbook_Open() 
    Feuil1.Shapes("Boutons").Visible = True:  Me.Saved = True
    A quoi sert ce Me.Saved= True (Me =ThisWorkbook ) ?

    Et d'autre part comment retrouves tu le lien par exemple du bouton Demo
    Pour le nom cela donne (et marche):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox ("voici le bouton Demo dont le nom est " & Feuil1.Shapes.Item(1).GroupItems.Item(1).Name)
    Mais pour le lien bien qu'il marche (et qu'il apparaisse lors d'un clic dessus) il n'y a rien car onaction=""
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox ("voici le bouton Demo dont le lien est " & Feuil1.Shapes.Item(1).GroupItems.Item(1).onaction)
    Étude en cours car vraiment super performant ce que tu as fait...et plein de savoir BRAVO Marc!!!

  10. #30
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut



    Un script n'est pas vraiment défectueux en tant que tel, s'il y a un souci cela provient plutôt d'un incident réseau


    Le classeur étant modifié à l'ouverture via l'affichage du groupe des boutons, passer son statut à "sauvegardé"
    évite le message pour le sauvegarder au cas où l'utilisateur juste le consulte sans modification aucune …


    Les boutons sont bien liés à des procédures mais ce n'est vérifiable effectivement qu'en les dégroupant …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  11. #31
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2013
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 411
    Points : 231
    Points
    231
    Par défaut re
    Bonjour

    Merci pour ces précisions…
    Ok nous sommes d’accord sur tout jusqu’à présent ce n’est donc pas le script qui est en cause (donc relance possible du script étude en cours).
    De plus tu pourras faire une petite expérience et constater que les scripts fonctionnent bien même si excel est bloqué par exemple en mettant pour application.ontime TS = now + 0.00002.
    Et bien là la boite de message (ici Missing in action) apparait avant que les scripts n’aient rempli les cellules excel mais même si pas de clic sur le Ok de la MsgBox et bien les cellules excel se remplissent quand même avec les datas…donc le bloquage d’excel ne bloque pas les scripts qui sont bien autonomes et accomplissent leur tâche…

    Par contre et là étude pour confirmation en cours Worksheet_change lui est bloqué par la MsgBox il ne marche pas si les scripts s’affichent pendant que la MsgBox (ici Missing in action) est ouverte et même (et la c’est une surprise) si la MsgBox est fermée avant même que les scripts ne commencent à remplir les cellules excel et bien le Worksheet_change ne fonctionne pas un peu comme si le focus avait été pris par la MsgBox par rapport à Worksheet_change…et que la MsgBox le conservait

    Donc si tout ceci est bien exact il ne semble pas y avoir de problème comme le souligne Qwaz en simplement relançant le script défectueux pour corriger si cela se produit un retour d’abeille défectueux…solution proche, enfin je l’espère
    Le temps de finir des tests sur tes abeilles...qui sont vraiment un bijou de programmation

  12. #32
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut




    Ligne n°60, conditions d'exécution de l'évènement Change de la feuille de calculs :
    variable BeeC différente de zéro et la cellule modifiée en cinquième colonne.

    Ligne n°11 : après la fermeture du MsgBox, l'instruction End réinitialise toutes les variables,
    donc BeeC vaut zéro bloquant ainsi l'exécution dans l'évènement Change, condition non remplie …

    Tester alors en supprimant l'instruction End.
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  13. #33
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2013
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 411
    Points : 231
    Points
    231
    Par défaut re
    Ah oui en effet il n’y a plus bloquage du Worksheet_change que lorsque la MsgBox Missing in Action non fermée donc rien ne bloque rien si tout est bien fait 
    Bon la j’espère enfin avoir compris ton code…retour sur l’autre discussion pour essayer de corriger les erreurs.
    Et encore une fois chapeau (parce que vraiment ca impressionne)

Discussions similaires

  1. Réponses: 22
    Dernier message: 10/07/2011, 17h49
  2. Affichage du résultat d'une requête sur la même page html
    Par hanadi_09 dans le forum Développement Web en Java
    Réponses: 9
    Dernier message: 24/10/2010, 08h18
  3. [AC-2002] Envoi d'une requête sur une page web
    Par pier.antoine dans le forum VBA Access
    Réponses: 2
    Dernier message: 26/09/2009, 14h45
  4. [MySQL] Affichage des résultats d'une requête sur plusieurs pages
    Par leloup84 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/10/2006, 13h24
  5. Sous-Formulaire basé sur une requête nécessitant des paramètes
    Par nicou50 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 02/09/2006, 22h18

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