VBA – Ajouter un outil de recherche d’erreur

Bonjour à tous,

Vous connaissez certainement la fonction de recherche (CTRL+F), qui permet notamment de naviguer dans l'ensemble d'un classeur.
recherche

Je vous propose ici de créer un formulaire reprenant le même principe, mais pouvant servir directement dans vos applications, ou pour des recherches plus particulières.

Voici une série de 3 vidéos qui expliquent comment ajouter très rapidement cet outil de recherche dans un fichier.
Cliquez ici pour le fichier.
erreurs

On va tout d'abord ajouter un formulaire :
userform

Puis dans un module, le code qui permet de lancer le formulaire :

Sub AfficherUF_Erreur()

 Dim wksFeuille As Worksheet
 Dim rgeCellule As Range

 For Each wksFeuille In ActiveWorkbook.Worksheets
     For Each rgeCellule In wksFeuille.UsedRange
         If rgeCellule.Value = "Erreur" Then
             UF_Erreurs.ListBoxErreurs.AddItem rgeCellule.Value
             UF_Erreurs.ListBoxErreurs.List(UF_Erreurs.ListBoxErreurs.ListCount - 1, 1) = _
                          wksFeuille.Name
             UF_Erreurs.ListBoxErreurs.List(UF_Erreurs.ListBoxErreurs.ListCount - 1, 2) = _
                          rgeCellule.Address
         End If
     Next
 Next

 UF_Erreurs.Show 0
End Sub

Et finalement, le code lié au double-clic sur le formulaire:

Private Sub ListBoxErreurs_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Worksheets(Me.ListBoxErreurs.List(Me.ListBoxErreurs.ListIndex, 1)).Select
    Range(Me.ListBoxErreurs.List(Me.ListBoxErreurs.ListIndex, 2)).Select
End Sub

En vidéo, ca nous donne ceci :

Puis:

Note : Afin de pouvoir sélectionner les cellules posant problème, on va utiliser la propriété Modal en ajoutant un zéro : UF_Erreurs.Show 0
Et finalement :

Si vous voulez améliorer ce code en utilisant des variables tableaux (array) ou en jouant avec les propriétés des Listbox, n'hésitez pas à commander l'une de mes deux dernières formations :

Pour marque-pages : Permaliens.

3 réponses à VBA – Ajouter un outil de recherche d’erreur

  1. Ahmed El Mejdoub dit :

    Merci bien.

  2. said dit :

    Bonjour Ou Bonsoir

    SVP si je veux rechercher un mot dans divers onglets “+de 500 onglets dans un classeur” Ou je peux modifié le code

    Merci

  3. Gaetan dit :

    Bonjour,
    En principe, le code fonctionne déjà sur plusieurs feuilles.
    C’est cette partie qui passe à travers toutes les feuilles:
    For Each wksFeuille In ActiveWorkbook.Worksheets
    Cdt
    Gaetan

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.