Français / Anglais ? Y en a marre

Bonsoir,

je me suis amusé à télécharger mon application pour Excel 2010 REPLI, le rétro planning de GANTT.

Qu'est ce que je vois ? Il ne fonctionne pas ! Lorsque que je sélectionne une date de fin (ou de début), la macro écrit bien la formule dans la cellule de début (ou de fin) mais elle n'est pas reconnue ! Il me faut entrer dans la cellule pour valider la formule sans modification et là elle est reconnue ! L'erreur est #NOM, ce qui veut dire que SERIE.JOUR.OUVRE.INTL n'est pas reconnu, sauf si on revalide la formule.

Du coup dans VBA j'ai remplacé cette instruction par son équivalent en anglais WORKDAY.INTL et là ô miracle mon fichier fonctionne !

Je teste ce nouveau fichier chez moi et là l'erreur #NOM apparaît... Mince sur ma version d'Excel il me faut l'instruction en français !!!!

Lorsque l'on écrit une fonction dans une cellule à partir de VBA, y a t il un moyen pour qu'elle soit reconnue quelque soit la version d'Excel ?

Voilà ma question, Est-ce une idée du style .formulalocal= ?

@ bientôt

LouReeD

salut lou reed

my taylor is rich ;ça t'aide?

sinon un petit : bull shit

cordialement

Hello !

Normalement tu l'écris en français dans un Excel FR, tu l'ouvres dans un ExcelEN elle sera en anglais. Et vice-versa.

Bonne soirée !

Bonsoir à tous,

Mon avis :

Sans VBA

Lorsqu'une formule est saisie directement dans Excel, elle sera interprétée toujours en Anglais.

Si on ouvre avec un Excel Japonais, la formule est toujours stockée en anglais, mais à l'affichage, on verra du Japonais (non testé )

En VBA

Pour que cela fonctionne, la seule solution est d'utiliser "Formula" et d'écrire la formule en anglais :

Range("C4").Formula = "=WORKDAY.INTL(C2,C3)"

Range("C4").Formula = "=SUM(C2:C3)"

> OK sur poste FR

> a priori OK sur poste EN

Range("C5").Formula = "=SOMME(C2:C3)"

> KO sur poste FR

> a priori KO sur poste EN

Range("C6").FormulaLocal = "=SOMME(C2:C3)"

> OK sur poste FR

> a priori KO sur poste EN

Range("C7").FormulaLocal = "=SUM(C2:C3)"

> KO sur poste FR

> a priori OK sur poste EN

Cf fichier en PJ pour l'exemple.

> A tester sur un poste FR et sur un poste EN

> les résultats 4 & 5 devraient fonctionner quel que soit l'environnement

Bonne soirée

Bouben

Merci à tous pour vos réponses,

a priori mes deux postes sont en français... un 2010 l'autre 2007? Oui je sais SERIE.JOUR.OUVRE.INTL n'existe pas sous 2007, mais le soucis vient de ma version 2010... En effet depuis la mise en téléchargement sur le site, je n'ai pas de retour (en lieu et place du feedback, merci MFerrand ) comme quoi il y avait un problème.

Est-il possible que ma version 2010 soit anglaise avec "skin" français ?

En fait si ce n'est que sur ma version 2010 que le problème existe alors il n'y a pas de problème

Pourriez vous tester l'application et me faire un retour ? Promis je ne prendrais pas en comptes ces différents téléchargement dans mes stats de suivi !!!

@ bientôt

LouReeD

Bonsoir,

Après lancement de l'appli REPLI sur mon poste (environnement Excel 2010 FR), pas de souci lors de la sélection d'une date.

Voilà pour le diagnostic !

Bonne soirée

Bouben

Hi !

What you say ?

.Formula et .FormulaR1C1 veulent les fonctions en anglais. Je suis même étonné que ça passe des fois en franglais

Mais attention, il y a des pièges en plus : les . sont remplacés par des _ en anglais. Donc essaie avec WorkDay_Intl

J'aurais bien testé sur ton fichier mais il faut lire le mode d'emploi... :-s

eric

Edit : j'ai vu pour entrer une date.

Sur 2010 ça passe d'origine. Pareil avec WorkDay_Intl.

Ce qui est amusant c'est que la fonction reste en anglais sur la feuille (!?).

C'est en cohérence avec le franglais qui fonctionne

Ils devaient avoir un pot de départ et n'ont pas eu le temps de finir...

Bonsoir Loureed

bonsoir le forum

je ne possède pas de office 2010... mais un 2013 64bits sur mon ordi pro.....

et j'ai une erreur de compilation.... donc ton fichier n'est pas utilisable avec un office 64Bits.....

capture

fred

Eric,

C'est vrai qu'on voit des choses qui ne devraient pas fonctionner et fonctionnent en VBA, c'est aussi énervant que l'inverse, je trouve !

