Formulaire UserForm - Recherches multicritères

Bonjour,

J'ai un formulaire permettant de lire, de modifier et d'enregistrer des données.

J'ai inclus dans ce formulaire une fonction de recherche multicritère (une textbox et deux combobox). Les résultats de la recherche s'affiche dans une listbox.

Sur le principe on filtre les données, on sélectionne la ligne, on la modifie et on l'enregistre.

Dans mon code cela fonctionne si, pour un numéro de fiche, il n'y a qu'une information dans chaque colonne (un nom pour une Ligne et une Direction).

Mon problème se situe au niveau du filtre, je souhaite qu'on puisse :

  • soit rechercher un nom pour plusieurs Lignes et Directions ;
  • soit rechercher par les combobox Ligne ou Direction (donc affichage de la colonne de la base de données dans la combobox sans doublons) et éventuellement finir la recherche en tapant une partie du nom.

Pour comprendre un peu mieux j'ai mis un exemple dans la "feuil3".

Un autre petit problème est dans le cas où j'ai beaucoup d'onglets, jusqu'à présent j'applique le code pour un onglet et je fais simplement du copier-coller en adaptant le code aux autres onglets, c'est moche et ça prend beaucoup de lignes, alors si vous connaissez un moyen pour appliquer le code à tous les onglets je suis preneur.

J'ai mis mon fichier en version allégé pour que vous puissiez plus facilement le lire.

Je vous remercie d'avance pour votre aide !

Bonsoir,

Userform qui dépasse la taille de mon écran... donc pas pour moi cette fois encore !

Pour ce qui est des procédures de tes onglets, je n'ai vu qu'une évènementielle... Si on doit traiter le même évènement pour plusieurs onglets, on opére pour cet évènement au niveau classeur, donc avec une seule procédure pour tous.

Cordialement.

Ok, donc si je comprends bien, je fais cela :

Private Sub InitData()
Set rng_O1 = ONGLET1.Range("A1").CurrentRegion
With rng_O1
    Set rng_O1 = .Offset(1).Resize(.Rows.Count - 1)
End With

Set rng_O2 = ONGLET2.Range("A1").CurrentRegion
With rng_O2
    Set rng_O2 = .Offset(1).Resize(.Rows.Count - 1)
End With
End Sub

'Même chose pour les autres onglets

End Sub

Je remets le fichier avec un UserForm plus petit et le code modifié.

Je ne parlais pas du code du userform (laissé de côté). J'ai pensé que tu visais du code hors userform. Si ce n'était pas le cas, ma réponse est à côté...

Ah d'accord eh bien ce n'est pas grave, ta réponse a quand même été utile.

Maintenant il reste le problème de la recherche dans la base de données. Une idée ?

Après quelques recherches supplémentaires, j'ai trouvé sur un autre site ce que j'aimerais faire : créer des combobox liées et indépendantes avec une textbox.

Mais je n'arrive pas vraiment à comprendre comment le code trouvé fonctionne et encore moins à l'adapter au mien. Je vous joints ce fichier, car j'aurais bien besoin de vos lumières.

Rechercher des sujets similaires à "formulaire userform recherches multicriteres"