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 :

[VBA-E]planification macro etrange


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 [VBA-E]planification macro etrange
    salut a tous

    voila je vous expose en gros mon probleme actuel

    j ai creer une macro qui va detecter sur differents sites internet s'il y a des variations de certaines donnees
    j'ai creer une tache planifiee sous windows pour que le fichier s'ouvre automatiquement chaque jour

    seulement voila quand cette tache planifiee s'execute la macro detecte une variation alors que lorsque je lance le fichier a la mimine la macro ne detecte aucune variation !!

    j'avoue ne pas trop comprendre ce qui se passe

    si quelqu'un a une idee ou si le cas s'est deja présente pour quelqu'un

    merci

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Par défaut
    As tu un exemple de ton code?
    Une variation par rapport à quoi? au dernier lancement? à une valeur stockée dans le fichier?

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sheets("iceland").Select: Range("h1").Value = Range("b28"): Columns("A:d").Select: Selection.ClearContents
     
    Sheets("iceland").Select: Selection.QueryTable.Refresh BackgroundQuery:=True
     
    Sheets("iceland").Select
    If Range("h1") <> Range("b28") Then Sheets("controle").Select: Range("c18").Value = "variation envoyer mail alerte": Range("f18") = "OK" _
    : Call mail("isalnde", "Merci de modifier") _
    Else: Sheets("controle").Select: Range("c18").Value = "OK pas de variation": Range("f18") = "NOK"
    Call recup_codehtml("http://www.england.co.uk/", "e1", "engla
    je met en gros le code pour expliquer comment je procede
    j'affiche dans h1 la valeur de la cellule b28
    j'efface les donnees colonne A à D
    j'execute ma requete sur le web qui va recuperer les nouvelles donnees
    ensuite si H1 est different de B28 alors c'est qu il y a une variation

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Par défaut
    Citation Envoyé par ricoree78
    seulement voila quand cette tache planifiee s'execute la macro detecte une variation alors que lorsque je lance le fichier a la mimine la macro ne detecte aucune variation !!
    Juste une question : la 1ere fois que tu lances avec la planification, tu enregistres ton classeur? Et quand tu lances le fichier manuellement, tu le fais juste après le 1er lancement? euh... ça fait 2 questions...

  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
    j'ai essaye les deux enregistrer et sans enregistrer

    et peu importe le moment ou je lance le fcihier manuellement avant ou apres le 1er lancement cela me donne toujours le resultat correct

    le resultat qui est correct c'est qu'il ne doit pas y avoir de variation

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Par défaut
    Dans ce cas-là, juste après la planification, peux-tu vérifier juste cette ligne, sans lancer le reste du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox Range("h1") <> Range("b28")

  7. #7
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 119
    Par défaut
    en fait j ai l'impression que la macro fait le test alors que la page n'est pas encore rafrachie et elle est donc vide

    comment puis je attendre que ce code s execute totalement ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sheets("iceland").Select: Selection.QueryTable.Refresh BackgroundQuery:=True
    avec une boucle juste apres ?

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Par défaut
    Ah oui... peut-etre faut-il attendre la fin du rafraishissement du tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.QueryTable.Refresh BackgroundQuery:=False
    Aide VBA sur la methode Refresh :
    BackgroundQuery
    Argument facultatif de type Variant. Utilisé uniquement avec les tables de requête basées sur les résultats d'une requête SQL. Affectez-lui la valeur True pour redonner le contrôle à la procédure dès que la connexion avec la base de données est réalisée et la requête soumise (la requête est mise à jour en arrière-plan). Affectez-lui la valeur False pour redonner le contrôle à la procédure uniquement une fois toutes les données extraites pour la feuille de calcul. Si vous n'avez pas spécifié cet argument, le fonctionnement de la propriété BackgroundQuery détermine le mode de requête.

  9. #9
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 119
    Par défaut
    nickel

    c'etait ca !!

    bizarre quand meme que ca marche quand je lance le fichier a la main et pas quand je planifie la macro
    mais maintenant c'est ok

    merci

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

Discussions similaires

  1. [VBA-E]Associer macro à un contrôle
    Par bastien62200 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/02/2006, 23h58
  2. [VBA] utiliser une macro contenue dans un autre classeur
    Par laloune dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 01/02/2006, 18h46
  3. [VBA][Excel]Exécution macro avec fichiers source
    Par ouezon dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/12/2005, 00h00
  4. [VBA-E] [help]macro pour dupliquer une feuille (en valeur)
    Par minikisskool dans le forum Macros et VBA Excel
    Réponses: 31
    Dernier message: 07/11/2005, 19h24
  5. Réponses: 4
    Dernier message: 19/05/2005, 11h51

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