Formulaire de recherche 2

Bonjour le Forum,

J'ai récupéré un code sur le Net pour faire un formulaire de recherche sur 2 critères et j'aimerai l'adapter pour 3 critères. Ce code permet la recherche dans la Feuil1, ma recherche doit s'effectuer dans ma Feuil3 et il n'y a pas d'indication de type "Sheet" pour m'aider à bidouiller le code.

Après plusieurs modifications, je suis toujours dans l'impasse. Lors de l'exécution, le message : "Erreur d'exécution "1004", la méthode Select de la classe Range à échoué.

Voici le code d'origine :

Private Sub ListBoxLocataire_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

ligSelect = ListBoxLocataire.Column(7, ListBoxLocataire.ListIndex)

usfAffichage.Show

End Sub

Private Sub RechercheC2_Change()

' Rechercher les données en fonction des critères sélectionnés

Call Rechercher

End Sub

Private Sub UserForm_Initialize()

Range("A2").Select

' Initialiser les listes des critères

Call InitCombo(RechercheC1, "A")

Call InitCombo(RechercheC2, "B")

' Rechercher les données en fonction des critères sélectionnés

Call Rechercher

End Sub

Private Sub RechercheC1_Change()

' Rechercher les données en fonction des critères sélectionnés

Call Rechercher

End Sub

Private Sub Rechercher()

' Rechercher les données en fonction des critères 1 et 2

Dim rCel As Range

Dim lgLig As Long

Dim lgLigDeb As Long

Dim Critere1 As String

Dim Critere2 As String

Critere1 = "*"

If RechercheC1.Value <> "" Then Critere1 = RechercheC1.Value

Critere2 = "*"

If RechercheC2.Value <> "" Then Critere2 = RechercheC2.Value

ListBoxLocataire.Clear

' Boucle de la 2me à la dernière ligne de la feuille Feuil1

For lgLigDeb = 2 To Range("A" & Cells.Rows.Count).End(xlUp).Row

If Range("A" & lgLigDeb).Value Like Critere1 And Range("B" & lgLigDeb).Value Like Critere2 Then

With ListBoxLocataire

.AddItem Range("A" & lgLigDeb).Value

.List(.ListCount - 1, 1) = Range("B" & lgLigDeb).Value

.List(.ListCount - 1, 2) = Range("C" & lgLigDeb).Value

.List(.ListCount - 1, 3) = Range("D" & lgLigDeb).Value

.List(.ListCount - 1, 4) = Range("E" & lgLigDeb).Value

.List(.ListCount - 1, 5) = Range("F" & lgLigDeb).Value

.List(.ListCount - 1, 6) = Range("G" & lgLigDeb).Value

.List(.ListCount - 1, 7) = lgLigDeb

lgLig = lgLig + 1

End With

End If

Next lgLigDeb

End Sub

Private Sub InitCombo(LCombo As Object, nomCol As String)

Dim lig As Long

Dim nbElement As Integer

Dim trouveElm As Boolean

LCombo.Clear

' Boucle de la ligne 2 à la dernière ligne dans la colonne nomCol

For lig = 2 To Range(nomCol & Cells.Rows.Count).End(xlUp).Row

trouveElm = False

' Vérifier que l'élément à ajouter dans la liste n'existe pas déjà

For nbElement = 0 To LCombo.ListCount - 1

' L'élément est déjà présent dans la liste, sortie de la boucle

If LCombo.List(nbElement) = Range(nomCol & lig).Value Then

trouveElm = True

Exit For

End If

Next nbElement

' Elément non trouvé dans la liste, l'ajouter

If trouveElm = False Then LCombo.AddItem Range(nomCol & lig).Value

Next lig

End Sub

Avec le fichier d'origine, avec un double clic sur une ligne lance un formulaire reprenant les données dans des TextBox, (le mien est nommé UserForm4) et je souhaiterai conserver cette possibilité pour ajouter des données dans les cellules des colonnes "I et J" de la ligne concernée.

Merci de votre aide.

Licaon

PS: je dois présenter ce projet pour le 04/04/11, je n'ai plus beaucoup de temps car je travaille ce WE.

Bonjour

Un essai

Pour la recherche tu ne peux pas effacer la date donc pour le moment la date n'est pas prise en compte

A voir ce que tu veux

Edit : Mauvais fichier

Bonsoir et merci Banzaï64,

C'est exactement ce qu'il me fallait.

Concernant la prise en compte de la date, est-ce en attente ou cela risque d'apporter des désordres sur le fichier ?

Une autre petite question, est-ce que je peux COUPER/COLLER les données de la Feuil1 "Formulaire" pour les ranger dans la Feuil4 "Données"sans avoir d'incidence ? Cette feuille sera masquée par la suite.

A te lire,

Licaon

Bonsoir

Pour la date : Avoir un checkbox qui indique si on tient compte de la date

Peut-être d'autre méthode mais actuellement en panne

Alors pour copier dans la pages "données" il faut les copier après les (surtout pas en dessous des) colonnes qui servent à alimenter les ListBox et ComboBox

Bonne nuit

Apperçu d'un bug sur le fichier : Variable non initialisée

Bonsoir Banzaï, bonsoir le Forum.

Ça fonctionne super, je vais pouvoir présenter ce projet lundi.

Pour la recherche par date, à force de test, je pense que si cela est un plus dans la recherche, il est possible de pouvoir s'en passer. Je reviendrais avec un autre post si nécessaire.

Encore merci de toute l'aide apportée pour finaliser ce projet.

A te lire lors d'un autre souci.

Licaon

Rechercher des sujets similaires à "formulaire recherche"