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

POWER Discussion :

Import de fichier XLS formatés


Sujet :

POWER

  1. #1
    Membre Expert
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    Mars 2007
    Messages
    1 566
    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 : 1 566
    Par défaut Import de fichier XLS formatés
    Bonjour

    Le, vieil, ERP du client ne propose que des exports au format XLS. Les fichiers générés donne des nombres formatés à 2 chiffres après la virgule.
    Or, quand on importe dans Power Query, je n'arrive pas à retrouver les valeurs non formatées.

    Est-ce que vous savez importer des fichiers XLS formatés et dont on veut garder la "vraie" valeur des nombres ?

    Un petit fichier en PJ pour s'essayer : atester vieux excel.xls

    Merci d'avance pour les idées.

    Pierre Dumas

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    Par défaut
    Bonjour,
    Perso, avec 2021, pas de soucis pour l'import
    Après l'étape PromoHead, un typage en Number :
    Nom : Capture d'écran 2024-11-25 120432.png
Affichages : 137
Taille : 14,0 Ko
    Bon appétit

  3. #3
    Membre Expert
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    Mars 2007
    Messages
    1 566
    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 : 1 566
    Par défaut
    Merci pour le retour rapide, mais je n'ai pas été clair à priori.

    Je ne veux justement pas ça car ici il n'y a que 2 chiffres après la virgule. Or, il y en a une dizaine.

    Quand on ouvre le fichier XLS "bêtement", on se rends bien compte qu'il faut remonter les valeurs suivantes :
    a -> 557,411389741965
    z ->133,171709524364
    e ->83,0452875997879

    En espérant avoir été clair explicite sur ma demande

    Pierre Dumas

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    Par défaut
    Re-,
    Ah oui, je n'avais pas bien regardé le xls...
    Désolé
    Bon courage

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    Par défaut
    Re-,
    Je suppose que tu as pris connaissance de cette info
    https://learn.microsoft.com/fr-fr/po...atabase-errors

    pas simple, à priori (à moins de convertir...)

  6. #6
    Membre Expert
    Homme Profil pro
    ingénieur
    Inscrit en
    Mars 2015
    Messages
    1 276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ingénieur
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2015
    Messages : 1 276
    Par défaut
    Bonjour Pierre

    je n'ai pas eu de problème pour récupérer toutes les décimales

    Nom : Capture d'écran 2024-11-25 134241.png
