Message d'erreur d'Excel sur des requêtes Web parfairement correctes

Arbiel Messages postés 8 Date d'inscription jeudi 2 octobre 2008 Statut Membre Dernière intervention 27 juillet 2017 - 2 oct. 2008 à 18:43
Arbiel Messages postés 8 Date d'inscription jeudi 2 octobre 2008 Statut Membre Dernière intervention 27 juillet 2017 - 29 déc. 2008 à 19:33
Bonjour


A la recherche d'aide sur la programmation en VBA pour Excel, je viens
de m'inscrire sur ce forum. Je ne suis pas certain d'inclure le présent message au bon endroit. Je fais confiance aux modérateurs pour le déplacer si besoin est.

J'essaie d'accéder par une macro Excel à une base de données disponible par des pages Web. Cette base contient des noms de sociétés et des informations complémentaires. Les pages Web regroupent ces information par département. J'ai stockées toutes les URL dans une feuille de calcul. Lorsque je passe par le navigateur, Firefox ou Internet Explorer, les pages sont lues sans aucune difficulté.

Le principe de ma macro est le suivant :
je crée un nouveau  classeur avec une seule feuille de calcul qui sert à la mémorisation des informations collectées
je boucle sur la liste des URL
<li>création d'une nouvelle feuille</li><li>ajout d'une requête "Querytable"</li><li>        With Ws.QueryTables.Add(Connection:=Connection, Destination:=Destination)
</li><li>initialisation des paramètres (obtenue par enregistrement automatique)</li><li>            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = True
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .BackgroundQuery = True
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = False
            .RefreshPeriod = 0
            .WebSelectionType = xlAllTables
            .WebFormatting = xlWebFormattingNone
            .WebPreFormattedTextToColumns = True
            .WebConsecutiveDelimitersAsOne = True
            .WebSingleBlockTextImport = False
            .WebDisableDateRecognition = False
</li><li>après avoir constaté que les requêtes ne sont pas toujours satisfaites</li><li>            On Error Resume Next
</li><li>appel de la page</li><li>.Refresh BackgroundQuery:=False</li>J'ai constaté ici le déclenchement d'une ereur qui s'est avérée aléatoire ; je veux dire par là que, pour une même URL, le fonctionnement n'est pas constant : la requête peut fonctionner ou peut au contraire provoquer une erreur 1004 "Fichier inaccessible. Essayez une des opérations suivantes " puis la description des opérations correctives possibles.

Lorsque la requête fonctionne je recherche les informations dans la page et je le mémorise, puis je supprime l'onglet, après avoir pris soin de supprimer les messages d'alerte d'Excel.

Compte tenu du caractère aléatoire du fonctionnement de la requête, je mémorise au niveau de chaque URL si la requête a été fructueuse ou non, et je boucle tant que des requêtes sont restées infructueuses et en limitant le nombre d'exécutions.

Pour compléter, je dois dire que ce fonctionnement aléatoire ne semble pas lié à ma programmation. J'obtiens le même résultat, lui aussi aléatoire, en créant une requête Web dans une feuille Excel avec les URL que j'ai mémorisées. De même, ce comportement ne dépend de mon navigateur par défaut. J'ai essayé avec Firefox, puis avec Internet Explorer : mêmes résutats.

Compte tenu de ces difficultés, je cherche
<li>des informations sur la manière de procéder pour résoudre le problème sous Excel (je ne connais pas les autres langages de programmations</li><li>ou une aide pour le portage de ma macre dans OpenOffice (les quelques tests effectuées avec Calc ont donné un résultat positif, mais, par ailleurs, je ne fais que débuter dans la programmation de Visual Basic dans Calc et je suis bien incapable ne serait-ce que calculer l'adresse d'une cellule variable)
</li>Merci d'avance à qui voudra bien m'éclairer de ses lumières

Arbiel

3 réponses

Arbiel Messages postés 8 Date d'inscription jeudi 2 octobre 2008 Statut Membre Dernière intervention 27 juillet 2017
3 oct. 2008 à 18:52
Bonsoir

J'ai testé ma macro avec Excel 2003. Il n'y a plus de problème. Un bug d'Excel 2000 ?

Arbiel
0
cs_dicesare Messages postés 1 Date d'inscription mardi 28 mars 2006 Statut Membre Dernière intervention 23 décembre 2008
23 déc. 2008 à 11:30
Bonjour,

J'ai très exactement le même problème mais je suis déjà sous excel 2003!
Les pages web que je viens interpréter sont sur le réseau local.

Je pensais avoir contourné le problème (comme toi) en gérant les erreurs excel et en relançant l'actualisation de la web query mais aujourd'hui, le problème aléatoire dépasse tout ce que j'avais vu jusqu'à présent : même après 10 tentatives, la requête la plus lourde ne s'affiche pas ! (mais j'ai eu 1 cas ce matin où ca a bien marché).

A noter que quand je fais "modifier la requête", la page s'affiche bien (quoi que pas très rapide, ca approche les 4-5 secondes pour l'affichage du début de la page puis encore 1 à 2 secondes pour l'affichage complet et en particulier du tableau qui contient les données). Donc en faisant "modifier la requête", je n'ai jamais d'erreur mais par contre quand je valide, l'erreur peut arriver après.
Je pense que les mécanismes utilisés pour modifier la requête et pour actualiser les données sont différents.

Au début je pensais que cela pouvait être dû à la charge du réseau local (qui me semble assez chargé d'habitude) mais pourtant aujourd'hui avec les fêtes et tous les gens qui sont en congés, le réseau local ne me semble pas saturé et le problème atteint des sommets !

Est ce que quelqu'un peut m'aider? Est ce qu'il y aurait un réglage dans excel ou ailleurs ?

Merci beaucoup !
0
Arbiel Messages postés 8 Date d'inscription jeudi 2 octobre 2008 Statut Membre Dernière intervention 27 juillet 2017
29 déc. 2008 à 19:33
Bonsoir

J'ai contourné le problème
Depuis début octobre, j'ai progressé, sans pour autant revenir sur le forum pour faire part de mes constats. J'ai finalement réussi à contourner le problème dans la grande majorité des cas. J'ai remplacé les quelques appels restés infructueux par des appels et une recopie manuels des informations.
Excel 2003 ne résoud effectivement pas le problème
Tout d'abord, contrairement à ce que j'ai écrit le 3 octobre, les erreurs ne sont pas liées à Excel 2000. Les premiers tests avec Excel 2003 m'ont paru concluants, mais les erreurs constatées avec Excel 2000 sont rapidement réapparues avec Excel 2003.
La solution que j'ai mise en place
Compte tenu d'une part du message d'erreur qui s'apparente plus à Windows qu'à Excel, et d'autre part du fait que les appels que je faisais au serveur Web contenaient des "?" marquant les fins de ligne, j'ai remplacés ces "?" par des retours de chariot (car(10) si je me souviens bien). Les URL ansi modifiées n'ont plus été bloquées (sur plus de 1 600 requêtes je n'ai finalement eu plus que 3 erreurs) et le serveur Web a correctement interprété les retours de chariot.
Il n'est cependant pas évident que tous les serveurs Web réagissent de la même manière.

Bonne chance, et merci de m'informer si cette modification donne satisfaction.

Bonne année 2009

Arbiel
0
Rejoignez-nous