Filtre sur liste avec condition sur la même feuille
cs_YVO22
Messages postés14Date d'inscriptionlundi 25 décembre 2000StatutMembreDernière intervention17 mars 2009
-
20 févr. 2009 à 23:13
cs_YVO22
Messages postés14Date d'inscriptionlundi 25 décembre 2000StatutMembreDernière intervention17 mars 2009
-
25 févr. 2009 à 20:10
Bonsoir a tous
J'ai un problème avec une liste que je voudrais filtrer.
Dans ma feuille "basefil"
J'ai une 1ere colonne "A" qui contient une centaine de numéros différents correspondants a des machines (A1 étant le titre numéro de machine)
J'ai aussi une colonne "I" qui contient 3 possibilités : "DPAS","DPAA" et "DPGC"correspondants a un type de montage.("I1" étant le titre type)
Ces numéros ne sont pas rangées dans la colonne "A" a suivre par categories (par exemple toutes les DPAS puis les DPAA etc...) d'ou la difficulté de les récuperer.
A partir d'une userform:
Sachant que "textbox3" (donne le type de facon automatique) ,comment puis-je afficher dans le combobox "numfil" les numéros correspondants.
J'ai beau chercher je n'y arrive pas sauf en rangeant les numéros par type et donc simplement endéclarant une plage de données.
Si quelq'un a une solution je suis prenneur
Merci
Bonne soirée
A voir également:
Filtre sur liste avec condition sur la même feuille
cnt
Messages postés219Date d'inscriptionlundi 21 novembre 2005StatutMembreDernière intervention20 décembre 20101 22 févr. 2009 à 14:29
Salut YVO
Je te suggère cette solution avec un "ComboBox" (ou "ListBox") qui contiendra les types de machines et une "ListBox" (ou "ComboBox") pour les N° de nomenclatures
***** Partie déclarations du module de code de l'UserForm *********
'Tableaux des N° nomenclatures pour les différents types de machines
Private TB_DPAS() As String, TB_DPAA() As String, TB_DPGC() As String
'Tableau des types de machines
Private TB_Types()
'Constantes des 3 types de machinesPrivate Const DPAS As String "DPAS", DPAA As String "DPAA", DPGC As String = "DPGC"
********* Zône de code *************
'Procédure de démarrage l'ouverture de l'UserForm
Private Sub UserForm_Initialize()
Filtrage
TypeMachine.List = TB_Types
TypeMachine.ListIndex = 0
N°Machine.List = TB_DPAS
End Sub
' Procédure d'évènement "Change" de la ComboBox contenant les 3 types
Private Sub TypeMachine_Change()
' Remplissage de la ListBox qui reçoit les N° nomenc. suivant le type choisit
If TypeMachine.List(TypeMachine.ListIndex) = DPAS Then
N°Machine.List = TB_DPAS
ElseIf TypeMachine.List(TypeMachine.ListIndex) = DPAA Then
N°Machine.List = TB_DPAA
ElseIf TypeMachine.List(TypeMachine.ListIndex) = DPGC Then
N°Machine.List = TB_DPGC
End If
End Sub
' Procédure de rangement des N° nomenclatures en tableaux
Private Sub Filtrage()
Dim i As Integer
' Variables object "Range" des plages utiles
Dim N°Machine As Range, TypeMachine As Range
' Variables pour comptage
Dim k As Integer, l As Integer, m As Integer
' Tableau des types de machines
TB_Types = Array(DPAS, DPAA, DPGC)
'Algorithme de rangement en tableaux
With Sheets("basefil")
' Référence de la plage des N° nomenclatures
Set N°Machine = Range("a2", Range("a2").End(xlDown))
' Référence de la plage des types de machines
Set TypeMachine = Range("i2", Range("i2").End(xlDown))
' Bouclage sur la plage des types de machines
For i = 1 To TypeMachine.Rows.Count
If TypeMachine.Cells(i).Value = DPAS Then
ReDim Preserve TB_DPAS(k)
TB_DPAS(k) = N°Machine.Cells(i).Value
k = k + 1
ElseIf TypeMachine.Cells(i).Value = DPAA Then
ReDim Preserve TB_DPAA(l)
TB_DPAA(l) = N°Machine.Cells(i).Value
l = l + 1
ElseIf TypeMachine.Cells(i).Value = DPGC Then
ReDim Preserve TB_DPGC(m)
TB_DPGC(m) = N°Machine.Cells(i).Value
m = m + 1
End If
Next i
End With
End Sub
En espérant d'avoir été compris et utile je te souhaite bonne programmation.
Bye, bye