Dimensionner les colonnes d'une boîte de liste [Résolu]

Signaler
Messages postés
8
Date d'inscription
mardi 30 septembre 2014
Statut
Membre
Dernière intervention
13 novembre 2014
-
Messages postés
30467
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 décembre 2020
-
J'ai huit colonnes dans une boite de liste mais la dernière colonne ne s'affiche pas. Les informations des huits colonnes proviennent de différentes boites (texte, combo box et date)

6 réponses

Messages postés
30467
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 décembre 2020
338
BONJOUR à toi aussi ( si si .. ça se dit toujours....... )

J'ai huit colonnes dans une boite de liste
Tu veux dire .. une LISTBOX ?

la dernière colonne ne s'affiche pas
Avec ton code... on arrivera surement mieux à voir ce qui ne fonctionne pas...
Pourrais-tu nous le montrer ?

NB: Pour poster du code sur le forum.. pense à utiliser la coloration syntaxique:
Explications disponibles ici :
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code


.
Messages postés
8
Date d'inscription
mardi 30 septembre 2014
Statut
Membre
Dernière intervention
13 novembre 2014

Dim varRejean As Integer
Dim Vposi As Integer

Private Sub BtnLstTaux_Click()
    
    Me.Lst1.AddItem
    
    For i = 1 To 8
        Me.Lst1.List(varRejean, i) = Controls("ctrl" & i).Value
    Next i
    varRejean = varRejean + 1
End Sub

Private Sub CboTypeTaux_Change()

End Sub

Private Sub Ctrl2_Change()

End Sub

Private Sub Ctrl8_Change()

End Sub

Private Sub Lst1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Vposi = Me.Lst1.ListIndex
    
    For i = 1 To 8
        Controls("ctrl" & i).Value = Me.Lst1.List(Vposi, i)
    Next i
    
    
End Sub
Messages postés
30467
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 décembre 2020
338
Et la coloration syntaxique (les balises de code)... tu n'as pas trouver où elles étaient ?????
J'édite ton message pour les ajouter et je t'invite à lire le contenu de se lien pour tes prochains messages :http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Messages postés
30467
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 décembre 2020
338
- C'est quoi ton contrôle : Lst1 ... une LISTBOX ou une LISTVIEW ? (ou autre chose ?)

- En général.. la première COLONNE est en 0 ... donc si tu as 8 colonnes.. elles vont de 0 à 7. (et non pas de 1 à 8 )


Messages postés
8
Date d'inscription
mardi 30 septembre 2014
Statut
Membre
Dernière intervention
13 novembre 2014

Il s'agit d'une listbox, j'y vois seulement les 7 premières colonnes qui sont sasies. J'ai remplacé For i = 1 To 8 par i = 1 to 7 mais ça ne fonctionne pas. Merci pour votre aide
Messages postés
30467
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 décembre 2020
338
Et comment initialises-tu ta listbox.
Quel code as tu utilisé ?
Messages postés
8
Date d'inscription
mardi 30 septembre 2014
Statut
Membre
Dernière intervention
13 novembre 2014

excel vba, chaque ligne de la listbox se rempli avec des textbox (4), des combobox (2) et des Dtpicker (2). dans les programmations elles se nomment ctrl 1 à 8
Messages postés
8
Date d'inscription
mardi 30 septembre 2014
Statut
Membre
Dernière intervention
13 novembre 2014

Les données de la listbox proviennent de boites nommées ctrl 1 à 8
Private Sub BtnLstTaux_Click()
    
    Me.Lst1.AddItem
    
    For i = 1 To 8
        Me.Lst1.List(varRejean, i) = Controls("ctrl" & i).Value
    Next i
    varRejean = varRejean + 1
End Sub


EDIT : AJOUT DES BALISES DE CODE ... ENCORE !
(jordane)
Messages postés
30467
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 décembre 2020
338
En fait ça vient de ton nombre de colonnes...

AddItem .. ajoute à la première colonne...(indice 0 )
Puis ta boucle 1 to 8 .. ajoute les données dans les colonnes 1 à 8 ..soit 9 colonnes..

Testes ceci :
(places une ListBox dans un Userform et mets ce code dans l'Initialisation de ton USF)

Private Sub UserForm_Initialize()
Dim i As Byte, j As Byte

 ListBox1.ColumnCount = 9
 ListBox1.ColumnWidths = "70;70;70;70;70;70;70;70;70"


For i = 1 To 20
        'Ajoute une ligne et insère une donnée dans la colonne de gauche
        ListBox1.AddItem "Ligne:" & i & "- Col:0"
        
        'Ajoute des données dans les colonnes de droite
        For j = 1 To 8
         ListBox1.List(ListBox1.ListCount - 1, j) = "Ligne:" & i & "- Col:" & j
        Next j
Next i

End Sub


Messages postés
30467
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 décembre 2020
338
Ce qui... au niveau de ton code donne :


Private Sub BtnLstTaux_Click()
    
    Me.Lst1.AddItem Controls("ctrl1").Value
    
    For i = 2 To 8
        Me.Lst1.List(varRejean, i-1) = Controls("ctrl" & i).Value
    Next i
    varRejean = varRejean + 1
End Sub

Messages postés
8
Date d'inscription
mardi 30 septembre 2014
Statut
Membre
Dernière intervention
13 novembre 2014

Merci beaucoup, de fait j'ai 8 colonnes à incrémenter donc je n'en ai pas besoin de neuf, j'ai modifié votre code en inscrivant columncount = 8. Me reste maintenant a adapter le reste du code pour l'incrémentation de la liste.
Messages postés
30467
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 décembre 2020
338
Bonjour,
Evite de mettre tes réponses ern Commentaire du premier message...utilises le bouton REPONDRE en bas de la page.
(je viens de déplacer ton précédent message).

Et si la question est résolue.. merci de clore le sujet ( Lien Marquer comme résolu .. en haut de la page sous le titre de ta question.)

Merci.

@+
Messages postés
30467
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 décembre 2020
338