🚀 VBA : Créer un moteur de recherche intelligent pour votre gestion de paie
Dans la gestion administrative, la rapidité est essentielle. Chercher un employé dans une liste de plusieurs centaines de lignes peut faire perdre un temps précieux. Aujourd'hui, je vous partage une solution robuste pour intégrer une recherche intuitive (type Google) directement dans vos formulaires Excel.
Le Concept
L'idée est simple : vous tapez quelques lettres dans une barre de recherche (TextBox), et une liste déroulante (ComboBox) se filtre automatiquement pour ne proposer que les noms correspondants. Une fois le nom choisi, le matricule est instantanément envoyé dans votre fiche de calcul.
🛠️ Étape 1 : Le filtrage dynamique (L'événement Change)
Le cœur du système repose sur l'événement Change de votre zone de texte. À chaque lettre tapée, le code scanne votre tableau de données.
Le Code décrypté :
Private Sub Recherche_noms_Change()
Dim searchText As String
Dim cell As Range
Liste_Matricule_et_nom.Clear ' On vide la liste précédente
searchText = Recherche_noms.Value
' On parcourt la colonne "Recherche" de notre tableau structuré
For Each cell In Liste_Paie_Personel_calcule.ListObjects("Tbl_Liste_Paie_Personel_calcule").ListColumns("Recherche").DataBodyRange
If Not IsError(cell.Value) Then
' Si le texte tapé est trouvé dans le nom (InStr), on l'ajoute à la liste
If InStr(1, cell.Value, searchText, vbTextCompare) > 0 Or searchText = "" Then
Liste_Matricule_et_nom.AddItem cell.Value
End If
End If
Next cell
End Sub
Pourquoi c'est efficace ?
vbTextCompare : La recherche ignore les majuscules et minuscules.
InStr : Vous pouvez taper le début, le milieu ou la fin du nom, le moteur le trouvera.
IsError : Le code est protégé contre les cellules contenant des erreurs (#N/A, #VALEUR!), évitant ainsi les plantages.
⚡ Étape 2 : L'extraction vers la fiche de paie
Une fois que l'utilisateur a sélectionné l'employé dans la liste, il faut valider ce choix. C'est le rôle de la procédure RechercherMatricule.
Ce qu'il faut retenir du code :
Protection intelligente : Le code vérifie si la feuille est protégée avant d'écrire.
Cible précise : Il envoie la valeur sélectionnée dans la cellule A6 (votre cellule de base pour la recherche de paie).
Sécurité : Il vérifie que le tableau de données (
Tbl_Liste_Paie_Personel_calcule) existe bien pour éviter les erreurs "Objet requis".
💡 Les avantages pour votre gestion
Zéro erreur de saisie : L'utilisateur ne tape plus le matricule à la main, il le choisit. Comme nous l'avons vu dans l'article précédent, peu importe si le format est
ID : 10ou12 Nom, la sélection est fiable.Gain de temps : Plus besoin de faire défiler des listes infinies.
Interface Professionnelle : Votre outil de paie ressemble à un véritable logiciel de gestion.
Commentaires
Enregistrer un commentaire