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

Excel Discussion :

Chargement de données depuis Power Query [XL-365]


Sujet :

Excel

  1. #1
    Membre régulier
    Inscrit en
    décembre 2007
    Messages
    203
    Détails du profil
    Informations forums :
    Inscription : décembre 2007
    Messages : 203
    Points : 101
    Points
    101
    Par défaut Chargement de données depuis Power Query
    Bonjour à toutes et à tous,

    j'ai fait une requête sous Power Query (PQ) elle s'exécute (sur SQL Server) en 2 minutes mais lorsque je tente d'actualiser la requête et charger les données sous Excel cela met 15 minutes à s'exécuter pour finalement tomber en erreur.

    Du coup je me demande s'il n'y a pas un paramètre sous Excel à activer/désactiver pour récupérer mes données sous Excel.

    J'ai essayé de le lancer en VBA ou encore manuellement ça n'a pas changé le problème.

    Sous PQ la requête s'exécute correctement.

    J'ai fait des recherches sur internet sans succès.

    Une idée ? Merci.
    Sai

  2. #2
    Membre expérimenté
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    mars 2007
    Messages
    768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur et développeur bureautique
    Secteur : Conseil

    Informations forums :
    Inscription : mars 2007
    Messages : 768
    Points : 1 590
    Points
    1 590
    Par défaut
    Bonjour

    La description est, me semble-t'il, un peu trop succincte pour que l'on puisse apporter un début de réponse fiable.

    Pouvez-vous fournir le code M (c'est à dire copier-coller le contenu de l'éditeur avancé) de votre requête ? Une piste émergera peut-être.

    Bon après-midi

    Pierre Dumas
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Membre régulier
    Inscrit en
    décembre 2007
    Messages
    203
    Détails du profil
    Informations forums :
    Inscription : décembre 2007
    Messages : 203
    Points : 101
    Points
    101
    Par défaut
    Merci pour ton retour.
    Alors voici mon code M remanié pour la publication, la requête est plus complexe mais je pense que l'erreur vient du délai d'exécution qui a expiré.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    let
        Source = Sql.Database(p_server_name, p_database_name, [Query="select * from a left join b on a.1 = b.1"]),
        #"Texte en majuscules" = Table.TransformColumns(Source,{{"Unite", Text.Upper, type text}}),
        #"Type modifié" = Table.TransformColumnTypes(#"Texte en majuscules",{{"DateInfo_CDB", type date}, {"DateDernierAchat", type date}})
    in
        #"Type modifié"
    J'ai essayé en enlevant les étapes qui suivent pour ne laisser que la requête mais le problème est toujours présent.

    Si vous avez une idée
    Sai

  4. #4
    Membre expérimenté
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    mars 2007
    Messages
    768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur et développeur bureautique
    Secteur : Conseil

    Informations forums :
    Inscription : mars 2007
    Messages : 768
    Points : 1 590
    Points
    1 590
    Par défaut
    Bonsoir

    Merci d'avoir prévenu qu'il y avait un post ouvert sur un autre serveur.

    J'ai pu y remarquer que c'est 78Chris qui vous répondait. Les informations sont donc très certainement pertinentes.

    Je ne vois que deux pistes.
    Essayer vraiment de ne pas faire "select *..." mais de ne prendre que les champs réellement nécessaires. Surtout sur des dizaines de milliers de lignes, la différence est souvent visible dans le fait d'avoir quelques champs en moins.
    Dans les propriétés de la requête, essayer "Activer le chargement rapide des données". Pour être complètement honnête, je ne l'ai pas testé. Je viens de faire un tour rapide, mais je n'ai pas trouvé d'aide sur cette fonction. il semblerait que cela soit plus intéressant pour la requête, mais qu'Excel risque d'être plus lent. A tester.

    En espérant que cela aide

    Bonne soirée

    Pierre Dumas
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  5. #5
    Membre régulier
    Inscrit en
    décembre 2007
    Messages
    203
    Détails du profil
    Informations forums :
    Inscription : décembre 2007
    Messages : 203
    Points : 101
    Points
    101
    Par défaut
    Bonjour,

    désolé si je n'ai pas pu répondre avant j'étais en formation.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Essayer vraiment de ne pas faire "select *..."
    J'ai essayé ça ne marche pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    essayer "Activer le chargement rapide des données"
    Ca ne marche pas non plus

    Je vais me faire une raison...

    Merci en tout cas
    Sai

  6. #6
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    février 2010
    Messages
    7 659
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : février 2010
    Messages : 7 659
    Points : 14 685
    Points
    14 685
    Par défaut
    Bonjour

    Je tenterai pour ma part de récupérer par Access par exemple afin de vérifier si le problème vient de PQ ou bien du résultat ou bien du couple serveur/réseau
    Chris
    PowerQuery existe depuis plus de 10 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  7. #7
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    novembre 2003
    Messages
    18 433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 18 433
    Points : 53 439
    Points
    53 439
    Billets dans le blog
    128
    Par défaut
    Salut.

    Ya-t-il des colonnes formulées côté Excel dans le tableau résultant? Si la requête s'exécute en 2 minutes côté sql et fonctionne sous Power Query, c'est que le problème vient d'Excel.

    Peut-être aussi mettre une clause Where pour ramener moins de lignes? Voir mon billet à ce sujet...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    Membre régulier
    Inscrit en
    décembre 2007
    Messages
    203
    Détails du profil
    Informations forums :
    Inscription : décembre 2007
    Messages : 203
    Points : 101
    Points
    101
    Par défaut
    Bonjour à tous,

    Déjà pour vos retours

    Ya-t-il des colonnes formulées côté Excel dans le tableau résultant? Si la requête s'exécute en 2 minutes côté sql et fonctionne sous Power Query, c'est que le problème vient d'Excel.
    Non il n'y a pas de colonnes formulées j'importe le résultat de ma requête et après je fais un tableau croisé dynamique mais je n'ai pas de formule lorsque j'importe le résultat de ma requête.
    J'ai essayé de copier la requête sur un classeur vierge et je n'y arrive pas non plus : j'ai enlevé tous mes paramètres dynamiques et je les ai écrit "en dur" dans la requête mais Excel ne veut pas les importer

    Peut-être aussi mettre une clause Where pour ramener moins de lignes? Voir mon billet à ce sujet...
    Oui ça marche mais en fait la requête fonctionne quand le résultat retourne moins de lignes.

    Je tenterai pour ma part de récupérer par Access par exemple afin de vérifier si le problème vient de PQ ou bien du résultat ou bien du couple serveur/réseau
    J'ai essayé d'exécuter la requête : ça ne marche pas ça ce termine en erreur. ("une requête Pass-through avec la propriété ReturnsRecords ayant la valeur True n'a pas renvoyé d'enregistrements."

    Je peux en conclure que ça vient d'Excel (et d'Access) parce que quand je lance ma requête dans un requêteur et ça tourne correctement.

    Et merci 78chris de me répondre ici

    Sai

    Édit : Access me retourne bien le résultat j'ai splitté la requête en 2 donc j'ai qu'Excel qui me pose problème.

  9. #9
    Membre expérimenté
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    mars 2007
    Messages
    768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur et développeur bureautique
    Secteur : Conseil

    Informations forums :
    Inscription : mars 2007
    Messages : 768
    Points : 1 590
    Points
    1 590
    Par défaut
    Bonjour

    Citation Envoyé par saigon Voir le message
    [...] j'importe le résultat de ma requête et après je fais un tableau croisé dynamique [...]

    Vous pouvez aussi ne pas renvoyer les données dans Excel, mais juste établir la connexion et baser votre TCD dessus.

    Sinon, il est aussi tout à fait possible de récupérer la requête dans Power Pivot et de baser le TCD dessus. Puisqu'il s'agit d'une requête toute prête dans une base de données et qu'il n'y a pas à la retraiter, ce n'est donc pas la peine de passer par Power Query. Power Pivot parait plus adapté.

    En espérant que cela aide.

    Bonne journée

    Pierre Dumas
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  10. #10
    Membre régulier
    Inscrit en
    décembre 2007
    Messages
    203
    Détails du profil
    Informations forums :
    Inscription : décembre 2007
    Messages : 203
    Points : 101
    Points
    101
    Par défaut
    Citation Envoyé par Pierre Dumas Voir le message
    Vous pouvez aussi ne pas renvoyer les données dans Excel, mais juste établir la connexion et baser votre TCD dessus.
    Je ne le savais même pas...

    J'ai réussi à charger mon résultat

    Ma requête contient des tables temporaires et je sais pas pourquoi mais quand PQ les exécute il triple les lignes (si vous avez la réponse )
    Du coup, j'ai isolé mes tables (et ça explique pourquoi Excel n'arrive pas à charger toutes les lignes) pour supprimer les doublons et maintenant ça marche

    Sinon, il est aussi tout à fait possible de récupérer la requête dans Power Pivot et de baser le TCD dessus. Puisqu'il s'agit d'une requête toute prête dans une base de données et qu'il n'y a pas à la retraiter, ce n'est donc pas la peine de passer par Power Query. Power Pivot parait plus adapté.
    Je ne connais pas Power Pivot, je ne sais même pas l'utiliser mais je vais me renseigner dessus

    Enfin ça fonctionne je suis content merci à vous tous

    C'est donc

    Sai

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 01/03/2016, 12h01
  2. Linq to Entity Chargement des données depuis SqlServer 2008
    Par ddneuf dans le forum Entity Framework
    Réponses: 0
    Dernier message: 09/10/2012, 14h18
  3. Réponses: 1
    Dernier message: 10/07/2012, 17h31
  4. chargement de données depuis un fichier texte
    Par mohamida dans le forum Administration
    Réponses: 1
    Dernier message: 07/01/2007, 18h57

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