comptage cellules avec "option verification erreurs" (cochée vertes)

rafi93

XLDnaute Occasionnel
bonjour à tous

je souhaite afficher en haut de colonne si des cellules sont cochées "vert" à cause d'une erreur détectée (j'ai une liste de validation sur cette colonne);
existe t il une formule qui pourrait compter ces cellules ?
je n'ai rien trouvé sur le forum

merci !
 

PMO2

XLDnaute Accro
Re : comptage cellules avec "option verification erreurs" (cochée vertes)

Bonjour,

Essayez
Code:
Sub aa()
Dim R As Range
Set R = ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas, xlErrors)
MsgBox "Nombre = " & R.Cells.Count ' & "   " & R.Address
End Sub
 

rafi93

XLDnaute Occasionnel
Re : comptage cellules avec "option verification erreurs" (cochée vertes)

merci PMO2

le code me donne "zero" sur le fichier exemple ci joint, alors qu'il y a bien des cellules "erronées", càd le tableau "valeurs" contient des valeurs qui ne sont pas dans le tableau "liste".

pourquoi ?
 

Pièces jointes

  • Classeur3.xlsx
    17 KB · Affichages: 21
  • Classeur3.xlsx
    17 KB · Affichages: 35
  • Classeur3.xlsx
    17 KB · Affichages: 30

fourezizou

XLDnaute Occasionnel
Re : comptage cellules avec "option verification erreurs" (cochée vertes)

bonjour


peut être comme ça

voir PJ
 

Pièces jointes

  • Classeur3.xlsx
    21.3 KB · Affichages: 34
  • Classeur3.xlsx
    21.3 KB · Affichages: 31
  • Classeur3.xlsx
    21.3 KB · Affichages: 39

Pierrot93

XLDnaute Barbatruc
Re : comptage cellules avec "option verification erreurs" (cochée vertes)

Bonjour,

essaye ceci :
Code:
Option Explicit
Sub test()
Dim c As Range, x
For Each c In Range("C6:C11")
    If c.Errors.Item(8).Value Then x = x + 1
Next c
MsgBox x
End Sub

bon après midi
@+
 

rafi93

XLDnaute Occasionnel
Re : comptage cellules avec "option verification erreurs" (cochée vertes)

merci fourezizou

cette solution fonctionne bien, mais mon souci c'est que j'ai un tableau déjà structuré, 3000 lignes x 40 colonnes, et plusieurs de ces colonnes avec des controles de validité de ce type.
Rajouter des colonnes de controles et aller rechercher les listes de controles me compliquerait pas mal le système.

y aurait il une alternative en comptant "simplement" le nombre de cellules non conformes, comme PMO2 le suggérait (mais qui donne systematiquement zero chez moi) ?
 

rafi93

XLDnaute Occasionnel
Re : comptage cellules avec "option verification erreurs" (cochée vertes)

merci Pierrot !

c'est exactement ça, ça marche

question complémentaire (je suis débutant en VB), est il possible de faire que ce résultat se calcule "automatiquement" (càd comme une fonction) dans une cellule en tête de la colonne à controler ?
p.ex dans le fichier test3.xls, afficher le résultat dans la cellule C4
 

rafi93

XLDnaute Occasionnel
Re : comptage cellules avec "option verification erreurs" (cochée vertes)

merci
mais je crois que je me suis mal expliqué :
je voudrais (à l'inverse d'une certaine manière) écrire un appel de cette fonction dans C4 (comme si j'y écrivais une formule), et que ça m'y inscrive le résultat
un comme comme si j'écrivais =SOMME(...)
donc sans passer par un bouton macro
je ne sais pas si c'est possible...
 

PMO2

XLDnaute Accro
Re : comptage cellules avec "option verification erreurs" (cochée vertes)

Au temps pour moi, j'ai mal lu l'énoncé.
Essayez plutôt ce code
Code:
Sub aa()
Dim R As Range
Dim C As Range
Dim R2 As Range
Dim cpt&
'--- Cellules contenant une validation ---
On Error Resume Next
Set R = ActiveSheet.Cells.SpecialCells(xlCellTypeAllValidation)
If R Is Nothing Then Exit Sub
On Error GoTo 0
'--- Cellules contenant une validation non avérée ---
For Each C In R
  With C.Validation
    If Not .Value Then
      cpt& = cpt& + 1
      If R2 Is Nothing Then
        Set R2 = C
      Else
        Set R2 = Application.Union(R2, C)
      End If
    End If
  End With
Next C
'--- Affichage du résutat ---
If cpt& > 0 Then
  MsgBox "Nombre de cellules contenant une validation non avérée = " & cpt&
  R2.Select
  MsgBox R2.Address(False, False)
End If
End Sub
 

Pièces jointes

  • Classeur3 _pmo.xlsm
    24.2 KB · Affichages: 29
  • Classeur3 _pmo.xlsm
    24.2 KB · Affichages: 21
  • Classeur3 _pmo.xlsm
    24.2 KB · Affichages: 22

rafi93

XLDnaute Occasionnel
Re : comptage cellules avec "option verification erreurs" (cochée vertes)

merci PMO2

ça fonctionne aussi bien que la solution de Pierrot, mais c'est bcp plus rapide !
sur mon "gros" tableau celle de Pierrot met environ 30 secondes, alors que la tienne est quasi instantanée;
1329 avérées pour un tableau de 3000x40
pourquoi dans la mesure où les 2 solutions passent d'une cellule à l'autre ?

maintenant, est ce que je peux utiliser ce code VB comme une formule que je mettrais dans une cellule ?
 

PMO2

XLDnaute Accro
Re : comptage cellules avec "option verification erreurs" (cochée vertes)

maintenant, est ce que je peux utiliser ce code VB comme une formule que je mettrais dans une cellule ?
Il faut fabriquer une fonction personnalisée.

1) copiez le code suivant dans un module Standard
Code:
Function NB_ERREUR_VALIDATION(Plage As Range) As Long
Dim C As Range
Dim cpt&
'---
For Each C In Plage
  With C.Validation
    If Not .Value Then
      cpt& = cpt& + 1
    End If
  End With
Next C
'---
NB_ERREUR_VALIDATION = cpt&
End Function

2) Dans une celulle ("G5" par exemple) tapez la formule =NB_ERREUR_VALIDATION(A1:E34) (où A1:E34 est la plage concernée)
 

Pièces jointes

  • Classeur3 _pmo FONCTION PERSO.xlsm
    24 KB · Affichages: 13
  • Classeur3 _pmo FONCTION PERSO.xlsm
    24 KB · Affichages: 26
  • Classeur3 _pmo FONCTION PERSO.xlsm
    24 KB · Affichages: 24

rafi93

XLDnaute Occasionnel
Re : comptage cellules avec "option verification erreurs" (cochée vertes)

j'essaie de modifier le code pour compter les cellules avec "tout type d'erreur", càd pas seulement "validation"

j'ai modifié ainsi :

Set R = ActiveSheet.Cells.SpecialCells(xlCellTypeAllFormatConditions)

mais je ne comprends pas la ligne

With C.Validation

d'où sort le "validation" ?
comment modifier ?

merci encore !
 

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 334
Membres
103 519
dernier inscrit
Thomas_grc11