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 :

Remplir une listbox à partir 'une feuille filtrée [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 144
    Par défaut Remplir une listbox à partir 'une feuille filtrée
    Bonjour,

    Me revoici encore pour l'utilisation d'une listbox.

    Mon but cette fois ci est de remplir une listbox "lcont" dans le form "listcont".
    La source est un tableau dans la feuille "contclient" pour laquelle je souhaite filtrer et ne garder que les lignes dont la colonne "a" corresponde à la valeur stocké dans la variable "deb".
    J'utilise une variable "deb" car en indiquant la valeur du champ situé dans un autre form "dossier" cela ne fonctionne pas.
    La boucle for next est mon filtre.

    Le programme ci dessous ne plante pas, mais n'affiche que la premiere ligne dans la listbox!!!!!! alors qu'il devrait y en avoir plusieurs.

    Je ne comprends pas pourquoi ma boucle ne génère pas les lignes ?
    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
    Option Explicit
     
    Dim i As Integer
    Dim fin As Integer
    Dim deb As Integer
     
    Sub listeconts()
     
    fin = Sheets("contclient").Range("d3").Value + 7
    deb = DOSSIER.saisiosr.Value
     
    Load listcont
     
    For i = 7 To fin
        If deb = Sheets("contclient").Range("a" & i).Value Then
            listcont.lcont.AddItem Sheets("contclient").Range("c" & i).Value
            listcont.lcont.List(listcont.lcont.ListCount - 1, 1) = Sheets("contclient").Range("b" & i).Value
            listcont.lcont.List(listcont.lcont.ListCount - 1, 2) = Sheets("contclient").Range("e" & i).Value
            listcont.lcont.List(listcont.lcont.ListCount - 1, 3) = Sheets("contclient").Range("f" & i).Value
            listcont.lcont.List(listcont.lcont.ListCount - 1, 4) = Sheets("contclient").Range("d" & i).Value
        End If
    Next i
    listcont.Show
     
    End Sub
    Merci pour votre aide,
    christophe

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Le problème vient sans doute de tes données. Valeur de "Fin" ? combien de "deb". Utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        If deb = Sheets("contclient").Range("a" & i).Value Then
            Debug.Print i
    et la fenêtre d'exécution pour connaître les valeurs de i correspondant au test.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 57
    Par défaut
    Il me semble que par défaut, le nombre de ligne affichées d'une listbox est fixée à 8.

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    @meud007 :

    La limite de 8 concerne les listes déroulantes de validation. Pour les listbox, le nombre max de lignes affichées dépend de leur taille.

  5. #5
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 144
    Par défaut
    Bien vu Daniel c.

    J'avais un souci avec une donnée dans la feuille se qui arrété la boucle.
    la variable fin était égale à 7

    je vais me coucher !!!!! cela fait un bon moment que je cherchais ailleurs

    merci encore

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

Discussions similaires

  1. [XL-2010] Comment tranférer une valeur d'une listbox (userform) à une cellule de worksheet?
    Par Guy7090 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/07/2014, 14h29
  2. [Débutant] Mettre une listBox dans une colonne d'une listView
    Par Tom57300 dans le forum VB.NET
    Réponses: 1
    Dernier message: 23/04/2014, 15h40
  3. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 17h37
  4. Réponses: 2
    Dernier message: 16/10/2008, 08h52
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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