filtre combobox sur un userform

dd41

XLDnaute Nouveau
bonjour,

j'ai créé un post la semaine dernière en pensant pouvoir résoudre mon problème, mais il me reste deux petits problème pour cloturer mon projet sur un userform.

Le premier c'est que je n'arrive pas a faire apparaitre dans mes textbox la valeur de la list box (a partir de la colonne 17 un message d'erreur apparait)
sur cette ligne : Me.Controls("TextBox" & Y).Value = ListBox1.List(ListBox1.ListIndex, Y - 1)

le deuxième point c'est filtrer dans une listbox des valeurs a partir de selection combobox (c'est a dire en fonction du choix combobox 1, la liste déroulante combobox 2 me donnera les informations filtrées.)

Je vous joins le fichier au cas où je n'ai pas été clair.

Merci pour le temps que vous prendrez pour m'aider.
 

Pièces jointes

  • Classeur1.xlsm
    41.9 KB · Affichages: 199
  • Classeur1.xlsm
    41.9 KB · Affichages: 208
  • Classeur1.xlsm
    41.9 KB · Affichages: 202
G

Guest

Guest
Re : filtre combobox sur un userform

Bonjour,

Cette erreur vient du fait que la listbox est chargée avec les erreurs de formule (ex: #N/A) contenu dans tes données.

Plusieurs solutions s'offrent à toi.

1 - Changer ta procédure de chargement des données pour tester toutes les erreurs et ne pas les charger dans la listbox.

2 - Dans l'évènement click de la liste box:
Soit:
Code:
  For Y = 1 To 31
    If Not IsError(ListBox1.List(ListBox1.ListIndex, Y - 1)) Then
        Me.Controls("TextBox" & Y).Text = ListBox1.List(ListBox1.ListIndex, Y - 1)
    End If
Next Y
qui permettra de ne pas afficher l'erreur dans le textbox

Soit:
Code:
 For Y = 1 To 31
           Me.Controls("TextBox" & Y).Text = cstr(ListBox1.List(ListBox1.ListIndex, Y - 1))
Next Y

Qui affichera "Erreur 2042" pour une erreur #N/A de formule.

Pour le deuxième point tu as plein de solutions dans le forum. Notament en bas de cette page dans la section "Discussions similaires".

A+
 
Dernière modification par un modérateur:

dd41

XLDnaute Nouveau
Re : filtre combobox sur un userform

Super Hasco,

Je te remercie pour ta réponse. En effet, ce sont bien les #N/A qui provoquaient l'erreur.
J'ai décidé de les remplacer comme ca j'ai un textbox vide lorsqu'il n'y a rien dans la ligne.

Sinon ton code marche tres bien aussi je l'ai testé! je regarde la littérature que tu m'as mis en lien!

Merci encore,
 

dd41

XLDnaute Nouveau
Re : filtre combobox sur un userform

Rebonjour,

Je viens de consulter le lien que tu as mis a disposition et je n'ai pas trouvé le lien avec mon problème de combobox. (d'ailleurs il manquait un bout de code dans le dossier que j'ai envoyé je l'ai remis en pièce jointe.)

J'ai fais des recherche préalable sur les forums et les exemples que j'ai trouvé permettent de charger les listbox en fonction des filtres.
Dans mon cas, la listbox est deja chargée et je souhaiterais appliquer les filtres (combobox) afin de trouver la valeur souhaitée pour y appliquer les opérations (ajout, suppression, modification.)

est il possible de faire une telle opération?

Merci encore pour votre aide et votre temps,
 

Pièces jointes

  • Classeur1.xlsm
    46.9 KB · Affichages: 241
  • Classeur1.xlsm
    46.9 KB · Affichages: 234
  • Classeur1.xlsm
    46.9 KB · Affichages: 243
G

Guest

Guest
Re : filtre combobox sur un userform

Re,

je ne vois pas de quels lien tu veux parler (peut-être ceux en dessous de ma signature?)

J' ai répondu à ta demande. Quant à la suivante, je ne vois rien dans ton code qui puissent m'indiquer que tu as essayer quelque chose pour les filtres.

Essai tout d'abord de faire une macro avec l'enregistreur de macro en filtrant ta liste. Vois ce que tu peux en tirer. Recherche sur le forum et reviens avec ce que tu auras fais.

A+
 

dd41

XLDnaute Nouveau
Re : filtre combobox sur un userform

Re,

Je me permet de te renvoyer mon fichier avec mes combobox filtrés (j'ai oublié de retirer le code en commentaire dans l'envoi précédent) du coup le code va fonctionner a l'ouverture.

dans chaque combobox, j'ai la valeur filtrée de chaque colonne afin de pouvoir faire une selection dans la listbox. Le souci c'est que j'ai un message d'erreur.

Je suis déjà allé voir dans les discussions similaires qui m'ont aidé a avancer précédemment donc oui, du coup je suis allé voir les liens sous ta signature (mauvaise compréhension de ma part! désolé.)

merci hasco.
 

Pièces jointes

  • Classeur1.xlsm
    35.3 KB · Affichages: 205
  • Classeur1.xlsm
    35.3 KB · Affichages: 202
  • Classeur1.xlsm
    35.3 KB · Affichages: 209
G

Guest

Guest
Re : filtre combobox sur un userform

Re,

Dans ta procédure IniListbox la variable objet 'Plage' n'est pas définie.

Ce que tu aurais pu voir en faisant un débogage.

Je te laisse trouver la solution (facile).

A+
 

dd41

XLDnaute Nouveau
Re : filtre combobox sur un userform

j'ai rajouté le code suivant apres les declarations de variables :

Dim plage As Object

Set plage = Sheets("nouveau")

cependant, si on déclare l'objet j'obtiens toujours une erreur a la ligne suivante :
If plage(L, 27) = Me.ComboBox1.Text Then
"propriété ou méthode non gérée par cet objet"

je ne sais pas si les procédures inicbo et inilistbox me permette de filtrer la listbox, il s'agit de procédures que j'ai récupéré sur un exemple du forum et je n'ai toujours pas trouvé de ressources pertinentes pour filtrer cette listbox.
 

dd41

XLDnaute Nouveau
Re : filtre combobox sur un userform

Rebonjour hasco,

J'ai modifié le code de mes combobox afin d'effectuer mes filtres. J'ai pris le problème à l'envers, au lieu de charger entièrement mon feuillet dans la listbox, j'applique d'abord les filtres pour que le temps de traitement sois moins long (j'ai entre 20000 et 40000 lignes dans mon fichier original)

Cependant, quand je fais une selection dans les combobox ils ne filtre que les données dans le feuillet, or je souhaiterais faire apparaitre ces lignes dans ma listbox.

j'ai tenté d'utiliser SpecialCells(xlCellTypeVisible) dans ma procédure initialize sans succès.
Aurais tu une piste de reflexion ou bien un exemple qui puisse me permettre d'avancer?

Merci encore pour ton aide.
 

Pièces jointes

  • Classeur1.xlsm
    47.1 KB · Affichages: 363
  • Classeur1.xlsm
    47.1 KB · Affichages: 343
  • Classeur1.xlsm
    47.1 KB · Affichages: 387

dd41

XLDnaute Nouveau
Re : filtre combobox sur un userform

pour créer les filtres et les afficher dans la listbox, j'ai modifier la procédure comme suit :

Private Sub listesiglum_Change()

[A1].AutoFilter Field:=8, Criteria1:=Me.listesiglum

Charger_ListBox

End Sub

a executer pour chaque combobox.
 

Discussions similaires