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 :

Problème affichage Listbox Filtrée [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Invité
    Invité(e)
    Par défaut Problème affichage Listbox Filtrée
    Bonjour,

    Meilleurs vœux et bonne année à tous.

    Je me suis aidé de certaines discussions pour afficher une ListBox suivant une combobox, mais les 2 dernières colonnes ne s'affichent pas.

    La plage de données sur la feuille comporte 12 colonnes ( de A à L), la selection combobox est la colonne 2. Voici mon code, je n'arrive pas à repérer mes erreurs
    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
    Option Explicit
    Private Sub Userform_Initialize()
        Dim i As Long, LastLig As Long
     
        Application.ScreenUpdating = False
        With Worksheets("BD")
            LastLig = .Cells(.Rows.Count, "A").End(xlUp).Row
            Me.ComboBox1.Clear
            For i = 2 To LastLig
                If .Range("B" & i) <> "" Then
                    Me.ComboBox1 = .Range("B" & i)
                    If Me.ComboBox1.ListIndex = -1 Then Me.ComboBox1.AddItem .Range("B" & i)
                End If
            Next i
        End With
     
        Me.ComboBox1.ListIndex = -1
     
        With Me.ListBox1
            .ColumnCount = 12
            .ColumnWidths = "30;80;80;80;80;80;80;80;80;80;80;80"
        End With
    End Sub
     
    Private Sub ComboBox1_Change()
        Dim LastLig As Long
        Dim Code As String
        Dim c As Range
     
        Application.ScreenUpdating = False
        Me.ListBox1.Clear
     
        Code = Me.ComboBox1.Value
     
        If Me.ComboBox1.ListIndex > -1 Then
            With Worksheets("BD")
                .AutoFilterMode = False
                LastLig = .Cells(.Rows.Count, "B").End(xlUp).Row
                .Range("B1:B" & LastLig).AutoFilter Field:=1, Criteria1:=Code
                For Each c In .Range("B2:B" & LastLig).SpecialCells(xlCellTypeVisible)
                    With Me.ListBox1
                        .AddItem c
                        .List(.ListCount - 1, 0) = c.Offset(0, -1)
                        .List(.ListCount - 1, 1) = c.Offset(0, 0)
                        .List(.ListCount - 1, 2) = c.Offset(0, 1)
                        .List(.ListCount - 1, 3) = c.Offset(0, 2)
                        .List(.ListCount - 1, 4) = c.Offset(0, 3)
                        .List(.ListCount - 1, 5) = c.Offset(0, 4)
                        .List(.ListCount - 1, 6) = c.Offset(0, 5)
                        .List(.ListCount - 1, 7) = c.Offset(0, 6)
                        .List(.ListCount - 1, 8) = c.Offset(0, 7)
                        .List(.ListCount - 1, 9) = c.Offset(0, 8)
                        '.List(.ListCount - 1, 10) = c.Offset(0, 9)
                        '.List(.ListCount - 1, 11) = c.Offset(0, 11)
     
                    End With
                Next c
                .AutoFilterMode = False
            End With
        End If
    End Sub
     
    Private Sub ListBox1_Click()
        Me.TextBox1 = ListBox1.List(ListBox1.ListIndex, 0)
        Me.TextBox2 = ListBox1.List(ListBox1.ListIndex, 1)
        Me.TextBox3 = ListBox1.List(ListBox1.ListIndex, 2)
        Me.TextBox4 = ListBox1.List(ListBox1.ListIndex, 3)
        Me.TextBox5 = ListBox1.List(ListBox1.ListIndex, 4)
        Me.TextBox6 = ListBox1.List(ListBox1.ListIndex, 5)
        Me.TextBox7 = ListBox1.List(ListBox1.ListIndex, 6)
        Me.TextBox8 = ListBox1.List(ListBox1.ListIndex, 7)
        Me.TextBox9 = ListBox1.List(ListBox1.ListIndex, 8)
        Me.TextBox10 = ListBox1.List(ListBox1.ListIndex, 9)
     
    End Sub
    En vous remerciant par avance.

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Bonsoir,

    tu sais pourquoi les lignes 53 et 54 ne sont pas de la même couleurs que les lignes précédentes ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Merci pour le retour. j'ai mis les lignes 53 et 54 en commentaires car j'ai le message d'erreur ci-dessous
    Nom : erreur Listbox filtrée.JPG
Affichages : 289
Taille : 18,7 Ko
    Et je ne sais pas comment y remédier.

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Donc ton problème n'est pas que les deux dernières colonnes ne sont pas affichées c'est juste que tu n'y met rien dedans ....



    Et qu'elle est donc cette valeur de propriété qui cause problème ? que contiennent tes 2 deux colonnes ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Et qu'elle est donc cette valeur de propriété qui cause problème ? que contiennent tes 2 deux colonnes ?
    je commence par la dernière question: c'est du texte (string)

    Quant à la première question, si je le savais je n'aurai pas sollicité une aide gracieuse.

    Car je ne suis ni développeur, ni un professionnel de l'informatique. Je m'occupe comme je peux.

    Maintenant, si votre intention est de me tendre une perche, alors allons-y. Sinon, je n'ai pas envie de passer ma fin d'année en interrogatoire.

    Pour info, c'est un code de Mercatog que j'ai voulu adapter pour mes besoins (http://www.developpez.net/forums/d11...x/#post6322932)

    Je vous réitère mes meilleurs vœux de fin et de nouvelle année.

    Cordialement,
    Dernière modification par cathodique ; 31/12/2014 à 22h37.

  6. #6
    Membre émérite
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Points : 2 684
    Points
    2 684
    Par défaut
    Bonjour

    Pour avoir accès à plus de 10 colonnes dans un contrôle Listbox, il faut utiliser sa propriété ROWSOURCE pour l'alimenter.

    Bonne année
    Cordialement

    Docmarti.

  7. #7
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Points : 2 156
    Points
    2 156
    Par défaut
    Bonjour,

    Pour plus de 10 colonnes, Additem ne fonctionne pas. Il faut alimenter la ListBox avec un tableau 2D.

    Jacques Boisgontier
    Fichiers attachés Fichiers attachés

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Messieurs, je vous remercie beaucoup. Je l'avais bien lu sur le forum et sur le site de Boisgontier. Mais je ne l'avais pas retenu.

    Merci c'est exactement ce que je voulais obtenir.

    Bon premier jour de l'année. Merci pour le partage de vos connaissances.

    C'est tout à votre honneur.

  9. #9
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Citation Envoyé par cathodique Voir le message
    Maintenant, si votre intention est de me tendre une perche, alors allons-y. Sinon, je n'ai pas envie de passer ma fin d'année en interrogatoire.

    Cordialement,
    Il n'y a rien de cordial dans une réponse de ce genre.

    Tu devrais avoir envie de fermer l'écran (peut-être cathodique, n'est-il pas?) et de prendre une pause.

    Quand on est rendu à répondre de cette façon à des gens qui essaient de t'aider bénévolement, le problème véritable s'approche du PEBKAC. (Problem Exists Between Keyboard And Chair)

    Et puis 12 colonnes pour un ListBox, cela s'approche de l'aberration.

    Tu peux piquer une crise si tu veux, je m'en sacre.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

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

Discussions similaires

  1. Réponses: 24
    Dernier message: 09/04/2014, 12h03
  2. Réponses: 3
    Dernier message: 17/02/2012, 12h28
  3. Réponses: 8
    Dernier message: 21/10/2011, 13h31
  4. Problème affichage filtre
    Par gabgom dans le forum Signal
    Réponses: 0
    Dernier message: 06/10/2011, 16h06
  5. [Débutant]Problème affichage listbox
    Par erfindel dans le forum VBA Access
    Réponses: 9
    Dernier message: 17/06/2008, 15h47

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