Implementer une formule

Fermé
LéoTaba - 30 déc. 2016 à 09:28
 LéoTaba - 2 janv. 2017 à 07:42
Bonjour,
aujourd'hui ma question concerne l'incrémentation d'une même formule (du genre un SI.ERREUR ...) à plusieurs cellules qui n'ont pas forcément de lien entre elles.

Exemple:
Cellule B1 [MOYENNE(H20:I22)]
Cellule C4 [SOMME(t40:u41)]
Cellule J12 [INDIRECT[$A$1&"!K22]

Et je voudrais rajouter dans ces 3 cellules un SI.ERREUR.
Ma question est donc : peut on mettre ce SI.ERREUR dans les 3 cellules en 1 (ou 2) operations, sans les modifier chacunes d'entres elles une par une (l'exemple est avec 3 cellules, mais en vrai j'en ai 864 ...)
Cordialement, toujours Leo !
A voir également:

1 réponse

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 713
Modifié par gbinforme le 30/12/2016 à 11:43
Bonjour,

je voudrais rajouter dans ces 3 cellules un SI.ERREUR.
Est-ce une bonne idée ?
Il ne me semble pas (Jusqu'à preuve du contraire !) que cette fonction existe.

Si tu as un critère commun sur tes formules mais cela n'as pas l'air d'être le cas, tu pourrais le faire avec "remplacer tout" ou ctrl+h mais il faut que ton remplacement génère une formule valide.
Sinon il te faudrait une procédure en macro à condition que l'on puisse déterminer les cellules à modifier.
Toujours zen
La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer.  Antoine de Saint-Exupéry
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 419
30 déc. 2016 à 16:27
Bonsoir
et salut Gb, termine bien l'année
Je pense comme Gb que le remplacement automatique n'extpossible qu'"avec VBA.
Et donc qu'il faudra sans ça vous "retaper"les 8634 cellules, comme vous avez déjà du le faireune fois (puisqu'il emble que vous ne pouvez pas les copier coller ou les "tirer".
J'interviens donc simplement piur vous éviter une erreur:
le codes SI.ERREURcome vous l'écrivezn'existe pas, à ma connaissance
depuis Excel 2007 il existe le code SIERREUR, mais sans le point:
=SIERREUR(formule;"")
avant 2007, il faut utliser:
=SI(ESTERREUR(formule complète);"";formule complète)

formuel complète s'entend avec ses parenthèses en plus de celles ci dessus
crdlmnt
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 419
Modifié par Vaucluse le 30/12/2016 à 16:53
suite du précédent..

en fait je viens de tester une manip un peu acrobatique, mais qui peut être intèressante pour un nombre important de cellules
en supposant que toutes vos formules n'ont qu'une parenrhèse fermante, , et à la fin (bien sur)

Sélection des cellules,/ touche ctrl et h
  • rechercher entrer le signe =
  • remplacer par inscrire XXX=SIERREUR(
  • remplacer tout

(la formule s'affiche en texte)

revenir à la fenêtre de remplacement
  • rechercher: entrer le signe )
  • remplacer par inscrire: );"")
  • remplacer tout


revenir à la fenêtre de remplacement
  • rechercher: XXX
  • remplacer par: ne rien inscrire
  • et remplacer tout


XXX est proposé pour éviter des interférences avec un texte qui pourrait être présent dans une formule

Ca devrait aller plus vite que de retaper 864 formules

crdlmnt
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 713
30 déc. 2016 à 17:28
Bonsoir Vaucluse et attention c'est demain le réveillon !

dans les 3 cellules en 1 (ou 2) operations
Tu y ais presque arrivé mais en 3 opérations alors que tu avais droit à 1,5 ;-) ;-)

en supposant que toutes vos formules n'ont qu'une parenthèse fermante
Ce ne sont pas les tiennes ni les miennes qui doivent être souvent concernées mais dans l'utilisation standard, ce doit souvent être le cas.
Allez, je relève le défi en 2 opérations :
- dans l'éditeur VBE copier la macro suivante sur la feuille concernée
- la lancer
Public Sub ajout_sierreur()
Dim cel As Range, txt As String
For Each cel In ActiveSheet.UsedRange.SpecialCells(xlCellTypeFormulas)
    txt = cel.FormulaLocal
    cel.FormulaLocal = "=" & "SIERREUR(" & Mid(txt, 2) & ";"""")"
Next cel
End Sub

Il faut bien sûr un excel français sinon il faut traduire mais restons français
0
Ok je vais voir ça. C'était juste histoire de me simplifier la vie, si ca marche pas c'est pas grave. Merci a Vaucluse et gb :)

PS: Oui je voulais parler du SIERREUR()
0