Problème listbox

cs_Mins Messages postés 9 Date d'inscription dimanche 30 mars 2003 Statut Membre Dernière intervention 28 mai 2009 - 21 janv. 2004 à 15:20
cs_Mins Messages postés 9 Date d'inscription dimanche 30 mars 2003 Statut Membre Dernière intervention 28 mai 2009 - 23 janv. 2004 à 14:17
Salut à tous

J'ai un tit blème en vb(A!!!) sous excel. J'espère que qqn saura m'aider...

J'essaye en fait de mettre le contenu d'une de mes feuilles excel dans une listbox.

J'arrive sans problème à parcourir la feuille et à intégrer une ligne dans la listbox... même toute la feuille comme ca devrait.

Seulement, après, j'ai découvert (oooooohhhh Magieeee... :-) )qu'il était possible d'utiliser des colonnes dans les listbox. Je me suis donc dis, essayons... :-)

J'arrive au code suivant qui bien entendu ne marche pas...

Private Sub init_LB(Optional ByVal fini As Integer 1, Optional ByVal del As Integer 0)
    Dim res As Variant
    Dim j As Integer
    Dim i As Integer
    Dim a(6)
    
    LEvents.Clear
    Sheets("evenement").Select
    
    i = 2
    j = 0
    While j = 0
        If Range("B" + CStr(i)).Value <> "" Then            If fini 1 And del 0 Then
                If Range("G" + CStr(i)).Value <> "del" Then
                    a(0) = Array(CStr(Range("A" + CStr(i)).Value), Range("B" + CStr(i)).Value, "[" + Range("F" + CStr(i)).Value + "]")
                    LEvents.List() = a
                End If            ElseIf fini 0 And del 1 Then
                If Range("F" + CStr(i)).Value <> "fini" Then
                    a(0) = Array(CStr(Range("A" + CStr(i)).Value), Range("B" + CStr(i)).Value, "[" + Range("G" + CStr(i)).Value + "]")
                    LEvents.AddItem (LEvents.Column(a))
                End If            ElseIf fini 1 And del 1 Then
                a(0) = Array(CStr(Range("A" + CStr(i)).Value), Range("B" + CStr(i)).Value, "[" + Range("F" + CStr(i)).Value + " - " + Range("G" + CStr(i)).Value + "]")
                LEvents.AddItem (LEvents.Column(a))
            Else
                If Range("G" + CStr(i)).Value <> "del" And Range("F" + CStr(i)).Value <> "fini" Then
                    a(0) = Array(CStr(Range("A" + CStr(i)).Value), Range("B" + CStr(i)).Value, "[]")
                    LEvents.AddItem (LEvents.Column(a))
                End If
            End If
        Else
            j = 1
        End If
        i = i + 1
    Wend
End Sub


Si vous aviez une idée (pas besoin de remodifier tout le code... un seul des if suffira... :-) )

Donc en fait et pour être clair.

Je parcoure mon tableau excel jusqu'à ce que je trouve une ligne vide.
Pour chaque ligne de la feuille excel, je rajoute une ligne dans la listbox avec dans la Première colonne la colone excel A, dans la seconde, la colonne B et dans la troisemme un mélange de la F et de la G (bien entendu de la ligne excel ou je me trouve :-) )

Si qqn sait m'aider, et assez rapidement si possible, ce serait grandement apréciable et fortement apprécié...

Merci d'avance

Min's

2 réponses

Surfurax Messages postés 61 Date d'inscription mardi 26 août 2003 Statut Membre Dernière intervention 25 mai 2005
21 janv. 2004 à 17:09
Salut,

Les colonnes dans une listbox ne sont pas gérées comme les lignes, en fait le remplissage (et la lecture) se font de gauche à droite et de haut en bas, résultat, tu ne sais pas où tu inscris tes données (dans quelle colonne).
Perso j'ai arrêté d'utiliser ces contrôles, j'utilise plutôt les mshflexgrid, c'est plus sympa et moins chiant à utiliser.

Ciao

[mailto:paulferrand@yahoo.fr Surfurax]
0
cs_Mins Messages postés 9 Date d'inscription dimanche 30 mars 2003 Statut Membre Dernière intervention 28 mai 2009
23 janv. 2004 à 14:17
Le problème, c'est que je ne sais même pas ou trouver le composant dont tu parles... Je débute à peine en VBA et connais les listbox de Delphi, c'est pour ca que je les utilise.

Disons que j'arrive avec le code au dessus à insérer une ligne dans ma liste, mais je n'arrive pas à en faire plusieurs... :'( %-6
0
Rejoignez-nous