Microsoft 365 Userform filtre listbox

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

lesoldat9

XLDnaute Occasionnel
Bonjour à tous,

Une fois de plus je me tourne vers vous la team Excel,
j'aurai besoin aujourd'hui de filtrer ma listbox avec 3 ou 1 barre de recherche textbox selon mon besoin.

Je vous joins un fichier test.
 

Pièces jointes

Solution
Le classeur a le Vbe protégé .
Mais je vois quand même le problème.
Certaines colonnes de la table ont un espace dans leur nom
Dans ce cas modifier le code pour en tenir compte en encadrant ces noms par des crochets :
VB:
    If TextBox3 <> "" Then Where_String = Where_String & IIf(Where_String = "", "", " and ") & " [Ref Palette]='" & TextBox3 & "' "
( éviter de laisser des espaces en fin de champs aussi )
Le classeur a le Vbe protégé .
Mais je vois quand même le problème.
Certaines colonnes de la table ont un espace dans leur nom
Dans ce cas modifier le code pour en tenir compte en encadrant ces noms par des crochets :
VB:
    If TextBox3 <> "" Then Where_String = Where_String & IIf(Where_String = "", "", " and ") & " [Ref Palette]='" & TextBox3 & "' "
( éviter de laisser des espaces en fin de champs aussi )
 
Le classeur a le Vbe protégé .
Mais je vois quand même le problème.
Certaines colonnes de la table ont un espace dans leur nom
Dans ce cas modifier le code pour en tenir compte en encadrant ces noms par des crochets :
VB:
    If TextBox3 <> "" Then Where_String = Where_String & IIf(Where_String = "", "", " and ") & " [Ref Palette]='" & TextBox3 & "' "
( éviter de laisser des espaces en fin de champs aussi )
Merci c'est bien ca
 
Les "dates" à partir du code conducteur 6013 sont du type "String" et non "Date",
probablement suite à un copier/coller d'un fichier texte ....
ou saisi via un userform qui n'a pas converti le textbox en date ...

Exécutez le code ci-dessous :
VB:
Sub Restore_Dates()
Dim C As Range
    For Each C In [Tab_GestionStock[Date]]
        If Not VarType(C.Value) = vbDate Then C.Value = CDate(C.Value)
    Next
End Sub
 
Les "dates" à partir du code conducteur 6013 sont du type "String" et non "Date",
probablement suite à un copier/coller d'un fichier texte ....
ou saisi via un userform qui n'a pas converti le textbox en date ...

Exécutez le code ci-dessous :
VB:
Sub Restore_Dates()
Dim C As Range
    For Each C In [Tab_GestionStock[Date]]
        If Not VarType(C.Value) = vbDate Then C.Value = CDate(C.Value)
    Next
End Sub
C'est bizarre car même en convertissant manuellement ca ne fonctionnais pas merci pour le code ca fonctionne
 
Bonjour @fanch55,

Après plusieurs mois je constate que mon fichier ne fonctionne pas quand il est sur un serveur.
En fouillant un petit peu j'ai vu un mémo ou tu indiques ''ne pas utiliser adUseClient ou adUseServer sinon renseigner les références vb''.

Peux-tu m'en dire plus...

Merci à toi
 
En fouillant un petit peu j'ai vu un mémo ou tu indiques ''ne pas utiliser adUseClient ou adUseServer sinon renseigner les références vb''.

Salut,
Le code proposé fait appel au module Ado en mode dynamique :
Set Base = CreateObject("ADODB.Connection")
De ce fait, les constantes spécifiques au module n'existent pas, il faut indiquer leur valeur numérique .
1680107029377.png

Sinon, il faut référencer Ado dans les références du Vbe:
Cela inclut de ce fait toutes les constantes propres à Ado
1680107479688.png
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
16
Affichages
832
Retour