XL 2019 ComboBox qui affiche seulement certaines lignes d'une feuille

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 !

cagodue

XLDnaute Nouveau
Bonjour,

J'ai une feuille avec des données qui proviennent de différentes équipe de travail. J'aimerais que si c'est l'équipe 2 qui ouvre mon userform, que ce soit seulement les données que l'équipe 2 a alimenté qui soient disponible dans le combobox. J'ai essayé un petit code qui fonctionne bien pour limiter ce qu'il y a dans le combobox

(eqtri est le numéro d'équipe)

VB:
eqtri = wi.Range("A1").Value

    
    For j = 2 To ws.Range("D65536").End(xlUp).Row
          If ws.Range("B" & j) = eqtri Then
          With ComboNom
         .AddItem ws.Range("D" & j)
        End With
        End If
    Next j

Mais mon problème est celui-ci, les données qui sont alimentés dans mon userform lorsque l'on change le combobox le sont avec ce code :

Code:
    If Me.ComboNom.ListIndex = -1 Then Exit Sub
  Ligne = Me.ComboNom.ListIndex + 2

Donc, les choix de mon combobox ne sont plus liés avec la bonne ligne de ma feuille. J'ai essayé de faire un tri dans mon tableau avant d'Afficher mon userform mais ça ne fonctionne pas plus.

Merci
 
Bonjour
il te faut une colonne masqué dans la combo dans le quel tu mettra l'index de ligne

VB:
eqtri = wi.Range("A1").Value
With ComboNom
    .ColumnCount = 2
    columwidths = "100;0"
    For j = 2 To ws.Range(rows.count,"B").End(xlUp).Row
        If ws.Range("B" & j) = eqtri Then
            .AddItem ws.Range("D" & j)
            .List(.listcount - 1) = ws.Range("D" & j).Row
        End If
    Next j
End With

et dans le click sur combo
VB:
With ComboNom
    If .ListIndex = -1 Then Exit Sub
    Ligne = .List(.ListIndex, 1)
End With
 
Merci beaucoup, je vais faire des tests, je ne connaissais pas.

Par contre, j'ai une erreur 1004 : Erreur définie par l'application ou l'objet. En mode débog, c'est la ligne
VB:
If ws.Range("B" & j) = eqtri Then
qui bug. Saurais-tu pourquoi ?

Encore merci
 
Re
Worksheets représente la Collection des Feuilles du Classeur concerné
Worksheet le type d'une variable par exemple 😀im WS as Worksheet
veut dire : Ws représente une Feuille !
puis
VB:
For Each Ws in ThisWorkBook.WorkSheets
pour chaque feuille dans la Collection des Feuilles du Classeur !
jean marie
 
- 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
72
Affichages
1 K
Réponses
3
Affichages
298
Réponses
11
Affichages
1 K
Retour