Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Macro-commande et arrondi

Audrey R.

XLDnaute Nouveau
Bonjour,

J'ai un fichier Excel avec plusieurs feuilles. La feuil1 contient les données. Puis, à l'aide d'une macro-commande, les données sont réparties spécifiquement, dans 2 autres feuilles.

Exemple

Feuil1 :
Projet 1 - Réparation d'un mur - finance - 500,346$ et Projet 2 - Réparation d'une fenêtre - ressource humaine - 650$
Feuil2 (feuille pour les projets de l'équipe finance) : Projet 1 - Réparation d'un mur - finance - 500$
Feuille3 (feuille pour les projet de l'équipe RH) : Projet 2 - Réparation d'une fenêtre - ressource humaine - 650$

Le problème étant que lors de l'inscription dans la feuille 2 ou 3 ma macro-commande ne prend pas en considération les chiffres après la virgule. Ainsi, si dans la feuil1 il est inscrit 500,346$, ma macro-commande retranscrit 500$, dans la feuil2. Il s'agit évidemment d'un problème d'arrondi, mais je ne sais pas comment régler celui-ci.

Est-ce qu'il y aurait un moyen d'arrondir les chiffres au centièmes. Ainsi, si dans ma feuil1 j'ai 500,346$, j'aurais 500,35$, dans ma feuil2 ?

Merci,
Audrey R.
 
Solution
Bonjour,
A la deuxième étape de chaque Requête, PQ convertit automatiquement les données dans un format qu'il considère comme le plus approprié.
Ainsi, sans changement, voici ce qu'il calcule :

PowerQuery:
= Table.TransformColumnTypes(Source,{{"ID", type text}, {"Modifications", type text}, {"Emplacement", type text}, {"Numéro de projet", Int64.Type}, {"Nom préliminaire du projet", type text}, {"Nom officiel du projet", type text}, {"Catégorie budgétaire", type text}, {"Mesure budgétaire", type text}, {"Estimation préliminaire incluant le 30%", Int64.Type}, {"Coût planifié du projet incluant le 30%", Int64.Type}, {"Statut du projet", type text}})

Tu peux modifier les antépénultièmes et pénultièmes Types (Estimation... et Coût planifié), ici...

Audrey R.

XLDnaute Nouveau
Bonsoir Audrey,
Et on pourrait avoir connaissance de votre macro commande ?
Bonjour,

Tout d'abord, merci pour la réponse rapide.

Le fichier Word contient plusieurs commandes (voir pièce jointe) :

- Les deux premières macros (module 1) permettent de se promener d'une feuille à une autre ;
- La troisième macro (module 2) ;
- La troisième commande correpond à l'une des requêtes Power Query (il s'agit de la requête d'une feuille, mais il y a 5 feuilles avec des requêtes similaires)

Merci,
 

Pièces jointes

  • Macro commande.docx
    12 KB · Affichages: 2

sylvanu

XLDnaute Barbatruc
Supporter XLD
Mettre une macro Excel dans un fichier Word, il fallait y penser.
Surtout que ça aide énormément pour la connaissance du contexte, et pour faire les tests.
Ce qu'on demande c'est un petit fichier test représentatif, et anonyme, présentant le problème de façon à pouvoir tester pour valider la solution proposée.
Une solution non testée est généralement incorrecte au premier coup. Sauf si c'est vraiment simple.
 

Audrey R.

XLDnaute Nouveau
Bonjour,

Je vais joindre à nouveau un document, mais cette fois, il s'agit d'un fichier Excel. Désolée pour le fichier Word.

Dans la feuille '' Base de données '', le coût de l'estimation préliminaire incluant 30% est de 456,49504$ et le coût planifié du projet incluant le 30% est de 839,67290$. Avec Power Query, lorsque les données de ce tableau sont retranscrites dans la feuille '' Enveloppebudgétaire2 '', le coût de l'estimation préliminaire incluant le 30% est arrondi à l'unité pour donner 456,00$ et le coût planifié du projet incluant le 30% est aussi arrondi à l'unité pour donner 840,00$.

Je voudrais que le montant retranscrit soit arrondi à la centième, donc, il serrait 456,50$ et non 450$.
 

Pièces jointes

  • Modèle.xlsm
    128.3 KB · Affichages: 3

Cousinhub

XLDnaute Barbatruc
Inactif
Bonjour,
A la deuxième étape de chaque Requête, PQ convertit automatiquement les données dans un format qu'il considère comme le plus approprié.
Ainsi, sans changement, voici ce qu'il calcule :

PowerQuery:
= Table.TransformColumnTypes(Source,{{"ID", type text}, {"Modifications", type text}, {"Emplacement", type text}, {"Numéro de projet", Int64.Type}, {"Nom préliminaire du projet", type text}, {"Nom officiel du projet", type text}, {"Catégorie budgétaire", type text}, {"Mesure budgétaire", type text}, {"Estimation préliminaire incluant le 30%", Int64.Type}, {"Coût planifié du projet incluant le 30%", Int64.Type}, {"Statut du projet", type text}})

Tu peux modifier les antépénultièmes et pénultièmes Types (Estimation... et Coût planifié), ici convertis en Int64 (soit en nombre entier).
En les typant en "number", tu conserves ainsi le format original :
PowerQuery:
= Table.TransformColumnTypes(Source,{{"ID", type text}, {"Modifications", type text}, {"Emplacement", type text}, {"Numéro de projet", Int64.Type}, {"Nom préliminaire du projet", type text}, {"Nom officiel du projet", type text}, {"Catégorie budgétaire", type text}, {"Mesure budgétaire", type text}, {"Estimation préliminaire incluant le 30%", type number}, {"Coût planifié du projet incluant le 30%", type number}, {"Statut du projet", type text}})

Tu peux le faire directement dans la barre de formules, ou dans l'éditeur avancé.
Bon courage, (et reviens, si tu n'y arrives pas)
 

Audrey R.

XLDnaute Nouveau
Bonjour,

J'ai convertit les données des colonnes ''Catégorie budgétaire'' et '' Mesure budgétaire'' dans un format nombre et le tout fonctionne !

Merci énormément
 

Cousinhub

XLDnaute Barbatruc
Inactif
Bonjour,
Comme je te l'indiquais, PQ transforme automatiquement les données au chargement.
Tu peux modifier ce comportement, et personnellement, c'est ce que j'ai adopté.
En effet, je préfère choisir moi-même le type de données, selon le besoin.
Pour ce faire, dans le ruban "Données", tu cliques sur "Obtenir des données/Options de requête" (tout en bas)
Et dans la fenêtre qui s'ouvre :


"Chargement des données", "Ne jamais...."
Bonne journée
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…