Il spécifié que FormulaArray doit être codé en R1C1 (et anglais) et on en voit fonctionner en style A1, dans le même registre.

LouReed,

Bouben semble avoir constaté que tout fonctionnait...

Feedback : en français Rétroaction (cultivons-nous ! )

je te laisse skin, simple question d'habillage (temporaire !)

Bye !!


L'erreur sur 64 bits est normale, il faut ajuster les déclarations des fonctions API [Declare PtrSafe... et type LongPtr]

Pour FormulaArray j'avoue n'avoir jamais tenté en A1.Mais je ne m'embête plus.

Je rentre la formule en normal (comme ça j'ai tous les choix entre A1 R1C1 et local ou pas) et je revalide en matriciel dans la foulée avec [A1].FormulaArray = [A1].Formula

Un bon truc ça !

Bonjour,

ci joint les deux fichiers avec les formules en anglais :

Pouvez vous me dire si cela fonctionne chez vous, merci.

Pour la compatibilité 64 bits j'ai fait comme sur APACHES et comme l'a précisé MFerrand... Ai-je réussie ?

J'ai essayé également le Formula Array = Formula, cela m'a bien mis en {} la formule mais il a fallu que je rentre dans la cellule afin de valider la formule pour qu'Excel la prenne en compte....

@ bientôt

LouReeD

Bonjour,

sur mon 2010 tout s'inscrit sans que j'ai besoin de revalider quoique ce soit.

Double-clic en D14, choix d'une date et d'une durée et validation. C'est une autre manip qu'il faut tester ?

Pour le .FormulaArray c'était un aparté sans lien avec ton fichier.

eric

PS: mais pourquoi mettre la formule et non le résultat final ?

Bonjour eriiic,

pour le PS c'est uniquement si la ligne choisi doit prendre en compte ou pas les jours fériés et les jours chômés du coup il faut que la cellule soit "variable" en fonction du choix de la colonne I soit VRAI soit FAUX...

Merci pour les tests mais pouvez vous me dire le "texte" de la cellule avec formule ?

Car chez moi la version 2007 me donne la version française de WORKDAY = SERIE.JOUR.OUVRE, mais sur celle de 2010 c'est la version anglaise de la formule qui est affichée dans la cellule !

C'est à ce niveau aussi que je perd mon allemand ...

Pour ce qui est du fonctionnement : https://www.excel-pratique.com/fr/telechargements/plannings/retro-planning-excel-no271.php

@ bientôt

LouReeD

Bonjour à tous,

Pour gérer les différents cas, il existe des directives de compilation conditionnelle.

Ex :

  • si Win32 (32 bits) alors ... sinon ...
  • si version Excel = ...
  • etc

Lors de l'exécution, VBA traite uniquement les lignes correspondant au cas. Le compilateur ignore les autres lignes. Cela résout le problème indiqué hier soir par fred2406 (lignes en rouges qui ne peuvent pas être interprétées et bloquent du coup toute l'exécution).

Pour vérifier les développements, il faut ensuite valider dans chaque environnement.

Syntaxe : symbole # en début de ligne :

#If Win64 Then
    Public Declare PtrSafe Function GetDC Lib "USER32" (ByVal hWnd As LongPtr) As LongPtr
    Public Declare PtrSafe Function GetDeviceCaps Lib "gdi32" (ByVal hDC As LongPtr, ByVal nIndex As Long) As Long
#Else
    Public Declare Function GetDC Lib "USER32" (ByVal hWnd As Long) As Long
    Public Declare Function GetDeviceCaps Lib "gdi32" (ByVal hDC As Long, ByVal nIndex As Long) As Long
#End If

cf exemple en PJ à tester.

2 liens intéressants :

> http://docvb.free.fr/api.php

> http://www.jkp-ads.com/articles/apideclarations.asp

Bonne journée

Bouben

Chez moi la fonction apparaissait en français.

pour le PS c'est uniquement si la ligne choisi doit prendre en compte ou pas les jours fériés et les jours chômés du coup il faut que la cellule soit "variable" en fonction du choix de la colonne I soit VRAI soit FAUX...

Ca peut se faire en double-cliquant sur une date et en modifiant la case à cocher, c'est par là que je passait instinctivement avant que de voir la colonne vrai/faux (qui pourrait disparaitre). D'ailleurs je l'aurais mise pré-cochée, ça doit être le choix le plus courant je pense

@ bouben :

En somme vous me dites de rajouter sur les derniers fichiers mis en téléchargement sur ce post la condition du Win 64 ?

Ok je vais le rajouter, merci.

C'est le genre de truc qui me dépasse !!!! Pour moi un Excel c'est un Excel et Win c'est un Win !!! En somme NOUS sommes asservis par l'informatique alors que ce devrait être l'inverse !!!

Une question : vu les différents système à l'heure actuelle, entre Excel 2003 et - et 2007 et +, win 32 et win 64 voir des win 16, faut-il prévoir ces lignes de codes sur toutes les applications ou seulement celles qui font appel à USER ?

