Masquer erreur #VALEUR avec macro VBA

Fermé
charles - 9 juin 2008 à 10:41
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 22 juin 2012 à 10:33
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 !!

4 réponses

lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
10 juin 2008 à 11:26
.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
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
9 juin 2008 à 11:46
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
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
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
9 juin 2008 à 16:27
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
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
if activecell.value=0 then
activecell.value=""
endif
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
22 juin 2012 à 10:33
Bonjour,
Le plus simple, Dans les options du classeur décocher Afficher les zéros.
A+
0