Affichages : 132
Taille : 16,1 Ko

    Stéphane

  7. #7
    Membre Expert
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    Mars 2007
    Messages
    1 566
    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 : 1 566
    Par défaut
    @ mapeh : non je n'avais pas vu. mais mon souci ne se passe pas avec Power BI, mais avec Power Query d'Excel.

    @ Raccourcix : je ne sais pas si c'est une bonne nouvelle Perso, je suis avec Excel 2021 et ma stagiaire est avec Excel 365. Quelle peut être la différence qui fait que cela fonctionne chez toi et pas sur mon poste et celui de ma stagiaire ?

    merci à vous deux d'avoir investigué. Il nous reste à creuser.

    Bonne journée

    Pierre Dumas

  8. #8
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 149
    Billets dans le blog
    53
    Par défaut
    Bonjour Pierre,
    J'ai le même souci.
    Version : Microsoft® Excel® pour Microsoft*365 MSO (Version 2410 Build 16.0.18129.20158) 64 bits
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  9. #9
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 147
    Billets dans le blog
    2
    Par défaut
    Bonjour,
    Oups j'ai relu et en effet, je ne réceptionne que 2 décimales
    Microsoft® Excel® 2021 MSO (Version 2410 Build 16.0.18129.20158) 64 bits

  10. #10
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 147
    Billets dans le blog
    2
    Par défaut
    Re,

    Après conversion du classeur (Onglet Fichier-Informations, Convertir) il y a bien toutes les décimales...

  11. #11
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 157
    Par défaut
    Hello,

    Power Query à un comportement étrange...
    Si on créé une requête DANS le fichier .xls on a toutes les décimales
    Si on créé une requête à partir d'un nouveau fichier on n'a pas toutes les décimales

    Une fois le .xls converti en .xlsx (comme le propose Tototiti2008) on a toutes les décimales

  12. #12
    Membre Expert
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    Mars 2007
    Messages
    1 566
    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 : 1 566
    Par défaut
    Re,

    On est bien d'accord que tous (à part Raccourcix), on ne récupère que 2 décimales quand on ouvre un fichier .XLS depuis un autre classeur.

    J'avais entretemps aussi vu que l'on n'avait pas le souci quand on transforme le .XLS en .XLSX

    Mais ce n'est pas une parfaite bonne idée, car il faut le faire pour chaque fichier qui est exporté chaque jour.

    Il faudrait trouver comment Raccourcix peut directement voir toutes les décimales du premier coup, ou s'il y a un moyen (interne à Power Query) pour arriver à mes fins.

    Merci d'avance

    Pierre

  13. #13
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 147
    Billets dans le blog
    2
    Par défaut
    Re,

    Je sens que l'information ne va pas plaire mais si je passe par Microsoft Query (j'ai dû aller dans les options d'Excel pour pouvoir réactiver la possibilité de l'utiliser) j'ai toutes les décimales
    Si on ne voit plus Microsoft Query :
    Fichier - Options
    Données
    Cocher A partir de Microsoft Query (hérité)

  14. #14
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 147
    Billets dans le blog
    2
    Par défaut
    Re,

    sur base de ça :
    https://learn.microsoft.com/en-us/po...nnectors/excel
    Importer les données avec PowerQuery
    Transformer les données
    Ne garder que l'étape Source et Navigation
    Sur l'étape source, changer les options du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = Excel.Workbook(File.Contents("F:\Toto\atester vieux excel.xls"), null, true)
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = Excel.Workbook(File.Contents("F:\Toto\atester vieux excel.xls"), true, true)
    Cliquer à la fin de la ligne et valider

  15. #15
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    Par défaut Merci Toto
    Re-,
    Merci Toto pour cette trouvaille
    Bonne soirée

  16. #16
    Membre Expert
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    Mars 2007
    Messages
    1 566
    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 : 1 566
    Par défaut
    Bravo tototiti2008

    C'était exactement ça.
    Et il faut effectivement aussi enlever les deux dernières étapes pour la promotion et le type.

    Merci pour le travail présenté.

    Pour info, le lien vers la fonction Excel.Workbook

    Pierre Dumas

  17. #17
    Membre Expert
    Homme Profil pro
    ingénieur
    Inscrit en
    Mars 2015
    Messages
    1 276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ingénieur
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2015
    Messages : 1 276
    Par défaut
    Bonjour
    ce qui est étonnant c'est que j'ai refait exactement la même manip qu'hier en important le même fichier .xls dans un nouveau classeur Excel.
    Et ce matin, je ne vois plus que 2 décimales alors que je n'ai changé aucune option.
    je n'ai pas conservé mon essai d'hier pour regarder quelles étaient les valeurs des paramètres de la fonction Excel.Workbook.

    Stéphane (en version 2408 Build 16.0.17928.20114)

  18. #18
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 147
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    Je suis content d'avoir trouvé, merci pour les retours positifs, mais quand je relis l'aide de Excel.Workbook je ne comprend pas vraiment pourquoi ça fonctionne
    En fait, en bidouillant les options de Excel.Workbook, je me basais sur ça :
    https://learn.microsoft.com/en-us/po...nnectors/excel
    How to fix incorrect dimensions You can fix issues caused by incorrect dimensions by doing one of the following actions:

    • Open and resave the document in Excel. This action will overwrite the incorrect dimensions stored in the file with the correct value.
    • Ensure the tool that generated the Excel file is fixed to output the dimensions correctly.
    • Update your M query to ignore the incorrect dimensions. As of the December 2020 release of Power Query, Excel.Workbook now supports an InferSheetDimensions option. When true, this option will cause the function to ignore the dimensions stored in the Workbook and instead determine them by inspecting the data.
      Here's an example of how to provide this option:
      Excel.Workbook(File.Contents("C:\MyExcelFile.xlsx"), [DelayTypes = true, InferSheetDimensions = true])
    Au départ je voulais modifier InferSheetDimensions mais il n'est pas disponible pour les vieux classeurs
    Donc j'ai voulu me rabattre sur DelayTypes
    Et en relisant l'aide il semble bien qu'en fait j'ai changé UseHeaders
    A la fin on se demande pourquoi ça fonctionne (en tout cas moi)

  19. #19
    Membre Expert
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    Mars 2007
    Messages
    1 566
    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 : 1 566
    Par défaut
    Bonjour tototiti2008

    L'aide qu'il vaut mieux consulter est certainement celle-là.

    Les paramètres sont ceux-là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Excel.Workbook(workbook as binary, optional useHeaders as any, optional delayTypes as nullable logical) as table
    Ce que l'on change, c'est de dire que l'on utilise les en-têtes. Alors que d'habitude, c'est à false.

    En espérant que cela aide

    Pierre Dumas

  20. #20
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 147
    Billets dans le blog
    2
    Par défaut
    Re,

    Oui, c'est bien ce que j'avais compris
    Par contre je ne comprend pas pourquoi il arrive mieux à détecter les types de données en changeant useHeaders (utiliser la ligne 1 comme ligne de titre) plutôt qu'en essayant de changer le comportement sur le typage correct des données delayTypes
    J'imaginais que c'était en essayant les différentes options de delayTypes qu'on pourrait améliorer la façon dont il interprète les données importées
    Mais bon je suppose que parce que la 1ère ligne est du texte ça a un impact léger sur les types aussi, soit

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

Discussions similaires

  1. importer un fichier XLS a une basse de donnee
    Par nadix dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 04/01/2008, 17h03
  2. Réponses: 14
    Dernier message: 19/09/2007, 13h39
  3. [Excel] Remplir fichier .xls formaté
    Par zulot dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 11/06/2007, 12h00
  4. Problème d'importation depuis fichier xls.
    Par penchu dans le forum Windows Forms
    Réponses: 2
    Dernier message: 13/05/2007, 11h42
  5. [Access 2003] Probème d'importation de fichiers XLS
    Par 973thom dans le forum Access
    Réponses: 4
    Dernier message: 06/04/2006, 13h52

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