Retourner dans une ListBox en fonction recherches cumulatives
Résolu
F60lebaladinverni
Messages postés
128
Date d'inscription
Statut
Membre
Dernière intervention
-
F60lebaladinverni Messages postés 128 Date d'inscription Statut Membre Dernière intervention -
F60lebaladinverni Messages postés 128 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Retourner dans une ListBox en fonction recherches cumulatives
- Retourner ecran pc - Guide
- Fonction si et - Guide
- Comment retourner une video - Guide
- Fonction miroir - Guide
- Rechercher ou saisir une url - Guide
2 réponses
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"
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"
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
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
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
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