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

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
 

patricktoulon

XLDnaute Barbatruc
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
 

cagodue

XLDnaute Nouveau
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
 

ChTi160

XLDnaute Barbatruc
Re
Worksheets représente la Collection des Feuilles du Classeur concerné
Worksheet le type d'une variable par exemple :Dim 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
 

Discussions similaires

Statistiques des forums

Discussions
312 203
Messages
2 086 195
Membres
103 153
dernier inscrit
SamirN