Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

[RESOLU] : VBA: Macro classeur entier

  • Initiateur de la discussion Initiateur de la discussion joedu31
  • Date de début Date de début

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 !

J

joedu31

Guest
Bonjour à tous,

Je souhaiterai faire une macro sur l'ensemble du classeur, j'aimerai qu'elle permette de vérifier si la feuille ne comporte pas d'erreur, du genre (#...)
Excel - les messages d'erreurs

Si il a une case du classeur qui comporte une erreur, envoyer un message d'erreur a l'utilisateur en fesant la liste des feuilles dans une Message Box, puis un bouton Ok.


Auriez vous une idée de langage VBA pour résoudre cela?

Bien à vous,
Joe
 
Dernière modification par un modérateur:
Re : VBA: Macro classeur entier, find Erreur (#)

Salut,

Perso, j'partirai comme ça

Code:
Sub lkj()
For Each o In Sheets
    For Each c In Cells
        If IsError(o.c) Then liste = liste & o.c.Address & " "
    Next c
Next o
MsgBox (liste)
End Sub

Bon, par contre, ça marche pas ^^

++
Hieu
 
Re : VBA: Macro classeur entier, find Erreur (#)

Bonjour,

Essaies :
Code:
Option Explicit
Option Private Module
Public Sub ChercheErreurs()
Dim w As Worksheet
Dim c As Range
Dim m As String
    
  For Each w In ActiveWorkbook.Worksheets
    For Each c In w.UsedRange
      If IsError(c.Value) Then
        m = m & CStr(c.Value) & " - " & w.Name & "!" & c.Address(0, 0) & vbCr
      End If
    Next c
  Next w
  If m > "" Then
    MsgBox "Erreur(s) trouvée(s): " & vbCr & m
  Else
    MsgBox "Aucune erreur trouvée."
  End If
End Sub
 
Re : VBA: Macro classeur entier, find Erreur (#)

Merci à vous,
ça marche impeccable Patrick, merci beaucoup Patrick 😎
Je me rend compte que mon fichier peut pontentiellement avoir beaucoup d'erreurs, est ce faisable de rajouter un curseur pour visualiser l'ensemble des lignes? La message box est bloqué à 36 lignes à ce que je vois :[
 
Re : VBA: Macro classeur entier, find Erreur (#)

Salut,

Tu peux faire une sortie via un fichier .txt à la place de ta msgbox

Code:
chemin = ThisWorkbook.Path & "\"
Set FSys = CreateObject("Scripting.FileSystemObject")
Set fic = FSys.createTextFile(Filename:=chemin  & "test.txt", overwrite:=True)
fic.WriteLine m

"m" étant la sortie de Patrice

++
 
Re : VBA: Macro classeur entier, find Erreur (#)

Ah oui, c'est une bonne idée 🙂

Et du coup, comment il faut l’intégrer dans la solution de Patrick? Définir une nouvelle variable? Je vois pas trop...
 
Re : VBA: Macro classeur entier, find Erreur (#)

Re,

Résultat dans une feuille Excel :
Code:
Option Explicit
Option Private Module
Public Sub ChercheErreurs()
Dim w As Worksheet
Dim c As Range
Dim m As String
  For Each w In ActiveWorkbook.Worksheets
    For Each c In w.UsedRange
      If IsError(c.Value) Then
        m = m & CStr(c.Value) & " - " & w.Name & "!" & c.Address(0, 0) & vbCr
      End If
    Next c
  Next w
  If m > "" Then
    Set w = Workbooks.Add(xlWBATWorksheet).Worksheets(1)
    m = "Erreur(s) trouvée(s): " & vbCr & m
    w.Range("A1").Resize(UBound(Split(m, vbCr))).Value = _
       WorksheetFunction.Transpose(Split(m, vbCr))
  Else
    MsgBox "Aucune erreur trouvée."
  End If
End Sub
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…