Centraliser des formules

Bonjour,

Résumé du problème :

L'objectif est de centraliser les formules identiques présentent sur 200 fichiers dans un seul et unique fichier central de sorte que lorsque je modifie ma formule sur mon fichier central, la formule est automatiquement modifier sur les 200 fichiers fils.

La fonction Importrange fonctionne très bien pour importer des données centraliser, mais n'importe pas les formules. Si vous avez compris ma problèmatique, ne lisez pas la suite, si je n'ai pas été assez clair, la suite peut aider.

Mon problème est le suivant.

Je suis actuellement en train de un concevoir à peu près 200 (ce chiffre est amené à augmenter) de feuille de calcul utilisant chacune une base de donnée différente mais utilisant les mêmes formules de calcul.

Mon problème est que lorsque je vois qu'il y a une erreur/bug, je dois corriger l'erreur pour les 200 feuilles qui ont été créée avant la correction du bug.

Exemple :

J'ai 2 feuille, Une feuille A et B

La Feuille A a dans sa base de donnée les formules suivantes :

Cellules Formule Résultat

Cellule A1 = 4 SI(A1+4=2A…;"Vrai";"Faux") Erreur évidemment

Cellule A2 = 4 SI(A2+4=2A…;"Vrai";"Faux") Erreur évidemment

Cellule A2 = 4 SI(A3+4=2A…;"Vrai";"Faux") Erreur évidemment

La Feuille B a dans sa base de donné les mêmes formules que la Feuille A (Qui sont donc fausse), mais des valeurs différentes. Elle utilise donc des VALEURS DIFFERENTES, mais les mêmes FORMULES.

Cellules Formule Résultat

Cellule A1 = 4 SI(A1+4=2A…;"Vrai";"Faux") Erreur évidemment

Cellule A2 = 4 SI(A2+4=2A…;"Vrai";"Faux") Erreur évidemment

Cellule A2 = 4 SI(A3+4=2A…;"Vrai";"Faux") Erreur évidemment

Pour corriger le problème, ce que je fais c'est que :

  • j'ouvre la feuilles A
  • je corrige les formules
  • je fais un copier coller des formules de A sur la feuille B

Comme j'ai plus de 200 feuilles, je dois faire 200 copier coller.

Serait-ce possible de transposer les formules afin que je n'ai qu'à modifier les formules sur un fichier père pour qu'il soit modifier en temps réel sur les fichier fils. Le fonction Importrange n'importe que les données et non les formules d'où la nature de mon problème.

Pour illustrer ça, serait-ce possible d'avoir ça :

Fichier Central :

Cellules Formule Résultat

"Vide" (Formule du fichier central) = SI(A1+4=2A…;"Vrai";"Faux") Erreur évidemment (Car A1 "Vide")

"Vide" (Formule du fichier central) = SI(A2+4=2A…;"Vrai";"Faux") Erreur évidemment (Car A2 "Vide")

"Vide" (Formule du fichier central) = SI(A3+4=2A…;"Vrai";"Faux") Erreur évidemment (Car A3 "Vide")

Feuille A

Cellules Formule Résultat

Cellule A1 = 4 (Formule du fichier central) Erreur car fomule du fichier central fausse

Cellule A2 = 4 (Formule du fichier central) Erreur car fomule du fichier central fausse

Cellule A2 = 4 (Formule du fichier central) Erreur car fomule du fichier central fausse

Feuille B

Cellules Formule Résultat

Cellule A1 = 4 (Formule du fichier central) Erreur car fomule du fichier central fausse

Cellule A2 = 4 (Formule du fichier central) Erreur car fomule du fichier central fausse

Cellule A2 = 4 (Formule du fichier central) Erreur car fomule du fichier central fausse

Correction de la formule sur le fichier centrale

Fichier Central :

Cellules Formule Résultat

"Vide" (Formule du fichier central) = SI(A1+4=2;"Vrai";"Faux") Erreur évidemment (Car A1 "Vide")

"Vide" (Formule du fichier central) = SI(A2+4=2;"Vrai";"Faux") Erreur évidemment (Car A2 "Vide")

