Microsoft 365 rechercher cellules avec indicateur erreur

rafi93

XLDnaute Occasionnel
bonjour à tous

j'ai un gros tableau de plusieurs milliers de lignes

les indicateurs d'erreur d'excel sont parfois utiles,
mais y a t il un moyen de les rechercher, et d'indiquer en haut de colonne leur nombre p.ex ?

merci !
 

jmfmarques

XLDnaute Accro
Bonjour
Ce qui veut donc dire que tu cherches à déterminer la plage de toutes les cellules qui, à la fois, contiendraient une formule et dont le résultat de la formule serait une erreur.
C'est exactement ce que te permet l'utilisation de la méthode Range.Scpecialcells (rubrique Range.Specialcells, méthode) de ton aide interne VBA (1er paramètre = xlCellTypeFormulas et 2ème paramètre = xlErrors)


 

rafi93

XLDnaute Occasionnel
merci à vous 3

la solution qui me conviendrait le mieux serait celle avec le sommeprod,

mais elle ne semble pas marcher dans tous les cas, cf image : la même formule est en tete des 2 colonnes, mais la 1ere donne le bon resultat (5330), et la seconde devrait dire "1" (cellule incohérente avec formule de colonne )

question subsidiaire : comment comprendre la formule "=SOMMEPROD(1*ESTERREUR(B2:B5000))" ?
plage bizarre


Annotation 2020-04-06 124756.jpg
 

Staple1600

XLDnaute Barbatruc
Re

•>rafi93
Et le message#2, on en parle ? :rolleyes:
Donc VBA et touche F5
(ceci n'est qu'un test,par conséquent testé sur quelques cellules en erreur)
VB:
Sub Errare_Excelum_Est()
Dim vErr$, C As Range, NB_err&, x
For Each C In ActiveSheet.UsedRange.SpecialCells(xlCellTypeFormulas, 16)
vErr = vErr & "," & C.Parent.Name & "| " & C.Address(0, 0)
Next
x = Split(vErr, ",")
NB_err = UBound(x)
Sheets(2).[A1].Resize(NB_err) = Application.Transpose(x)
End Sub
 

Staple1600

XLDnaute Barbatruc
Re

•>rafi93
Tu peux aussi déjà faire ce que suggérait le message#2
Appuie sur la Touche F5
Clique sur Cellules
Et coche ce que tu recherche
(ici Formules: Erreurs (x))

Il y a aussi l'outil Formules/Vérification des erreurs
(à utiliser si ta plage de cellules n'est pas trop conséquente)
 

Staple1600

XLDnaute Barbatruc
Re

Et ceci donnerait quoi ?
VB:
Sub Marquer_Erreur()
On Error Resume Next
With ActiveSheet.UsedRange.SpecialCells(xlCellTypeFormulas, 16)
    .Interior.Color = 255
    .Font.Bold = -1
    .Font.Color = vbYellow
    .Borders.Weight = 2
    .Borders.Color = vbGreen
End With
End Sub
NB: A tester sur une copie de ton classeur
 

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 973
Membres
103 073
dernier inscrit
MSCHOE16