Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Filtre liste avec plusieurs conditions

39 réponses
Avatar
DAVID
Bonsoir

Je m'en sort pas avec mon projet avec le peu de connaissance en V.B.

J'aimerais filtrer une liste d'une feuille grâce à 2 TextBox et 5 Combos et
visualiser dans un ListBox sans obligation de remplir tous les éléments

Ci joint la partie de mon programme qui me pose problème
http://cjoint.com/?bAxETQeOP5


Merci de votre aide car cela fait plusieurs jours que je cherche.
Si possible avec explications des lignes de code

Cordialement

David

10 réponses

1 2 3 4
Avatar
Daniel.C
Bonjour.
Regarde le classeur :
http://cjoint.com/?bBk6QrIsyP
J'ai simplement active le module de filtre des combos en testant si la
valeur n'est pas nulle.
Je suis à ta disposition popur tout renseignement complémentaire.
Cordialement.
Daniel

Bonsoir

Je m'en sort pas avec mon projet avec le peu de connaissance en V.B.

J'aimerais filtrer une liste d'une feuille grâce à 2 TextBox et 5 Combos et
visualiser dans un ListBox sans obligation de remplir tous les éléments

Ci joint la partie de mon programme qui me pose problème
http://cjoint.com/?bAxETQeOP5


Merci de votre aide car cela fait plusieurs jours que je cherche.
Si possible avec explications des lignes de code

Cordialement

David


Avatar
DAVID
Bonjour et merci Daniel

Il me manquait pas grand chose pour aboutir à la solution !!

Si j'ai besoin, je reviens sur ce fil.

Cordialement

David
Avatar
DAVID
Re

Mon premier problème est un affichage d'une erreur "pas de cellule
correspondante" quand on filtre sur quelque chose qui n'existe pas.

Quel code je doit utiliser pour mettre la condition ?

If "le résultat du filtre" = "" Then
MsgBox "Pas de données à vous proposer !!!"
UserForm_Initialize
Exit Sub
End If

Merci de ton aide précieuse
David
Avatar
Daniel.C
Essaie avec ce classeur :
http://cjoint.com/?bBqedggbCQ
J'ai réinitialisé le filtre dans :

Private Sub UserForm_Initialize()
If Feuil2.AutoFilterMode = True Then
Selection.AutoFilter
End If

et ajouté une gestion des erreurs au cas ou aucune donnée n'est
sélectionnée :

On Error Resume Next
Set plage1 = plage1.Resize(plage1.Rows.Count - 1,
1).SpecialCells(xlCellTypeVisible)
If Err.Number <> 0 Then
Err.Clear
MsgBox "Aucun enregistrement sélectionné"
Unload Me
Exit Sub
End If
On Error GoTo 0

dans ChargementListe.
Daniel

Re

Mon premier problème est un affichage d'une erreur "pas de cellule
correspondante" quand on filtre sur quelque chose qui n'existe pas.

Quel code je doit utiliser pour mettre la condition ?

If "le résultat du filtre" = "" Then
MsgBox "Pas de données à vous proposer !!!"
UserForm_Initialize
Exit Sub
End If

Merci de ton aide précieuse
David


Avatar
DAVID
Re

Merci de l'amélioration mais il y a un problème.

Si, avant d'ouvrir Userform, tu fait une sélection de A1 à J1 et Outil
filtre automatique.

Lance UserForm alors erreur "variable de bloc with non définie"
Avatar
Daniel.C
Ca commence à se compliquer. Le présent problème vient du fait que tu
utilises le même module (ChargementListe) pour initialiser le userform
et pour y afficher le résultat. Je pense avoir résolu le problème en
passant un paramètre, mais je n'ai sans doute pas testé tous les cas
possibles. Le classeur est là :
http://www.cijoint.fr/cjlink.php?file=cj201001/cijE4lUJ3p.xls
Daniel

Re

Merci de l'amélioration mais il y a un problème.

Si, avant d'ouvrir Userform, tu fait une sélection de A1 à J1 et Outil filtre
automatique.

Lance UserForm alors erreur "variable de bloc with non définie"


Avatar
DAVID
Merci beaucoup. Je test et je te tiens au courant.

Pas facile mon projet mais peut être bénéfique pour des novices comme nous
!!!
Avatar
DAVID
Merci de ton aide

Encore des erreurs suivant plusieurs cas....

Je me demande s'il faudrait pas faire autrement via une autre ListeBox
cachée par exemple. (un pour le résultat du filtre, l'autre pour
l'affichage) ou un filtre éloboré donnant un résultat sur une autre feuille
???
Je commence à avoir un gros doute pour la suite de mon programme !

Étant donner que derrière j'ai du code qui permets de modifier ou supprimer
une entrée. Et à première vue, cela ne marche pas avec le filtre activé.
Bref cela devient une machine à gaz !!!

Si toutes personnes, lisant ce message peux me montrer le chemin à prendre
pour la suite !
Merci beaucoup

Ci dessous le module complet concernant la partie "carburant" de mon projet

http://www.cijoint.fr/cjlink.php?file=cj201001/cijWKHAFJL.xls

Cordialement
David
Avatar
Daniel.C
> Encore des erreurs suivant plusieurs cas....



Sans savoir lesquelles, difficile de corriger...


Je me demande s'il faudrait pas faire autrement via une autre ListeBox cachée
par exemple. (un pour le résultat du filtre, l'autre pour l'affichage) ou un
filtre éloboré donnant un résultat sur une autre feuille ???



Pourquoi ?


Je commence à avoir un gros doute pour la suite de mon programme !

Étant donner que derrière j'ai du code qui permets de modifier ou supprimer
une entrée. Et à première vue, cela ne marche pas avec le filtre activé. Bref
cela devient une machine à gaz !!!



Il faut déjà faire fonctionner ce qu'il y a devant.

Cordialement.
Daniel
Avatar
DAVID
Bonjour

Suite à tes conseils, voyons comment faire fonctionner le début !!
Après plusieurs petits essais et changement de code qui demande sûrement à
être allégé, pour supprimer des petits "beug", voici la dernière version du
projet.

http://www.cijoint.fr/cjlink.php?file=cj201001/cij7omQcuD.xls

A première vue (aléatoire), l'erreur qui persiste apparaît en faisant :

Clic sur "Ouverture"
Clic sur "Historique"
Clic sur "Nouvelle recherche"
Clic sur "Retour"
Clic sur Historique" >>>>erreur "La méthode AutoFilter de la classe Range à
échoué"

Encore merci de ton aide
Cordialement

David
1 2 3 4