Microsoft 365 compter les cellules contenant les valeurs #N/A

Lucie44

XLDnaute Nouveau
Bonjour j'essaie de trouver une solution pour compter dans une colonnes de rechercheV, toutes les valeurs #N/A donc non trouvées.
Et que si le nombre calculé de valeurs erreurs est > à 0 donc qu'il y a des erreurs, avec un msg box avec le nombre d'erreur.
Je ne comprends pas l'erreur, le message d'erreur est erreur d'exécution 1004 "pas de cellules correspondantes" le nombre d'erreur est de 0 mais pourquoi ca plante
Quand j'ai 1 erreur ou plus il m'affiche bien le message mais je voudrais que tout se stoppe ce qui n'est pas le cas. là le message s'affiche et je fait ok mais tout continue :-(
et que lorsque le nombre d'erreur est 0 alors ca appel les autres modules pour la suite et là
Quelle est mon erreur dans mon code ?

'le modul suivant permet de tester les sections analytique, que dans la formule rechercheV qui va chercher la section dans le fichier Listecopro2022 toutes les copros soient bien renseignées.
'Si le module compte 1 résultat de formule erreur #N/A il affiche un message d'erreur pour aller corriger la liste copro, sinon les autres modules se lancent.

Sub testErreur_Appli()

Dim dernligne As Long
Dim MASomme As Single
Dim Texte1 As String
Dim Texte2 As String

dernligne = Range("B" & Rows.count).End(xlUp).Row

Sheets("recup fichier").Select
MASomme = Range("G1:G" & dernligne).SpecialCells(xlCellTypeFormulas, xlErrors).count

If MASomme >= 1 Then
Texte1 = "Il y est des erreurs dans les sections analytiques, merci de vérifier la ListeCopro2022, puis recommencer le traitement."
Texte2 = "Le nombre d'erreurs est ="
MsgBox Texte1 & Chr(13) & Chr(10) & Texte2 & MASomme
Else

Call RechercheV
Call NumCopro
Call Libellé
Call CodeArticle
Call Client
Call Facture_Avoir
Call Designation
Call MontantsCompta
Call CopierToutFeuille

'macro module2 = macros étape 2
Call Recherche
Call MiseEnForme
Call InsereColonne
Call Colonne_client
Call Copier_CollerAutreColonne
Call Suite
Call NumerodePiece

'macro Module3 = macro détail 1
Call RecapHonoPArCpt

'macro module2 = macro étape2
Call Choix

End If
End Sub
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

La méthode specialCells renvoie une erreur si aucune occurrence n'est trouvée pour les paramètres spécifiés.
Donc si SpecialCells(xlCellTypeFormulas, xlErrors) ne lève pas d'erreur c'est que des erreurs de formules on été trouvées en G sinon aucune.

Essayez un truc du genre :
VB:
Sub Test()
    Dim plg As Range
    Dim dernligne As Long
    dernligne = Range("B" & Rows.Count).End(xlUp).Row
    On Error Resume Next
' Si SpecialCells lève une erreur, plg sera = nothing donc pas d'erreur en G
    Set plg = Range("G1:G" & dernligne).SpecialCells(xlCellTypeFormulas, xlErrors)
    If plg Is Nothing Then
        MsgBox "aucune erreur trouvée"
    Else
        MsgBox plg.Count & " erreur(s) trouvée(s) !"
    End If
    On Error GoTo 0
End Sub
vous pouvez également tester le numéro d'erreur (1004) au lieu de l'existence de plg

if Err.Number = 1004 then
'Aucune cellule correspondante
else
' Cellules erreurs
End if

cordialement
 

Lucie44

XLDnaute Nouveau
Bonjour,

La méthode specialCells renvoie une erreur si aucune occurrence n'est trouvée pour les paramètres spécifiés.
Donc si SpecialCells(xlCellTypeFormulas, xlErrors) ne lève pas d'erreur c'est que des erreurs de formules on été trouvées en G sinon aucune.

Essayez un truc du genre :
VB:
Sub Test()
    Dim plg As Range
    Dim dernligne As Long
    dernligne = Range("B" & Rows.Count).End(xlUp).Row
    On Error Resume Next
' Si SpecialCells lève une erreur, plg sera = nothing donc pas d'erreur en G
    Set plg = Range("G1:G" & dernligne).SpecialCells(xlCellTypeFormulas, xlErrors)
    If plg Is Nothing Then
        MsgBox "aucune erreur trouvée"
    Else
        MsgBox plg.Count & " erreur(s) trouvée(s) !"
    End If
    On Error GoTo 0
End Sub
vous pouvez également tester le numéro d'erreur (1004) au lieu de l'existence de plg

if Err.Number = 1004 then
'Aucune cellule correspondante
else
' Cellules erreurs
End if

cordialement
Merci beaucoup Hasco je viens de tester et ca fonctionne avec ta 1ère solution
 

Discussions similaires

Statistiques des forums

Discussions
314 619
Messages
2 111 212
Membres
111 068
dernier inscrit
Lirije