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 dynamique - facture


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2008
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 257
    Par défaut listbox dynamique - facture
    Bonjour tout le monde,

    J'ai crée une listbox qui me donne le sommaire de toutes les factures. voici l'image ci-dessous:
    Nom : listbox1.JPG
Affichages : 456
Taille : 37,0 Ko

    lorsqu'on clique sur un item dans la listebox, je veux pouvoir afficher dans une autre listbox tous les items correspondants a cette facture. par exemple la facture 1234 contient 3 items comme vous pouvez voir dans l'image suivante:
    Nom : facture.JPG
Affichages : 434
Taille : 73,8 Ko

    Je réussi parfaitement a populer ma premiere listbox qui me donne le sommaire de toutes les factures. Mon problème c'est de populer ma deuxieme listbox qui devrait m'afficher tous les items de cette facture. le champ commun que j'utilise est le numero de la facture (invoice #)


    ici est le code que j'utilise pour populer ma premiere listbox :
    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
    Sub populatelstSales()
     
    Dim ws      As Worksheet
    Dim rng     As Range
    Dim MyArray                 
     
    Set ws = Sheets("SalesRawData")
     
    Set rng = ws.Range("B3:R" & ws.Range("B" & ws.Rows.Count).End(xlUp).Row)
     
        With Sheets("SALES").lstSales
            .Clear
            .ColumnHeads = False
            .ColumnCount = rng.Columns.Count
     
            '~~> create a one based 2-dim datafield array
             MyArray = rng
     
            '~~> fill listbox with array values
            .List = MyArray
     
            '~~> Set the widths of the column here. Ex: For 5 Columns
            '~~> Change as Applicable
            .ColumnWidths = "100;100;100;100;100;100;150;"
            .TopIndex = 0
        End With
     
        Range("A1").Select
     
    End Sub
    Pouvez vous svp m'illuminer de comment je pourrai faire pour afficher la liste de tous les items que vous voyez dans la 2e image en fonction de la selection faite dans la premiere listbox (Image 1).

    Merci d'avance de votre aide.

    Amo

  2. #2
    Membre éclairé
    Inscrit en
    Mars 2008
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 257
    Par défaut
    ok j'ai réussi à populer la deuxime listbox a partir de la premiere avec invoice # comme condition mais je réalise qu'en utilisant addItem, je suis limité a 10 colonnes seulement.
    voici mon 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
    Sub populatelstInvoiceItems()
     
    Dim ws As Worksheet
    Dim rng As Range
    Dim LastRow As Long
    Dim lC As Integer
    Dim r As Integer
     
    Set ws = Sheets("PurchaseRawData")
    LastRow = ws.Range("C65536").End(xlUp).Row
     
    Set rng = ws.Range("C3:Z" & ws.Range("C" & ws.Rows.Count).End(xlUp).Row)
     
    lC = 0
        With Sheets("INVOICE ITEMS").lstInvoiceItems
            .Clear
            .ColumnWidths = "120;100;110;120;120;110;110;100"
            For r = 3 To LastRow
                If ws.Cells(r, 3) = Sheets("INVOICE ITEMS").Cells(7, 5) Then
     
                    .AddItem
                    .List(lC, 0) = ws.Cells(r, 13)
                    .List(lC, 1) = ws.Range("N" & r)
                    .List(lC, 2) = ws.Range("D" & r)
                    .List(lC, 3) = ws.Range("O" & r)
                    .List(lC, 4) = ws.Range("D" & r)
                    .List(lC, 5) = ws.Range("D" & r)
                    .List(lC, 6) = ws.Range("D" & r)
                    .List(lC, 7) = ws.Range("D" & r)
                    .List(lC, 8) = ws.Range("D" & r)
                    .List(lC, 9) = ws.Range("D" & r)
     
                    lC = lC + 1
                End If
            Next
            If .ListCount = 0 Then MsgBox "No data found"
        End With
     
    End Sub
    Le faite d'utiliser un array pourrait régler ce problème mais je n'arrive pas a intégrer ma condition d'afficher uniquement les items dont le invoice est 1234 par exemple, il m'affiche toujours tous les éléments de toutes les factures.

    Merci de votre d'avance.

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2008
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 257
    Par défaut
    Bonjour,

    si jamais vous avez une idée de comment je pourrai régler mon problème, votre réponse est apprécié d'avance

  4. #4
    Membre éclairé
    Inscrit en
    Mars 2008
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 257
    Par défaut Selectionner les elements d'une listbox a partir d'une autre
    Bonjour,

    je ne veux surtout pas etre emmerdant mais je suis vraiment bloqué et je vais essayer d'etre plus descritptif et clair. Tout le dis dans le titre dans ce que j'essaie de faire avec une condition. svp voir fichier joint pour voir se que je tente de faire.
    Je tente d'afficher les éléments de la liste box 1 dans la listbox 2 par rapport a la ligne selectionné dans listbox 1. Aussi, je devrais pouvoir afficher plus de 10 colonnes dna sma listbox2 donc je peux pas utuliser addItem c'est la que je bloque completement. Merci enormement pour votre aide.
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [MySQL] Stocker un formulaire avec listbox dynamiques
    Par gregou81 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 02/11/2007, 10h29
  2. [C# / ASP.NET] Comment creer une listbox dynamique
    Par arioule dans le forum ASP.NET
    Réponses: 2
    Dernier message: 06/12/2006, 22h03
  3. pb remplir Listbox dynamique
    Par maniolo dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 10/08/2006, 18h50
  4. [PHP-JS] Gérer des listBox dynamiquement
    Par joquetino dans le forum Langage
    Réponses: 5
    Dernier message: 11/07/2006, 16h57
  5. empecher le tri dans un listbox dynamiquement
    Par firejocker dans le forum MFC
    Réponses: 2
    Dernier message: 01/12/2005, 17h32

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