Attendre qu'une autre Application ait fini son boulot, avant d'entamer une autre proc

YANN-56

XLDnaute Barbatruc
Bonjour à ceux qui passeront par ici,

Pas facile de mettre un titre explicite sur ce sujet! :confused:

1) Je récupère des distances entre deux villes via une requête "...maps.google.fr..."
(Bouton "DESTINATION")

2) Par la suite, en intervenant sur la feuille réceptrice, je rends exploitable le résultat.
(Bouton "DISTANCE")

Cependant je ne peux faire suivre ces deux procédures, car la deuxième intervient trop tôt.
L'écriture sur cette feuille n'est pas encore terminée....

Par l'exemple joint, vous comprendrez certainement.
(Le Bouton "DISTANCE" n'a pas lieu d'être; il n'est là qu'en raison du souci)

Si vous n'attendez pas 2 à 3 secondes avant de cliquer sur ce dernier -> Plantage!!!

Ayant aussi pour but de faire une boucle sur la Feuil1 pour initialiser les destinations habituelles,
je suis complètement coincé. :mad:

Merci d'avance à qui m'aidera à avancer.

Yann
 

Pièces jointes

  • QUESTION.xls
    30.5 KB · Affichages: 71
  • QUESTION.xls
    30.5 KB · Affichages: 64
  • QUESTION.xls
    30.5 KB · Affichages: 69

YANN-56

XLDnaute Barbatruc
Re : Attendre qu'une autre Application ait fini son boulot, avant d'entamer une autre

Bonjour Pierrot, Hasco:):), et à ceux qui passeront par ici,

Coup de fatigue hier soir; j'ai abandonné!

Je vais m'y remettre en milieu de cet après-midi.

Il n'y a pas de raison que cela ne fonctionne pas!!!
Je dois persister, ne serait-ce que par respect pour votre aide...

Amicalement, et à plus tard.

Yann
 
G

Guest

Guest
Re : Attendre qu'une autre Application ait fini son boulot, avant d'entamer une autre

Bonjour Yann,:)
Pierrot:)

Yann dans le fichier joint, un exemple qui fonctionne avec QueryTable.
Dans le module de la feuille RECUP une variables WithEvents est déclarée
Dont les évènements inniberont (ou non) le bouton de commande 'Distance' suivant le success de l'interrogation.
Dans le module DESTINATION une procédure
Qui crée la QueryTable si elle n'existe pas ou actualise la requête si elle existe et qui connecte la QueryTable à la variable publique oQueryTable du module de la feuille RECUP.

A+
 

YANN-56

XLDnaute Barbatruc
Re : Attendre qu'une autre Application ait fini son boulot, avant d'entamer une autre

Bonsoir Hasco, Pierrot, et à ceux qui auront regardé ce Fil,

Tout fonctionne à souhait, et j'ai même un peu avancé sur mon idée initiale.(Classeur joint)

