Masquer erreur #VALEUR avec macro VBA

charles -  
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour,

Je cherche à modifier les formules de ma feuille excel ou de ma selection de cette manière :

Ex: Si C4= B2/A1 et je voudrai avoir dans C4 plutot quelque chose comme C4= SI(ERREUR(B2/A1), "NA" , B2/A1) à la place
de manière à masquer les erreurs mais tout en gardant la formule.

et je voudrai effectuer la modification automatiquement sur ma selection. Comment faire?

For each c in Selection
...

Merci beaucoup !!
Configuration: Windows XP
Internet Explorer 6.0

4 réponses

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    .SpecialCells(xlCellTypeFormulas, xlErrors).Formula= .....???
    Si une formule est en erreur (par exemple dans ton cas, division par zéro), ne marque pas l'erreur.
    A+
    1
  2. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    bonjour
    Tu peu faire une macro avec ceci ou l'incorporer dans ta macro
    On Error Resume Next
    With Range("A1:V40")
    .SpecialCells(xlCellTypeFormulas, xlErrors).Value = 0
    .SpecialCells(xlCellTypeConstants, xlErrors).Value = 0
    End With
    On Error GoTo 0
    A+
    0
  3. charles
     
    salut

    merci pour ce début de réponse

    Ce bout de code permet de recupérer les cellules pour lesquelles il y a une erreur, mais comment changer la formule de chaque cellule récupéré pour remplacer chaque formule par SI(Erreur(formule,"NA",formule)?

    .SpecialCells(xlCellTypeFormulas, xlErrors).Value = 0 permet de mettre les cellules à 0

    .SpecialCells(xlCellTypeFormulas, xlErrors).Formula= .....???
    0
    1. lermite222 Messages postés 9042 Statut Contributeur 1 199
       
      Tu as plus besoin de faire de détection erreur, tu met simplement
      dans cellule C4 =B2/A1
      S'il y à une erreur tu ne verras rien
      0
    2. karim
       
      Bonsoir;
      Pour rien afficher à la place de Zéro (o), soit un espace "Blanc" comment peut on l'écrire?
      je vous remercie par avance.
      0
    3. Guytou
       
      if activecell.value=0 then
      activecell.value=""
      endif
      0
  4. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    Le plus simple, Dans les options du classeur décocher Afficher les zéros.
    A+
    0