Formule de vérification d'erreurs ?

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Etienne2323

XLDnaute Impliqué
Bonjour le forum,
j'ai à nouveau besoin de vos services et j'espère que vous saurez m'éclairer. J'aimerais savoir s'il existe une manière, dans VB, de vérifier chacun des onglets d'un classeur Excel afin de déceler la présence d'erreurs dans ces onglets (#REF, #VALEUR, etc..). J'aimerais, si possible, qu'il m'apparaisse une petite fenêtre pour me dire dans quelles pages et à quels endroits se retrouvent les erreurs. Vous avez une idée ?

Merci à l'avance

Cordialement,

Etienne
 
Re : Formule de vérification d'erreurs ?

Bonjour Etienne2323,

Voici un fichier exemple qui balaie chacune des 3 feuilles et qui affiche un messageen cas d'erreur .
Il est préférable de limiter la zone d'analyse de chaque feuille pour éviter que la macro ne prenne un temps aussi considérable qu'incertain.

Espérant avoir répondu.

Cordialement.
 

Pièces jointes

Re : Formule de vérification d'erreurs ?

Bonjour Papou-net, bonjour le forum,
merci de cette réponse rapide. Cependant, la macro ne fait pas exactement le travail que j'aimerais qu'elle accomplisse. Le msgbox ne permet pas de situer les erreur dans le fichier, il nous indique seulement qu'il y a une ou des erreurs.
J'aimerais savoir s'il serait possible, par msgbox ou autre, que le message d'erreur m'indique le nom de l'onglet ainsi que la ou les cellules qui sont en erreur ?

Merci encore

Etienne
 
Re : Formule de vérification d'erreurs ?

Bonjour

Ci dessous une macro qui affiche les erreurs
Code:
Sub travdemande()
Dim Sh As Worksheet
Dim cellule As Range
Dim data1 As String


For Each Sh In Worksheets

    With Sheets(Sh.Name)
    dcel = .Cells.SpecialCells(xlCellTypeLastCell).Address(0, 0)
    For Each cellule In .Range("a1:" & dcel)
        
        data1 = cellule.Text
        If InStr(1, data1, "#") > 0 Then
          Call MsgBox("Erreur " _
                & vbCrLf & "" _
                & vbCrLf & "feuille      :  " & Sh.Name _
                & vbCrLf & "" _
                & vbCrLf & "cellule      :  " & cellule.Address _
                & vbCrLf & "" _
                , vbInformation, Application.Name)
         End If
    Next cellule
    End With
Next Sh

Exit Sub

End Sub

A tester

JP
 
Re : Formule de vérification d'erreurs ?

Salut JP, forum
wow merci pour cette macro, c'est exactement ce que je souhaitais obtenir. Par contre, en la mettant en application, je me suis retrouvé devant un nouveau problème. Lorsque les messages d'erreurs m'apparaissent, je ne peux pas aller modifier les erreurs en même temps, je dois attendre la fin des messages avant de pouvoir apporter mes correctifs dans mon fichier. Vous auriez une idée comment contourner ce problème ? Ou alors une alternative ?
Sinon, dans le pire des cas, un moyen de mettre fin à la macro ou quelques chose comme sa ? J'attends de vos nouvelle !

Merci encore !

Etienne
 
Re : Formule de vérification d'erreurs ?

Bonsoir

Il suffit de remplacer le code
Code:
 Call MsgBox("Erreur " _
   .............................................
                , vbInformation, Application.Name)
par
Code:
Select Case MsgBox("" _
                & vbCrLf & "feuille      :  " & Sh.Name _
                & vbCrLf & "" _
                & vbCrLf & "cellule      :  " & cellule.Address _
                & vbCrLf & "" _
                , vbOKCancel Or vbCritical Or vbDefaultButton1, "Erreur trouvée")

    Case vbOK

    Case vbCancel
        Exit Sub
End Select
Ce qui permet de choisir.

JP
 
Re : Formule de vérification d'erreurs ?

Bonsoir,

avec ce code, toutes les cellules comportant une valeur d'erreur se colorient en rouge :

Code:
Sub colorie_les_erreurs()
For Each sh In Sheets
    sh.Cells.SpecialCells(xlCellTypeFormulas, 16).Interior.ColorIndex = 3
Next sh
End Sub
 
Re : Formule de vérification d'erreurs ?

Bonjour JP,
vous êtes un AS ! Cette version modifiée est exactement ce que je recherchais ! Vous venez de faire ma journée !

En vous remerciant énormément, je vous souhaite une excellente fin de journée !

Cordialement,

Étienne
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

H
Réponses
0
Affichages
1 K
H
Retour