IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Listbox n'affichant rien mais récupérant les valeurs [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    autodidacte
    Inscrit en
    Novembre 2013
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 517
    Points : 684
    Points
    684
    Par défaut Listbox n'affichant rien mais récupérant les valeurs
    Bonjour,

    J'ai un problème concernant une lsitbox qui récupère bien les références dans le dico mais n'affiche rien....


    je mets le fichier en PJ et je vous laisse essayer avec une référence que je viens d'ajouter: 415005
    1) cliquer sur recherche PR
    2) mettre dans le combobox référence 415005

    cette référence n'apparait pas dans la listbox

    Par contre si on le selectionne directement sans taper par le clavier, il le trouve et apparait dans la listbox...

    Je ne comprend pas....
    Merci d'avance de votre aide

    le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    Option Explicit
    Option Base 1
    Option Compare Text
    Dim a1$, a2$, a3$, a4$, a5$
    Dim DerniereLigne As Long
     
    Private Sub C1_Change() ' Combobox n° PR de l'userform dans recherche
        If C1 = "" Then C1_Click
    End Sub
     
    Private Sub C2_Change() ' Combobox Date exp PR de l'userform dans recherche
        If C2 = "" Then C1_Click
    End Sub
     
    Private Sub C3_Change() ' Combobox FICHE CONSIGNE de l'userform dans recherche
        If C3 = "" Then C1_Click
    End Sub
    Private Sub C4_Change() ' Combobox date exp FICHE CONSIGNE de l'userform dans recherche
        If C4 = "" Then C1_Click
    End Sub
    Private Sub C5_Change() ' Combobox Référence de l'userform dans recherche
        If C5 = "" Then C1_Click
    End Sub
    Private Sub C1_Click() ' Combobox Entité de l'userform dans recherche
        Dim I&, Fin&, y&, a&, AA
        Application.ScreenUpdating = False
        If C1 = "" Then a1 = "*" Else a1 = C1
        If C2 = "" Then a2 = "*" Else a2 = C2
        If C3 = "" Then a3 = "*" Else a3 = C3
        If C4 = "" Then a4 = "*" Else a4 = C4
        If C5 = "" Then a5 = "*" Else a5 = C5
     
        If a1 = "*" And a2 = "*" And a3 = "*" And a4 = "*" And a5 = "*" Then L1.Clear: Exit Sub
        L1.Clear
        With Feuil1
            y = 2
            Fin = .Range("A" & Rows.Count).End(xlUp).Row
            AA = .Range("A2:AH" & Fin)
        End With
        For I = 1 To UBound(AA)
                If AA(I, 1) Like a1 And AA(I, 2) Like a2 And AA(I, 3) Like a3 And AA(I, 4) Like a4 And AA(I, 5) Like a5 Then AA(I, 22) = "OUI": y = y + 1
        Next I
        If y = 1 Then Exit Sub
        If y = 2 Then
        ReDim bb(1, 2)
            For I = 1 To UBound(AA)
                If AA(I, 22) = "oui" Then
                    For a = 1 To 22
                        bb(1, a) = AA(I, a)
                    Next a
                  GoTo 1
                End If
    1        Next I
        Else
            ReDim bb(y - 1, UBound(AA, 2) - 1)
            y = 1
            For I = 1 To UBound(AA)
                If AA(I, 22) = "OUI" Then
                    For a = 1 To 22
                        bb(y, a) = AA(I, a)
                    Next a
                    y = y + 1
                End If
            Next I
       End If
     
        With L1
            .ColumnCount = 5 ' nombre de colonnes dans la list box L1
            .ColumnWidths = "60;300;100;300;60" 'largeur des champs dans la listbox L1
            .List = bb
        End With
        End Sub
     
    Private Sub C2_Click() ' Combobox Direction de l'userform dans recherche
        C1_Click
    End Sub
     
    Private Sub C3_Click() ' Combobox Service de l'userform dans recherche
        C1_Click
    End Sub
     
    Private Sub C4_Click() ' Combobox Référence AT de l'userform dans recherche
        C1_Click
    End Sub
    Private Sub C5_Click() ' Combobox Date AT  de l'userform dans recherche
       C1_Click
    End Sub
     
     
    Private Sub UserForm_Initialize()
    Dim k As Byte
     
    L1.ZOrder 1
     
    For k = 1 To 5
        Remplissage Me.Controls("C" & k), k
    Next k
    End Sub
     
    Private Sub Remplissage(ByVal Cmb As Object, ByVal Col As Integer)
    Dim Fin As Long, I As Long
    Dim MonDico As Object
    Dim AA
     
    With Worksheets("Liste")
        .AutoFilterMode = False
        Fin = .Cells(.Rows.Count, 1).End(xlUp).Row
        AA = .Range("A2:AH" & Fin)
    End With
     
    Set MonDico = CreateObject("Scripting.Dictionary")
    For I = 1 To UBound(AA, 1)
        If AA(I, Col) <> "" Then
            If Not MonDico.Exists(AA(I, Col)) Then MonDico.Add AA(I, Col), AA(I, Col)
        End If
    Next I
    If MonDico.Count > 0 Then Cmb.List = Application.Transpose(MonDico.Items)
    MonDico.RemoveAll
    Set MonDico = Nothing
    End Sub

    Bon week-end
    Fichiers attachés Fichiers attachés

  2. #2
    Membre éclairé
    Homme Profil pro
    autodidacte
    Inscrit en
    Novembre 2013
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 517
    Points : 684
    Points
    684
    Par défaut
    bonjour,

    j'ai modifié le code lors du changement du combobox et cela à l'air de fonctionner maintenant en placant ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Private Sub C1_Change() ' Combobox n° PR de l'userform dans recherche
    Dim I As Integer
    Dim CHOIX
    Dim NBref
     
    CHOIX = C1.Value
    NBref = Worksheets("Liste").Cells(Rows.Count, 1).End(xlUp).Row
     
    'Remplir le tableau L1 après filtrage
    For I = 2 To NBref
        If Range("A" & I).Value = CHOIX Then
            Me.L1.AddItem (Range("  A" & I))
            Me.L1.List(L1.ListCount - 1, 1) = Range("B" & I)
            Me.L1.List(L1.ListCount - 1, 2) = Range("C" & I)
            Me.L1.List(L1.ListCount - 1, 3) = Range("D" & I)
            Me.L1.List(L1.ListCount - 1, 4) = Range("E" & I)
        End If
    Next I
    End Sub
    Par contre les références recerchée précédemment ne se suppirme pas de la listbox. Si j'essaye de mettre 415005 dans la combobox1 (C1), la listbox affiche les références: 41244, 41536, 415005
    si je recherhce une autre référence sans fermer le userform, la nouvelle référence apparait mais les références 41244, 41536, 415005 restent toujours affichées..

    Merci d'avance de votre aide

  3. #3
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    avant de remplir la ListBox :
    Hervé.

  4. #4
    Membre éclairé
    Homme Profil pro
    autodidacte
    Inscrit en
    Novembre 2013
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 517
    Points : 684
    Points
    684
    Par défaut
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/01/2011, 14h07
  2. Réponses: 5
    Dernier message: 28/03/2010, 22h47
  3. [MySQL] Listes n'affichant pas toujours exactement les valeurs correspondantes aux enregistre
    Par eddycool dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 26/05/2009, 17h25
  4. Réponses: 5
    Dernier message: 10/07/2008, 13h50
  5. Réponses: 3
    Dernier message: 22/04/2007, 00h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo