[VBA]mise en formed'une listbox dans un userform [Résolu]

Signaler
Messages postés
140
Date d'inscription
lundi 9 juin 2008
Statut
Membre
Dernière intervention
18 avril 2012
-
Messages postés
140
Date d'inscription
lundi 9 juin 2008
Statut
Membre
Dernière intervention
18 avril 2012
-
Bonjour
je travaille sur excel 2007
je le probleme suivant.
j'ai un userform dans lequel j'ai une listbox alimentee par des donnees d'une feuille.
j'ai bien le resultat escompter, sans mise en forme, je souhaiterais mettre ces donnees sous forme d'un tableau.
merci pour vos conseil
cris

voici le code que j'ai.

Code Visual Basic :



Option Explicit

Const LIGNE_DEBUT_LISTE As Integer = 2
Const LIGNE_FIN_LISTE As Integer = 70 'est la limite à modifier en fonction de la longueur de la liste du tableau Excel

Const COLONNE_Nº As Integer = 1
Const COLONNE_PRENOM As Integer = 2
Const COLONNE_Nom As Integer = 3
Const COLONNE_datenaissance As Integer = 4

Dim iLigne As Integer


Private Sub Userform_Initialize()
With ThisWorkbook.Sheets(3) 'ou : With ThisWorkbook.Sheets("BD1")
ListBox1.ColumnCount = 3
ListBox1.ColumnWidths = "20;60;60"
For iLigne = LIGNE_DEBUT_LISTE To LIGNE_FIN_LISTE
ListBox1.AddItem
ListBox1.List(iLigne - LIGNE_DEBUT_LISTE, 0) = .Cells(iLigne, COLONNE_Nº).Value
ListBox1.List(iLigne - LIGNE_DEBUT_LISTE, 1) = .Cells(iLigne, COLONNE_PRENOM).Value
ListBox1.List(iLigne - LIGNE_DEBUT_LISTE, 2) = .Cells(iLigne, COLONNE_Nom).Value
Next iLigne
End With
ListBox1.Selected(0) = True
End Sub

Private Sub ListBox1_Click()
For iLigne = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(iLigne) = True Then
datenaissance ThisWorkbook.Sheets(3).Cells(iLigne + LIGNE_DEBUT_LISTE, COLONNE_datenaissance).Value 'datenaissance ... au lieu de : TextBox_datenaissance = ... car le TextBoax se nomme : datenaissance
End If
Next iLigne
End Sub
Private Function fctAge(ByVal DN As Variant) As String
If IsDate(DN) Then
fctAge = CStr(DateDiff("yyyy", Me.datenaissance.Value, Date))
Else
fctAge = ""
End If
End Function
Private Sub datenaissance_Change()
If IsDate(Me.datenaissance.Value) Then Me.Age.Value = fctAge(Me.datenaissance.Value)
End Sub

7 réponses

Messages postés
140
Date d'inscription
lundi 9 juin 2008
Statut
Membre
Dernière intervention
18 avril 2012
1
merci a toi, je vais y regarder de plus pres
encore merci.
comme je te l'est deja dit je ne suis un expert, j'essaye de faire avec mes petits moyens, et je ne saisie pas toujours les subtilitees.
cris
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
230
Ah bon ! === Rebelote !


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
140
Date d'inscription
lundi 9 juin 2008
Statut
Membre
Dernière intervention
18 avril 2012
1
tu m'as bien demander de mettre dans VBA6 ce que j'ai fait.
cris
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
230
VBA6 n'existe pas !
et VB6 n'est pas VBA (Visual Basic for Applications). Et une rubrique dédiée à VBA (qui est un langage dérivé de VB existe). Ety il te suffit de voir où a du être déplacée, par exemple, Certte autre discussion que tu as ouverte ! Dur dur ?
Ce n'est pas sérieux !


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
14733
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 octobre 2020
146
Bonjour,

J'ai déplacé le sujet. Regardes où il est.

Sinon, quand tu poste un code, le code est à mettre entre les balise, pas avant ni après.

Tu veux quoi exactement, tu parles d'une ListBox et d'un tableau, il y a ambiguïté.
Une listbox ne fait pas tableau.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
Messages postés
140
Date d'inscription
lundi 9 juin 2008
Statut
Membre
Dernière intervention
18 avril 2012
1
bonsoir
c'est une listview que j'ai, et je souhaiterais avoir mes donnees comme un tableau avec des lignes et colonnes.
merci pour avoir deplacer mon post.
cris
Messages postés
14733
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 octobre 2020
146
Bonjour,

Dans ce cas, c'est déjà mieux un ListBox n'est pas un ListView.
Tu as normalement pas mal de sources en parlant.
VBA et VB6, sont cousins, limite frère, mais sont différents.
L'aide VB6 que tu trouveras assez d'info à son sujet.
Mots clés : vb6 listview

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site