Salut le Fofo,
En cette veille de fête nationale et en ce jour footballistique, je m'adonne à un peu de travail en VBA...
Voilà le pb :
J'ai un USF qui m'affiche par le biais d'un combobox une plage:
Private Sub UserForm_Initialize()
Sheets("Choix").Activate
' Au chargement de la page, récupère les valeurs qui se trouve sur la feuille Choix
' Cela correspond à toutes les lignes qui sont importantes pour la recherche.
Dim Sh As Worksheet
Set Sh = Sheets("Choix")
Dim nbUti As Integer
nbUti = 1
While Not IsEmpty(Sh.Cells(nbUti, 1))
nbUti = nbUti + 1
Wend
' Met les valeurs de la feuille "Choix" de A2,H-> la fin
Me.ML_Utilisateur.RowSource = "Choix!A2:H" & nbUti - 1
etc..
J'ai d'autres combo qui me permettent d'appliquer des filtres sur la feuille "Choix" et je souhaiterais que dans le premier Combo, ne s'affichent que les lignes filtrées...
Je tente :
Private Sub Valider_Click()
Dim c As Range
Me.ML_Utilisateur.RowSource = ""
With Worksheets("Choix")
For Each c In .Range("A2:H" & .Cells(.Rows.Count, 2).End(xlUp).Row).SpecialCells(xlCellTypeVisible)
Me.ML_Utilisateur.AddItem (c.Value)
Next
End With
End Sub
Mais le pb c'est que ça m'affiche toutes les valeurs les unes en dessous des autres et non pas en colonnes comme c'était le cas avec .RowSource. Je me retrouve donc avec une liste à une colonne avec des données mélangées...
Je ne peux pas poster le fichier car trop de données, y compris dans le code nécessitant un gros travail d'"RAZ" avant diffusion...
Une idée pour m'aider? Car ça fait au moins 1 semaine que je modifie mon code en vain...
Merci!
En cette veille de fête nationale et en ce jour footballistique, je m'adonne à un peu de travail en VBA...
Voilà le pb :
J'ai un USF qui m'affiche par le biais d'un combobox une plage:
Private Sub UserForm_Initialize()
Sheets("Choix").Activate
' Au chargement de la page, récupère les valeurs qui se trouve sur la feuille Choix
' Cela correspond à toutes les lignes qui sont importantes pour la recherche.
Dim Sh As Worksheet
Set Sh = Sheets("Choix")
Dim nbUti As Integer
nbUti = 1
While Not IsEmpty(Sh.Cells(nbUti, 1))
nbUti = nbUti + 1
Wend
' Met les valeurs de la feuille "Choix" de A2,H-> la fin
Me.ML_Utilisateur.RowSource = "Choix!A2:H" & nbUti - 1
etc..
J'ai d'autres combo qui me permettent d'appliquer des filtres sur la feuille "Choix" et je souhaiterais que dans le premier Combo, ne s'affichent que les lignes filtrées...
Je tente :
Private Sub Valider_Click()
Dim c As Range
Me.ML_Utilisateur.RowSource = ""
With Worksheets("Choix")
For Each c In .Range("A2:H" & .Cells(.Rows.Count, 2).End(xlUp).Row).SpecialCells(xlCellTypeVisible)
Me.ML_Utilisateur.AddItem (c.Value)
Next
End With
End Sub
Mais le pb c'est que ça m'affiche toutes les valeurs les unes en dessous des autres et non pas en colonnes comme c'était le cas avec .RowSource. Je me retrouve donc avec une liste à une colonne avec des données mélangées...
Je ne peux pas poster le fichier car trop de données, y compris dans le code nécessitant un gros travail d'"RAZ" avant diffusion...
Une idée pour m'aider? Car ça fait au moins 1 semaine que je modifie mon code en vain...
Merci!
Dernière édition: