Remplacer des erreurs inévitables par "FAUX" en VBA

Bonjour à tous,

J'ai créé un calculateur ou les valeurs de calculs doivent être mise en zéro (ou non renseignées) en attente d'une nouvelle saisie.

Quant il est donc à zéro, certaines cellules contiennent des #VALEUR! et des #DIV/0! ce qui est tout à fait normal car pas de saisies.

Afin de rendre ce document plus propre visuellement, est-il possible de créer un code VBA qui dirait :

- si des cellules du classeur contiennent #VALEUR! ou #DIV/0!, alors remplace par FAUX.

Merci pour votre aide.

François

Bonsoir,

Utilise la fonction IFERROR avec son 2ème paramètre "FAUX" ou bien il faut nous montrer ton code pour mieux

te conseiller.

J'ai des formules qui ressemblent à cela :

=SI(C28<(I5+I6+I8)/C8-2;"SUPERIEUR";SI(C28<(I5+I6+I8)/C8+2,01;"COMPARABLE";"INFERIEUR"))

Les cellules cibles n'étant pas pas renseignées, le code erreur #DIV/0! s'affiche.

Peut-être que du VBA pourrait régler cela ?

François.

Voici un fichier Excel en exemple.

François

Bonsoir Tchotcho,

Pas besoin de code VBA. Je passe généralement par une MFC (Mise en Forme Conditionnelle).

Toutes tes cellules utilisant les formules pouvant afficher des messages d'erreur seront mises en fonte de couleur identique au fond de la cellule. Exemple fonds de cellules blanc de ton tableau alors fonte blanc des cellules plutôt que noir.

Ainsi rien ne se voit donc c'est propre visuellement. Il faut choisir en MFC cellules contenant des erreurs et appliquer le format adéquat..

Bonne continuation..

Bonjour,

la proposition de raja en français :

=sierreur(ta_formule;"")

affiche une chaine vide si erreur. Tu peux remplacer "" par FAUX si tu préfères.

eric

Merci pour ces solutions.

Cependant, si ma formule est : =SI(C28<(I5+I6+I8)/C8-2;"SUPERIEUR";SI(C28<(I5+I6+I8)/C8+2,01;"COMPARABLE";"INFERIEUR"))

Comment je place le SIERREUR ?

François

Bonjour,

tu replaces ta_formule par ta formule sans le "=".

eric

Bonjour,

En fait tu veux éviter les erreurs si D5, C5 ou B5 sont vides ??

Dans ce cas, j'irais tout simplement sur ce type de formule :

=SI(OU(ESTVIDE(D5);ESTVIDE(C5);ESTVIDE(B5));"FAUX";SI(ET($B$5=10;$C$5="B");"Résultat OK";$D$5*X))

Après ton $D$5*X te donnera forcément une erreur

Bonjour,

La cellule active recevra la formule :

Sub Test()

    ActiveCell.Formula = "=IFERROR(IF(C28<(I5+I6+I8)/C8-2,""SUPERIEUR"",IF(C28<(I5+I6+I8)/C8+2.01,""COMPARABLE"",""INFERIEUR"")),FALSE)"

End Sub

Dans mon exemple, il ne s'agit que des cellules en ERREUR, à priori, la fonction SIERREUR conviendrait.

Sauf que je ne parviens pas à la combiner avec une formule de ce genre : =SI(C28<(I5+I6+I8)/C8-2;"SUPERIEUR";SI(C28<(I5+I6+I8)/C8+2,01;"COMPARABLE";"INFERIEUR")) -> où je mets le FAUX ? Y a plus de place.

Quand je fais =SIERREUR(C28<(I5+I6+I8)/C8-2;"SUPERIEUR";SI(C28<(I5+I6+I8)/C8+2,01;"COMPARABLE";"INFERIEUR" OU FAUX))

Le FAUX n'a plus sa place.

Merci pour vos réponses.

François

Il suffit juste de remplacer dans mon exemple, sans se poser de question :

=sierreur(SI(C28<(I5+I6+I8)/C8-2;"SUPERIEUR";SI(C28<(I5+I6+I8)/C8+2,01;"COMPARABLE";"INFERIEUR"));FAUX)

eric

Re,

Mais alors, pourquoi demander en VBA :

Remplacer des erreurs inévitables par "FAUX" en VBA

si tu entres tes formules directement dans Excel ?

Merci eriic,

Effectivement, quand on le sait, ce n'est pas compliqué. j'en apprends tous les jours.

Pour répondre à These, je pensais que du code VBA aurait réglé ces erreurs automatiquement sans avoir à bidouiller dans les formules.

Une dernière question pour résoudre ce sujet :

Si ma formule n'est pas au conditionnel telle que : =F18/(I30+SOMME(cumulEmpN1*12)+Impôt_LMNP_IR!K18)-100%

Comment intégrer l'argument ERREUR sans le SI de SIERREUR ?

Peut-être que cet argument ne fonctionne qu'avec une formule conditionnelle ??

François

Plutôt que d'imaginer les fonctions à utiliser, expose clairement ton besoin avec des mots.

eric

Je n'ai clairement plus besoin de rien.

Merci à tous pour votre aide.

Je passe ce sujet en "Résolu".

Bonne soirée.

Rechercher des sujets similaires à "remplacer erreurs inevitables faux vba"