Implementer une formule

LéoTaba -  
 LéoTaba -
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 !

1 réponse

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
    1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      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
    2. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      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
    3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      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
    4. LéoTaba
       
      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