Ouvrir un fichier CSV avec des formules et en afficher les résultats

Résolu/Fermé
_Ritchi_ Messages postés 21210 Date d'inscription samedi 17 mars 2007 Statut Contributeur Dernière intervention 20 avril 2024 - 12 avril 2020 à 13:17
_Ritchi_ Messages postés 21210 Date d'inscription samedi 17 mars 2007 Statut Contributeur Dernière intervention 20 avril 2024 - 12 avril 2020 à 15:38
Bonjour,

En ce moment je développe un outil Python 27 pour exploiter des données au format CSV.
Cet outil part d'un fichier source .csv, en exploite les données et crée un fichier résultat .csv.

Dans ce fichier résultat .csv, je dois mettre aux bons endroits des valeurs mais aussi des formules de calcul Excel qui seront appliquées lors de l'ouverture du fichier sous Excel.

Jusqu'à hier, je développais mon script Python sur mon iMac mid2007 et j'étais très content car quand j'ouvrais le fichier résultat.csv avec mon Excel version Mac 2011 14.7.3, tout était nickel: les valeurs étaient aux bons endroits et les calculs faits par mes formules étaient exacts, ... bref j'étais heureux.

Seulement, mon outil Python doit surtout marcher sur Windows 10 et Excel.
Donc ce matin, j'ai pris un PC Windows 10 avec Excel 2019 v16.0.12624.20348 64bits, j'ai lancé mon outil Python qui a bien généré le fichier résultat .csv.
Quand je le compare à celui obtenu sur mon iMac, il n'y a aucune différence.

Quand j'ouvre ce fichier résultat .csv avec Excel, alors partout où il y a des formules, j'ai "#NOM?"

Quand je clique sur une cellule ayant cette erreur, je vois "Erreur due à un nom non valide".
Pourtant la formule qui s'affiche me semble tout à fait correcte:
=SI(OU(G3<>"";H3<>"";I3<>"";K3<>"";M3<>"";N3<>"";U3<>"";V3<>"";W3<>"";X3<>"");1;0)

Point intéressant:
- Si je clique sur une de ces cellules "#NOM?", la formule s'affiche dans la zone adéquate.

- Si je clique dans la zone où la formule s'affiche, les cellules impliquées dans la formule se colorisent dans la feuille Excel et ce sont les bonnes cellules.

- Si je fais alors un retour chariot dans cette zone d'affichage de la formule, alors l'erreur "#NOM?" disparaît de la cellule pour faire place à la valeur calculée et tant espérée !!


Pourquoi Excel ne l'a-t-il pas fait avant ?

Sachant qu'il y a des centaines de cellules "#NOM?" dans mon fichier, je me vois mal appliquer la recette sur chaque cellule.

Quelqu'un saurait-il me décoincer ?
Merci de m'avoir lu jusqu'au bout,
Ritchi


Configuration: Windows 10 / Excel Pro 2019
A voir également:

2 réponses

Aliboron Martin Messages postés 3440 Date d'inscription samedi 1 janvier 2011 Statut Contributeur Dernière intervention 18 avril 2024 927
12 avril 2020 à 15:00
Pour avoir eu le fichier entre les mains (virtuelles, bien sûr), j'ai pu constater que, dans la version pour Windows 16.0.11929.20618 64 bits l'ouverture du CSV se passe normalement et les formules sont correctement interprétées.

Par contre, dans la version 2019 pour Mac, les formules ne sont pas interprétées, comme dans la version 16.0.12624 pour Windows évoquée ci-dessus. Mais si, dans le CSV on les met dans leur forme US (=IF(OR(...)) elles sont traduites et correctement interprétées.

Changement d'orientation ? Bug (donc provisoire) de localisation ? Difficile de savoir. Il serait utile de le signaler aux aux équipes produit via le bouton "smiley", à droite de la barre d'outils pour la version 2019 sur Mac ou en haut à droite dans la page "Fichier" de la version pour Windows...

1
_Ritchi_ Messages postés 21210 Date d'inscription samedi 17 mars 2007 Statut Contributeur Dernière intervention 20 avril 2024 6 058
12 avril 2020 à 15:38
Bonjour,
Excellente initiative que d'avoir proposé cette mise en langue de Shakespeare les formules présentes dans mon fichier .csv : cela a parfaitement corrigé mon souci dans Excel Pro 2019.
Je vais donc modifier mon script Python pour qu'il crée les formules en version outre-manche ou plutôt en version outre-atlantique.
Un grand "MERCI !!!" pour cette brillante idée.
Ritchi
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
Modifié le 12 avril 2020 à 14:09
Bonjour,

EDIT : Essaies :
Dim r As Range

  Set r = ActiveSheet.Range("a1").CurrentRegion
  r.Replace "=", "="



0
_Ritchi_ Messages postés 21210 Date d'inscription samedi 17 mars 2007 Statut Contributeur Dernière intervention 20 avril 2024 6 058
12 avril 2020 à 15:11
Bonjour Patrice,
Merci de cette proposition, mais je ne peux pas la mettre en place dans un fichier .csv
Ritchi
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775 > _Ritchi_ Messages postés 21210 Date d'inscription samedi 17 mars 2007 Statut Contributeur Dernière intervention 20 avril 2024
12 avril 2020 à 15:29
Le problème ne situe pas dans le fichier csv mais dans Excel.

Ceci dit, un fichier csv est un fichier texte, il n'est pas prévu pour contenir des formules, il me paraît logique qu'Excel n'interprète pas les formules : il ne devrait jamais le faire, mais Excel et les csv c'est une très vieille histoire d'anomalies d'interprétation.
0