"Vide" (Formule du fichier central) = SI(A3+4=2;"Vrai";"Faux") Erreur évidemment (Car A3 "Vide")

Feuille A

Cellules Formule Résultat

Cellule A1 = 4 (Formule du fichier central) = SI(A1+4=2;"Vrai";"Faux") "Faux"

Cellule A2 = 4 (Formule du fichier central) = SI(A2+4=2;"Vrai";"Faux") "Faux"

Cellule A2 = 4 (Formule du fichier central) = SI(A3+4=2;"Vrai";"Faux") "Faux"

Feuille B

Cellules Formule Résultat

Cellule A1 = 4 (Formule du fichier central) = SI(A1+4=2;"Vrai";"Faux") "Faux"

Cellule A2 = 4 (Formule du fichier central) = SI(A2+4=2;"Vrai";"Faux") "Faux"

Cellule A2 = 4 (Formule du fichier central) = SI(A3+4=2;"Vrai";"Faux") "Faux"

Et comme ça je n'ai qu'a corriger la formule sur le fichier central pour que les formules dans les feuilles A et B soient corrects.

Pensez-vous cela possible.

Bonjour,

Avec un peu de recherche j'ai trouvé une solution très efficace avec un peu de VBA (Ce n'est pas mon code VBA mais celui d'un autre que je remercie au passage).

On utilisera 2 formules :

Display Formula ( = Afficher la formule ) : Cette fonction permet d'afficher la formule sous forme de texte contenue dans une cellule.

Exemple :

A1 = ARRONDISUP(9;0)

Displayformula(A1) = ROUNDUP(9;0) (Car c'est en anglais mais ça ne change rien)

Voici le Code VBA :

Function DisplayFormula(cel As Range)

DisplayFormula = cel.Formula

End Function

Cette forme permet d'éxectuer la formule contenue sous forme de texte

Exemple :

A1 contient le texte : "= ARRONDISUP(9;0)"

Evalue(A1) = 9

Evalue ( ou EVALUER ) :

Voici le Code VBA :

Function DisplayFormula(cel As Range)

DisplayFormula = cel.Formula

End Function

Je pense que vous voyez où je veux en venir.

Pour importer nos formule on à une problèmatique principale :

1) Ce n'est pas du texte

2) Même si on le converti en texte, on ne peut pas éxécuter le texte

Mais grâce à Evalue et DisplayFormula on en est capable. Le problème est donc régler.

Imaginons que vous souhaitez connecter 200 fichier à une feuille contenant des formules, vous allez procéder en 2 temps.

Etape 1 : Construction du fichier père

Ici c'est simple, vous faites votre fichier central dans lequel vous mettez vos formules. La seul condition c'est que le fichier doit être standardisé (Le fichier père doit être identique au fichier fils dans sa disposition, donc même nom de feuilles et même disposition des données).

Etape 2 : Traduction des formules en texte du fichier père

Ici c'est extrêmement simple, vous utilisez la fonction DisplayFormula sur toute la plage que vous souhaitez traduire.

Etape 3 : Import les formules au format texte du fichier père au fils

Utilisez la formule Importrange sur googlesheets pour importer les formules au format texte. Faites le dans un onglet séparé, on le nommera ici "Import des formules en texte")

Etape 4 : Exécutez les formules dans le ficher fils grâce à la fonction evaluate

Dernière étape, créer un deuxième onglet qu'on normera "Evaluate" et faites :

=Evaluate("Import des formules en texte ! A1) pour que la formule du fichier père en A1 s'éxécute

Maintenant, dès que vous modifier les formules sur le fichier père, toutes les formules sur les fichiers fils sont automatiquement mis à jour.

Update :

Je n'ai trouvé aucune alternative à la fonction Evaluer,

L'hypothèse que j'ai faite ne fonctionne que sur Excel et non pas sur google sheets.

Si vous avez un lien pour obtenir la fonction evaluer dans google sheets ou une astuce je suis preneur.

Rechercher des sujets similaires à "centraliser formules"