Ici j'utilise une ListView, mais l'on peut imaginer facilement une saisie dans un TextBox,
voire une sélection dans un ComboBox. (Autant pour le lieu de Départ que pour celui d'Arrivée)

Je ne suis pas encore parvenu à dresser la liste des distances sur ma liste.
Mais ce n'est qu'un détail souhaitable, mais pas indispensable pour l'instant.
(Il ne serait là que dans le cas où la localisation d'un Lieu-dit ou d'une rue ne soit pas nécessaire)

Je viens de prendre une bigre de leçon!!!

- La persévérance par l'attention de Pierrot; comme il sait si souvent le montrer.
- L'énorme chemin que j'ai encore à parcourir à la lecture des Macros de Hasco.
J'ai de lui encore cette suggestion à explorer:
https://www.excel-downloads.com/thr...-boulot-avant-dentamer-une-autre-proc.156968/

Mon rêve est de me venger en étant, un jour, aussi utile à quelqu'un...
(Y'a pas un XLDNaute qui aurait une question facile dans mes petites cordes ???) :confused:

Grand Merci à vous deux, sans oublier Hippolite.

Amicalement.
 

Pièces jointes

  • SUPER_HASCO.xls
    43.5 KB · Affichages: 59

YANN-56

XLDnaute Barbatruc
Re : Attendre qu'une autre Application ait fini son boulot, avant d'entamer une autre

Re Bonjour à tous ou Bonsoir suivant l'heure,

Je suis un peu gêné de revenir sur mon sujet initial; mais las d'y trop échouer je relance le Fil!

Dans la version jointe, j'utilise l'exemple "1" de Hasco.
A noter que dans l'exemple "2" avec " HttpRequest" cela fonctionne plus efficacement,
mais je n'y pige pas grand-chose! (Donc: L'adaptation est beaucoup trop au-delà de mes capacités!)

Je cherche en premier lieu à mettre les distances dans la colonne 3 de la "Feuil1"
en faisant une boucle sur celle-ci ou la ListView.... J'enregistre alors la page dans une base de données.
Celle-ci servira forfaitairement, au cas où une recherche internet ne soit pas possible.

En deuxième lieu, il y a à gérer une saisie de lieu ou de rue imprécise.
Ex "Patern" pour VANNES qui va correspondre à un quartier ou une des rues.

Voir à ce sujet l'Item de la ListView le proposant: Il y aura Echec! -> "0"

Dans mon projet, si dans la feuille "RECUP, Colonne "A"" il y a "Essayer avec",
je dresse la liste des propositions faites en Colonne "B" dans une ListView d'un second USF,
et par une sélection sur celle-ci je rétabli la bonne adresse, et alors plus de problème...
Le reste fonctionne.

Si l'on pouvait m'aider sur le premier point, ce serait déjà énorme!
Quant au deuxième, je n'aurais besoin que de savoir comment relancer la procédure.

Hum! Je suis conscient de beaucoup demander... Mais qui sait?

Pardon de tant solliciter, mais ce n'est que par trop d'heures passées à chercher. :mad:

Amicalement

Yann
 

Pièces jointes

  • RETOUR_QUESTION.xls
    46.5 KB · Affichages: 52

tototiti2008

XLDnaute Barbatruc
Re : Attendre qu'une autre Application ait fini son boulot, avant d'entamer une autre

Bonjour Yann,

Dans la sub CreateQuery, change les 2

Code:
.BackgroundQuery = True

en

Code:
.BackgroundQuery = false

puis j'ai essayé ta boucle pour toutes les villes et ça fonctionne
 

YANN-56

XLDnaute Barbatruc
Re : Attendre qu'une autre Application ait fini son boulot, avant d'entamer une autre

Bien vu! Je reconnais là ton talent, car dans ce code il fallait comprendre!!!

A noter qu'il ne faut pas aussi oublier de remplacer:

Code:
.Refresh BackgroundQuery:=True

Par:

Code:
.Refresh BackgroundQuery:=False

Sauf que je vais devoir y intercaler le vidage de la feuille "RECUP"
Car je ne savais pas que la Bretagne était si grande. :)

J'habite NOSTANG, et je suis né à LOCMIQUELIC, je le fais genre semi-marathon
19,6 kms, mais 75; c'est un peu trop pour mon age!!!

Super Merci à toi!
Que cela fait du bien après tant de temps à échouer.


Hé! Si tu as une idée sur le deuxième point n'hésite pas!

En tous les cas, je suis heureux que l'on me dépatouille, comme tu viens de le faire,
dans cette opération où je me suis lancé en étant un peu trop présomptueux. :eek:

Amicalement, et au plaisir comme d'hab.

Yann
 
Dernière édition:
G

Guest

Guest
Re : Attendre qu'une autre Application ait fini son boulot, avant d'entamer une autre

Bonsoir Yann,

Dernière tentative pour moi. Mais si tu as besoin d'explications sur la façon dont cela fonctionne, dis le en étant le plus précis possible.

quand cela devient trop compliqué, c'est pas bon. Donc j'ai repris le truc, sans userform et en simplifiant la procedure 'distance' qui est devenue une fonction.

De manière générale: 1 tâche = 1 sub ou Fonction sinon on mélange tout, et on ne sait plus qui fait quoi.

P.S. les interrogations multiples peuvent être longues....patiente
A+
 

YANN-56

XLDnaute Barbatruc
Re : Attendre qu'une autre Application ait fini son boulot, avant d'entamer une autre

Bonsoir Hasco,

J'en étais un peu conscient, mais tu as bigrement raison de me le rappeler.
dis le en étant le plus précis possible.
quand cela devient trop compliqué, c'est pas bon.
Je viens de tester, et effectivement c'est superbe!
D'autant que dans cette version, j'arrive à comprendre pour une bonne part, sinon tout.

Tu as aussi eu l'art d'ajouter la gentillesse et la patience à ta maîtrise de VBA.

Je vais maintenant regarder cette affaire de lieu amenant à "Essayez avec"
Mais avec ton dernier exemple, je devrais bien y arriver.... (Je voulais dire certainement!!!)

Purée! Hasco! Je sais plus comment te remercier.
Si encore tu avais des lacunes dans ce que je sais et que tu ne sais pas!..Pff même pas!

Je te souhaite plein de bonnes choses.

Yann.

P.S. Diantre qu'il y a de gens vachement sympas sur XLD.
 

Statistiques des forums

Discussions
312 305
Messages
2 087 081
Membres
103 457
dernier inscrit
fab2614