Bonjour à tous,
Vous connaissez certainement la fonction de recherche (CTRL+F), qui permet notamment de naviguer dans l'ensemble d'un classeur.
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.
On va tout d'abord ajouter un formulaire :
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 0Et 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 :