Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Liste déroulante avec condition

dede869

XLDnaute Occasionnel
Bonjour a vous, après plusieurs tentative je ne trouve rien pour m’aider, Dans mon uersform3, j'ai un combobox2 que j'aimerais qu'il indique seulement les numéro d'employé (H9 a H11)qui ont appliquer sur l'affichage en jaune (A9), est- ce possible?

De plus cette combobox2 doit être ajustable automatiquement car le nombre d'employé peut être différent sur un affichage.

Merci de votre aide

dede869
 

Pièces jointes

  • Affichage 2016.xlsm
    114.4 KB · Affichages: 53

thebenoit59

XLDnaute Accro
Re : Liste déroulante avec condition

En ce qui concerne les ListView, je n'ai jamais travaillé dessus. Mais si tu es d'accord de passer en ListBox on peut trouver un arrangement.

Edit: Quoi que, il n'a pas l'air compliqué de trouver la solution, quelles colonnes souhaites-tu seulement avoir ?
 

thebenoit59

XLDnaute Accro
Re : Liste déroulante avec condition

Une solution.
 

Pièces jointes

  • dede869 - Liste déroulante avec condition (1).xlsm
    122.7 KB · Affichages: 25
  • dede869 - Liste déroulante avec condition (1).xlsm
    122.7 KB · Affichages: 27

dede869

XLDnaute Occasionnel
Re : Liste déroulante avec condition

Bonjour thebenoit59, voici ou je suis rendu dans ms listbox1 il y a un bug sur le nombre de colonne maximum dans la listbox1, ou ca bug c'est ici:

List(vLi, Vcol - 1) = Cells(Est.Row, Vcol)

Pour déterminé quel colonne doit avoir je vais dans les propriété de ma listbox et dans columnwidhs je mes les dimension de chaque colonne et ceux que je ne veut pas j'indique 0 comme dimension.

Dans cete procédure.


Private Sub ComboBox3_Click()
Dim Plage As Range, Est, Add As String, vLi As Integer, Vcol As Byte
With ListBox1
.Clear
Set Plage = Range("A3:A" & [A65000].End(xlUp).Row)
Set Est = Plage.Find(ComboBox3)
If Not Est Is Nothing Then
Add = Est.Address
Do
.AddItem Cells(Est.Row, 1)
For Vcol = 2 To 11
List(vLi, Vcol - 1) = Cells(Est.Row, Vcol)
Next
vLi = vLi + 1
Set Est = Plage.FindNext(Est)
Loop While Not Est Is Nothing And Est.Address <> Add
End If
End With
End Sub
 

thebenoit59

XLDnaute Accro
Re : Liste déroulante avec condition

Bonsoir Dede.
Avant de regarder ton code de plus près, as-tu regardé celui que j'ai proposé dans mon dernier message.
J'affichais dans la ListBox les colonnes souhaitées. Pour la largeur des colonnes, à toi de les entrer en dur dans les propriétés (ça évite des procédures inutiles). Et ne mettre que celles qui concernent les zones concernées.
Analyse le code proposé et on en discute derrière
 

thebenoit59

XLDnaute Accro
Re : Liste déroulante avec condition

S'il faut les en-têtes alors nous ne pourrons pas passer avec une ListBox.
Sauf, si tu places des zones de texte au dessus de la liste pour nommer manuellement les en-têtes.
 

dede869

XLDnaute Occasionnel
Re : Liste déroulante avec condition

Bonjour Thebenoit69, j'ai réussi a faire fonctionné ma listbox conne je le veut, merci de ton aide, j'ai un autre demande, dans mon userform 3, j'au une listbox qui affiche les numéro des employé qui ont postule sur l'affichage avec un checkbox, donc je peut cocher ceux qui ont été choisi, est il possible de compté le nombre de case cocher et l'indiquer dans la textbox (nombre choisi).

Merci

dede869
 

Pièces jointes

  • dede869 - Liste déroulante avec condition (10)1-2.xlsm
    162.2 KB · Affichages: 30

thebenoit59

XLDnaute Accro
Re : Liste déroulante avec condition

Bonjour Dede.

Je ne viens pas de Lyon mais de Lille, donc restons à thebenoit59
Oui il est faisable de réaliser un comptage.

Dans un premier temps il va falloir ajouter cette partie :

Code:
Private Sub LB_Change()
Dim i As Integer, j As Integer
    'On va déterminer le nombre de valeurs sélectionnées
    i = 0
    With Me.LB
        For i = 0 To .ListCount - 1
        If .Selected(i) Then j = j + 1
        Next i
    End With
    'Et on remplace la valeur du compteur par le nombre calculé
    Me.Compteur1.Caption = j
End Sub

Et également modifier cette partie, afin de remettre le compteur à zéro au changement d'affichage.

Code:
Private Sub ComboBox9_Change()
    With Me
        'On remet le compteur à 0
        .Compteur1.Caption = 0
        If .ComboBox9.Text = "" Then .LB.Clear: .LB.Enabled = False: Exit Sub
        If d(.ComboBox9.Value) = "" Then MsgBox "Aucun postulant pour ce poste": .LB.Clear: .LB.Enabled = False: Exit Sub
        .LB.Enabled = True
        .LB.List = Application.Transpose(Split(d(.ComboBox9.Value), ":"))
    End With
End Sub
 

dede869

XLDnaute Occasionnel
Re : Liste déroulante avec condition

Bonjour Thebenoit59, excuse moi une erreure de frappe, il y a un blocage avec "Private Sub ComboBox9_Change()" erreure de compilation, membre de méthode ou de donné introuvable. et aucune indication pour envoyé l'info dans la textbox2 de l'userform3.

Merci

dede869
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…