Converssion formule ANGLAIS=> FR

Bonjour @ toutes et tous.

En PJ un fichiers sur lequel j'ai une formule en ANGLAIS (DAYS) en Q6 à 14 et Q21 à 25

Cette formules fait planter l'ensemble de la feuille de calcul me mettant des #NOM un peu partout.

Lorsque je change manuellement DAYS en JOURS, tout refonctionne...

MAIS, le pbl c'est que j'ai un tas de feuille comme cela à corriger...

J'ai chercher vainement, mais n'ai pas trouver comment traiter cela "rapidement" en changeant un paramèttre de la feuille??

Helpp

Merci d'avance de votre précieuse aide.

Belle journée

Téva

Bonjour,

D'origine, les sierreur() sont en anglais ?

parce que excel adapte en français les formules anglaises.

En attendant d'autres réponses ....

Tu sélectionnes ta feuille et tu fais remplacer days par jours.

Rapide et pas fatiguant.

Crdlmt

Bonjour,

Il te suffit d'exécuter cette macro pour mettre à jour toutes tes feuilles

Sub correction()

    Dim sh As Worksheet

    For Each sh In Worksheets
        sh.Cells.Replace "DAYS", "JOURS"
    Next sh

End Sub

Merci beaucoup, par contre excuser moi je suis un peu "novice".

Mes "feuilles" sont en fait sur des onglets différents, est ce que la macro fonctionnera aussi pour tout les onglets? ou bien dois je au préalable créer une feuille de calcul distincte par onglet?

et question peut être encore plus bête (mais je devrais trouver sur le forum peut être ) : où est ce que je rentre cette macro?

Merci en tous cas !

Téva

Mes "feuilles" sont en fait sur des onglets différent

Qu'appelez-vous "onglets" ? car a priori le terme "onglets" est couramment employé pour désigner également les feuilles, bien que ce terme ait un sens plus général.

où est ce que je rentre cette macro?

menu Développeur --> Visual Basic --> Insertion module

Pour exécuter la macro

menu Développeur --> Visual Basic --> Macros

ci-joint fichier

salut Thev,

pour moi, c'est ok, car tu as mis For Each sh In Worksheets ➯ pour toutes les feuilles (ce que beaucoup appellent des onglets, alors que c'est pourtant pas la même chose !)

@Téva : sheet = feuille ; et sh est un nom de variable pour sheet, justement ; en VBA, onglet = Tab, pas Sheet, ni Worksheet

dhany

Merciiii ça fonctionne… presque

ça me change bien l'intitulé (dans tous les onglets de ma feuille)

MAIS : par contre ça ne me calcul pas ? => je suis obligé de rentrer dans la cellule puis faire ENTRER pour que ça calcul correctement?

J'ai fermé et réouvert le fichiers, mais pas mieux...

que devrais je faire pour que le calcul se fasse dans toutes les cellules sans avoir à les valider une à une?

Merciiiii en tous cas de votre aide c'est super

Téva

Bonjour Téva,

vérifie cette option d'Excel (mais c'est selon ma version 2007) :

calcul automatique

dhany

mince, oui, c'est bien en automatique… j'ai essayer de basculer en manuel puis remis en automatique… mais pas de changement…

il faut que je rentre dans la barre de formule pour que ça fonctionne…

alors vérifie que tes cellules n'ont pas le format Texte mais un autre : Standard, numérique...

mes Cellules sont en format "nombre"

alors envoie ton fichier ; j'essayerai d'trouver une solution.

dhany

Merci beaucoup !!

voici le fichiers en PJ.

c'est en colonne Q (6 à 14 et 21 à 25

Téva

je te retourne ton fichier modifié :

en Q6, ta formule était celle-ci : =JOURS(M6;L6) ➯ erreur : #NOM?

c'est sur Excel 2007, mais c'est p't'être une nouvelle fonction d'Excel 2016 ?

j'parle bien de JOURS() et pas de JOUR()

j'ai remplacé la formule par : =SI(OU(M6="";L6="");0;M6-L6)

(tirée vers le bas jusqu'en Q14) ; format Standard pour Q6:Q14


regarde aussi tes nouvelles formules en Q21:Q25 ; c'est pas plus simple ?

format Standard pour Q21:Q25

dhany

Hello

Merci effectivement pour Q21:25 c'est + simple

Par contre, pour le reste, malheureusement ça ne va pas m'aider beaucoup puisque initialement mes fichiers et onglet ont tous la fonction

DAYS() pour lequel thev m'a proposé une macro permettant de remettre en JOURS()

La macro fonctionne, et la formule aussi d'ailleurs, mais je dois la valider manuellement pour avoir mon résultat

ok, dans c'cas, j'te laisse voir la suite avec Thev.

bonne chance !

dhany

Bonjour Teva,

En fait la bonne solution n'est pas de changer "DAYS" en "JOURS" mais de procéder à un recalcul avec le code suivant :

(toutes les fonctions en anglais sont recalculées et transformées en français)

Sub recalcul()

    Dim sh As Worksheet, cell As Range

    On Error Resume Next
    For Each sh In Worksheets
        For Each cell In sh.Cells.SpecialCells(xlCellTypeFormulas)
            cell.Formula = cell.Formula
        Next cell
    Next sh

End Sub

Donc remettre ton classeur à l'état initial comportant les formules avec "DAYS".

ci-joint donc fichier avec la nouvelle macro.

Re,

C'est pas rien le VBA !

alors qu'il suffit de selectionner toutes les feuilles concernées et de faire remplacer days par jours.

Crdlmt

@Thev

sur mon Excel 2007, j'ai JOUR() et pas JOURS() ; mais même si c'est une nouvelle fonction d'Excel 2013, qu'est-ce qu'elle apporte de plus par rapport à cette simple soustraction de jours : =M6-L6

ou c'est peut-être un raccourci de DATEDIFF() avec 2ème argument "j" ?

dhany

alors qu'il suffit de selectionner toutes les feuilles concernées et de faire remplacer days par jours.

Pas seulement. Il faut sélectionner les cellules une par une et appuyer sur Entrée pour effectuer le recalcul.

Rechercher des sujets similaires à "converssion formule anglais"