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
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
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
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