QueryTables.Add passage Excel 2007 à 2016
Bonjour à tous,
Je suis bien ennuyé car après plusieurs journées de code sous XL2007 je pensais avoir fini le boulot.
Les simulations se passaient bien
Concrètement : j'effectue une requête Web sur Google Maps API, que je récupère en format JSON pour ensuite en extraire des infos telles que les distances et le temps de trajet.
- Sous 2007, pas de soucis pour faire des calculs de trajets complexes.
- Par contre dès que je passe à XL2016 j'ai droit à un magnifique "Excel a cessé de fonctionner" sans aucune autre explication.
J'ai exécuté plusieurs fois mon code en pas à pas, et XL s'arrête à QueryTables.Add dès que la requête devient trop complexe (plus de 2 points de passage).
Voici les lignes de code qui sont devenues mon némésis
requeteGMAPS = "https://maps.googleapis.com/maps/api/directions/json?&origin=48.845274%2C2.316012&destination=48.858391%2C2.294426&waypoints=optimize:false%7C48.880973%2C2.333393%7C48.902982%2C2.376308%7C48.925545%2C2.328587%7C48.882554%2C2.352791%7C48.89339%2C2.273312%7C48.873861%2C2.294941%7C48.871829%2C2.342148%7C48.871151%2C2.38472%7C&mode=driving"
With Worksheets("Feuil1").QueryTables.Add(Connection:="URL;" & requeteGMAPS, Destination:=Worksheets("Feuil1").Cells(1, 35))
.Name = "RequeteGoogleMaps"
.BackgroundQuery = True
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.Refresh BackgroundQuery:=False
End WithAvez-vous une idée de ce à quoi ça peut être dû ?
J'avais pensé à l'url de la requête mais si j'y arrive avec 2007, alors pourquoi pas sous 2016 ? (et l'URL fonctionne bien...vous pouvez essayer)
Merci pour vos retours !
Vincent
J'ai exactement le même problème,
la requête fonctionne très bien sous excel 2003 par contre sous Excel 2016 cela provoque une erreur et relance le programme excel sans plus d'information.
peut -être que le nombre d'information en retour est trop grand, en faisant une requête renvoyant que peu de ligne cela fonctionne bien dès que le nombre de ligne dépasse une valeur cela plante.
si vous avez une solution, je suis preneur.
cordialement.
Bonjour Vincent, yoyo63,
Je n'ai pas de solution mais peut-être une piste : je sais que PowerQuery a été intégré à Excel 2016, donc il se pourrait que le code VBA d'avant doive être modifié pour utiliser ce PowerQuery interne et plus le PowerQuery externe ; il y a peut-être des instructions VBA spécifiques à utiliser ? peut-être qu'il faut simplement enlever la référence au PowerQuery externe (macros complémentaires) ? car c'est peut-être une interférence entre les 2 PowerQuery qui aboutit à : "Excel a cessé de fonctionner" ? bonne chance !
dhany
Bonjour,
Pourrais-tu préciser ce que tu souhaites avec un fichier ?
Tu peux regarder ce sujet :
https://forum.excel-pratique.com/viewtopic.php?f=2&t=107051
Cdlt.
Bonjour Jean-Eric,
J'ai enfin réussi à résoudre mon problème.
1°) passer à office 365 (plus trop le choix)
2°) attaquer PowerQuery....
Au final j'ai fait à l'ancienne : enregistrer macro, modifier la source (l'icone rouages dans PowerQuery) -> convertir en texte
Et j'obtiens après 20 lignes de code ce que j'obtenais avant en seulement 5...
Je suis assez surpris par PowerQuery au final, c'est plus complexe qu'avant...
Merci en tout cas pour ta réponse !
Bonjour Vincent,
Tu a écrit :J'ai enfin réussi à résoudre mon problème.
J'en suis positivement ravi !
(ça pourra servir à tous ceux qui ont le même problème que le tien)
Tu a écrit :J'obtiens après 20 lignes de code ce que j'obtenais avant en seulement 5...
Je suis assez surpris par PowerQuery au final, c'est plus complexe qu'avant...
C'est bien d'la part de Microsoft, ça, de détruire les avantages des versions précédentes !
La société Microsoft du début des années 80 qui cherchait à faire de bons logiciels, y réussissait, et pouvait en être fière (même si certaines de ses œuvres étaient basées sur le développement d'autres personnes ; exemple : le QDOS racheté à Tim Paterson), est devenue un horrible monstre capitalistique du consumérisme moderne à tout prix !
dhany