Retourner dans une ListBox en fonction recherches cumulatives

Résolu/Fermé
F60lebaladinverni Messages postés 126 Date d'inscription samedi 28 janvier 2017 Statut Membre Dernière intervention 7 avril 2023 - 9 janv. 2018 à 16:34
F60lebaladinverni Messages postés 126 Date d'inscription samedi 28 janvier 2017 Statut Membre Dernière intervention 7 avril 2023 - 11 janv. 2018 à 06:36
Bonjour à tous,

Je sèche la dessus ...
J'ai un tableau de ce style :

DOSSIER SIGNATAIRE CHEF DE MISSION CLOTURE etc ....

Je souhaite créer un UserForm avec plusieurs zones de recherche (je ne sais pas encore combien j'en aurai) :
TextBox_signataire
TextBox_chef_de_mission
TextBox_cloture
CheckBox_rapport_fait => dans ce cas, les lignes sont surlignées
CheckBox_rapport_envoyé => idem

et une ListBox qui affiche les résultats en fonction de ce que je recherche dans les TextBox

EXEMPLE : je veux afficher tous les dossiers pour lesquels le signataire est "XX", le chef de mission est "SS", la date de cloture est "AVRIL", et ainsi de suite
Comment faire ? ....

Merci à tous pour votre aide

Je n'ai pas encore de fichier Excel disponible, mais si besoin je peux en faire un vite fait
A voir également:

2 réponses

Passionofdream Messages postés 820 Date d'inscription mardi 21 juillet 2015 Statut Membre Dernière intervention 11 mai 2021 303
9 janv. 2018 à 18:44
Bonsoir,

Effectivement un petit fichier serait le bienvenu et l'envoyer sur cjoint.com et joindre le lien obtenu à ton prochain message. N'oublies pas d'y ajouter des explications et des exemples du résultat attendu

1) Tu vas dans https://www.cjoint.com/
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier
3) Tu descends en bas de la page pour cliquer sur [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien
en bleu souligné ; tu le sélectionnes et tu fais "Copier"
5) Tu reviens dans ta discussion sur CCM, et dans ton message de réponse
tu fais "Coller"
0
F60lebaladinverni Messages postés 126 Date d'inscription samedi 28 janvier 2017 Statut Membre Dernière intervention 7 avril 2023 2
Modifié le 9 janv. 2018 à 22:23
Bonsoir Passionofdream,

Merci pour ta réponse

Ci-joint un fichier pour illustrer mon cas :
https://www.cjoint.com/c/HAjvnYHK6tG

Je peux combiner les recherches avec les combobox, par contre en rajoutant la checkbox j'ai une erreur

Le critère checkbox correspond à : "sélectionner les lignes surlignées en jaune"

L'erreur provient du sub : unserform_initialize
ligne : "call initcheck(RechercheC3, "B")" => En réalité je ne sais pas quoi écrire ...
Sans cette ligne, le code fonctionne correctement, mais uniquement avec les 2 premiers critères

Merci
0
Passionofdream Messages postés 820 Date d'inscription mardi 21 juillet 2015 Statut Membre Dernière intervention 11 mai 2021 303
10 janv. 2018 à 11:29
Si j'ai bien compris tu veux quand tu coches checkbox que les résultats des sélections 1 et 2 apparaissent surlignés en jaune sur la feuille de données.
0
F60lebaladinverni Messages postés 126 Date d'inscription samedi 28 janvier 2017 Statut Membre Dernière intervention 7 avril 2023 2
Modifié le 10 janv. 2018 à 12:12
Pas tout à fait..
Je veux, en cochant la checkbox avoir en retour dans ma listbox les lignes du tableau qui sont surlignees en jaune
0
F60lebaladinverni Messages postés 126 Date d'inscription samedi 28 janvier 2017 Statut Membre Dernière intervention 7 avril 2023 2
10 janv. 2018 à 20:02
J'AI TROUVE !!!!! :) :) :)
Il suffisait d'enlever "Call" devant l'initialisation de ma checkbox et de dire que c'est égal à ma colonne A par exemple.
Voici le code complet :

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")
RechercheC3.Value = Range("A:A").Value

' 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 RechercheC3_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
Dim Critere3 As String

Critere1 = "*"
If RechercheC1.Value <> "" Then Critere1 = RechercheC1.Value
Critere2 = "*"
If RechercheC2.Value <> "" Then Critere2 = RechercheC2.Value
Critere3 = "*"
If RechercheC3 = True Then Critere3 = 65535

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 And Range("A" & lgLigDeb).Font.Color Like Critere3 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
0
Passionofdream Messages postés 820 Date d'inscription mardi 21 juillet 2015 Statut Membre Dernière intervention 11 mai 2021 303
11 janv. 2018 à 01:31
Donc résolu tout seul.
Bravo

Mettre en résolu svp
Cordialement
0
F60lebaladinverni Messages postés 126 Date d'inscription samedi 28 janvier 2017 Statut Membre Dernière intervention 7 avril 2023 2
11 janv. 2018 à 06:36
Oui, merci :)
Je fais ça
0