Filtre automatique à l'ouverture de userform

  • Initiateur de la discussion Initiateur de la discussion Geraldine
  • Date de début Date de début

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 !

Geraldine

XLDnaute Occasionnel
Bonjour,

Est-il possible de faire un filtre automatique à l'initialize d'une userform et aussi à la selection d'un optionbutton

J'ai un classeur1 comprenant une feuille nommé "ARTICLE", en colonne A je stipule le code famille de l'article soit "SOL" ou "PLAFOND' ou "MUR" etc ...

Dans le classeur2, j'ai plusieurs userform [UserformSOL / UserformPLAFOND / UserformMUR]+ combobox.
A l'ouverture de la UserformSOL, je veux que ma liste d'articles selectionne uniquement les articles de la famille SOL.
A l'ouverture de la UserformPLAFOND, je veux que ma liste d'articles selectionne uniquement les articles de la famille PLAFOND.
etc ...

merci à tous, Géraldine

Option Explicit
Dim WbkC As Workbook, ShtC As Worksheet

Private Sub userform_initialize()
Dim DerLig As Integer, NumPx As Integer, VArt As String
Set WbkC = Workbooks("DEVIS.xls")
Set ShtC = WbkC.Worksheets("ARTICLE")
DerLig = ShtC.Range("A65536").End(xlUp).Row
For NumPx = 4 To DerLig
VArt = ShtC.Range("A" & NumPx).Value
Me.ComboBox1.AddItem VArt
Next NumPx
Me.TextBox1 = ActiveSheet.Range("c11").Value
End Sub

Private Sub ComboBox1_Change()
Dim Lig As Integer
Lig = Me.ComboBox1.ListIndex
Me.TextBox1.Value = ShtC.Range("b" & 3 + Lig + 1).Value
End Sub
 
Re : Filtre automatique à l'ouverture de userform

Bonjour Geraldine, Chloulou

essaye peut être comme ceci :

Code:
Set ShtC = WbkC.Worksheets("feuil1")
ShtC.Range("A1").AutoFilter Field:=2, Criteria1:="mur"

en supposant que tu veuilles l'insérer sur la ligne 1

bonne fin d'après midi
@+
 
Re : Filtre automatique à l'ouverture de userform

bonjour pierrot93, non c'est pas ça.

le filtre automatique est bien activé dans le classeur1, mais c'est pas ce qui m'interesse.
Je veux le resultat du filtre automatique dans ma combobox dans le classeur2.

@
 
Re : Filtre automatique à l'ouverture de userform

après tu la remplis comme avant mais comme les cellules sont masquées, ca ne devrait pas poser de pb...car quand on fait un copy paste avpres un filtre on ne copy que les cellules non masquées.
 
Re : Filtre automatique à l'ouverture de userform

le problème c'est aussi que les boutons ne sont pas dans le classeur filtré...
perso j'ai fais un truc qui marche si je le mets dans classeur1 et si je le mets dan clsseur3 ca plante ( alors que j'ai fait attention aux adresses).
 
Re : Filtre automatique à l'ouverture de userform

Re

regarde le code ci dessous, nom des objets à modifier :

Code:
Private Sub UserForm_Initialize()
Dim c As Range
With Workbooks("Classeur1.xls").Sheets("Feuil1")
.Range("A1").AutoFilter 2, ">126"
For Each c In .Range("B2:B" & .Range("B65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible)
    Me.ComboBox1.AddItem c.Value
Next c
End With
End Sub

@+
 
Re : Filtre automatique à l'ouverture de userform

re et merci pierrot93, ça marche et en esperant pouvoir l'integrer dans mon application.

Juste une chose, lors du choix dans la liste, ça bug à l'insertion du prix

Option Explicit
Dim WbkC As Workbook, ShtC As Worksheet

Private Sub userform_initialize()
Dim c As Range
With Workbooks("Classeur1.xls").Sheets("Feuil1")
.Range("a4").AutoFilter 1, "=sol" je l'ai modifié
For Each c In .Range("B4:B" & .Range("B65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible)
Me.ComboBox1.AddItem c.Value
Next c
End With
End Sub

Private Sub ComboBox1_Change()
Dim Lig As Integer
Lig = Me.ComboBox1.ListIndex
Me.TextBox1.Value = ShtC.Range("c" & 3 + Lig + 1).Value
End Sub

Merci, géraldine
 
Re : Filtre automatique à l'ouverture de userform

et bien c'est pas gagné je ne vois pas comment modifier, afin de pouvoir en retirer le prix de l'article

Private Sub ComboBox1_Change()
Dim Lig As Integer
Lig = Me.ComboBox1.ListIndex
Me.TextBox1.Value = ShtC.Range("c" & 3 + Lig + 1).Value
End Sub

Bonne soirée
Géraldine
 

Pièces jointes

- 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

Retour