Il faudrait que je rajoute le test win32 sur Apaches alors ?

@ ériiic :

En fait je crois (et j'en suis sur) il faut que je mette la coche d'origine car c'est certainement le cas le plus fréquent. Mais mon idée à l'origine était de garder la possibilité de "l'enlever" afin que sur une tâche "en retard" on pisse passer en mode "travaillant le weekend et jours fériés" afin de voir ce que cela peut donner pour rattraper ce dit retard.... D'où la formule et d'où le problème français anglais...

Il est vrai que la colonne pourrait disparaître, mais comme je l'ai dit déjà au sujet de mon application de suivi de compte, je trouve que quelque fois les USF "alourdissent" l'utilisation d'une application : dans ce cas précis, un double clic pour ouvrir le USF, un clic sur la boite à cocher et un clic sur [OK], trois actions et 4 clics, alors qu'avec la colonne VRAI / FAUX, deux clics... Ce n'est pas grand chose mais en plus il y a moins de "kilomètre" à faire car la souris est déjà sur la cellule, elle n'a pas à naviguer sur l'écran.

Voilà le pourquoi du comment.

Une question pour "tous" : le USF se met-il en dessous de la cellule cliquée ?

@ bientôt

LouReeD

Bonsoir,

Il y a plusieurs axes possibles (par ordre de complexité) :

1- Indiquer les pré-requis dans la documentation :

Cette application a été réalisée en environnement Windows xx, Excel 20xx, etc

En cas d’utilisation dans un autre environnement, le fonctionnement n’est pas garanti, etc

2- Tester à l’ouverture du fichier l’environnement de l’utilisateur (version d’Excel, version de Windows, …)

> Afficher un message si non compatible

> Eventuellement fermer l’application

3- Gérer tous les cas, effectivement

Chaque outil informatique fonctionne sur un ou plusieurs socle(s) technique(s). En général, la compatibilité ascendante est assurée, mais avec des limites. Au bout d’un certain temps, Microsoft n’assure plus la maintenance des outils trop anciens.

Les progrès vont tellement vite dans l’informatique, qu’on ne pourrait plus faire tourner n’importe quelle application actuelle sur un PC d’il y a 20 ans. Mais on ne fait plus la même chose aujourd’hui qu’il y a 20 ans. Une simple illustration dans le domaine des jeux vidéo : http://gamopat.com/page-531838.html

Aujourd’hui, on peut considérer que la version 2003 d’Excel est obsolète. Plus personne ne l’utilise, et si c’est le cas, eh bien tant pis ! De même que les disquettes ont disparu, les lecteurs de disquette avec, et plus aucune application ne tournerait sous Windows 95.

Dans le milieu professionnel, les équipes informatiques font de la veille technologie, avec régulièrement des projets de migration (Windows WP -> Windows 7 -> etc, Excel 2003 -> Excel 2007 –> etc).

Sans ça, nombreux informaticiens seraient chômeurs !

Pour conclure, dans le cadre de ce forum, les outils proposés restent faits pour un nombre réduit d’utilisateurs, fonctionnant sous un socle technologique bien précis. Nous n’avons pas les obligations des éditeurs de logiciels professionnels !

Bonne soirée

Bouben

Bonsoir,

suite proposition MFerrand, puis code de bouben, voici ci dessous la version 2010 qui vient d'être tester sut Excel 2013 avec ordi 64 bit et il tourne... Message pour fred2406 (j'attend le teste de votre coté )

La version 2007 intègre également ces lignes de code :

Ces version corrige une erreur au niveau de la formule : le +1 ou le -1 a été déplacé afin d'être pris dans le calcul des jour fériés et chômés pour qu'il puisse lui aussi être décalé en fonction du cas...

Les versions proposées en téléchargement vont elles aussi être modifiées.

Pour ce que vous avez dit bouben, je suis d'accord avec vous, il faut savoir tourner la page, mais je trouve qu'il est dommageable que ce soit à nous humain d'adapter nos applications à l'évolution du matériel ou au type de système utiliser pour qu'elles fonctionnent !

Ca me rappel les incompatibilité de fonctionnement entre IE et Firefox et d'autre à l'époque où je faisais un site internet "multi -Navigateur".

Avec la technologie et la puissance des ordinateurs (de l'époque) c'était encore à nous de faire en sorte qu'un site avec présentation de photos sache sur quelle machine il est ouvert afin d'adapter la présentation !!!! Mais bon à priori on est obligés d'en passer par là...

Je passe le post en résolu. Merci @ tous

@ bientôt

LouReeD

bonjour a tous et toutes

LouReeed

je n'ai eu aucun souci avec les 2 versions, mais juste une question dans la version 2010 est ce normal que le "option explicit" soit en dessous des directives de compilation conditionnelle

Rechercher des sujets similaires à "francais anglais marre"