VBA Affichage de données tableau Excel dans ListBox [Résolu]

Signaler
Messages postés
58
Date d'inscription
jeudi 5 juin 2014
Statut
Membre
Dernière intervention
2 juillet 2014
-
vb95
Messages postés
2068
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
17 février 2020
-
Bonjour,

Je voudrais afficher toutes les lignes/colonnes d'une feuille Excel dans un ListBox.


J'ai utilisé cela :

Private Sub CommandButton1_Click()

Dim arTemp() As String

Dim ValCherchee As String
ValCherchee = Sheets("VenteVéhicules")

Dim Nom_Feuil As String
Nom_Feuil = "VenteVéhicules"

Dim ma_plage As String
ma_plage = "B1:I1000"

bFound = FindAll(ValCherchee, Sheets(Nom_Feuil), ma_plage, arTemp())

ListBox1.ColumnCount = 10
ListBox1.ColumnWidths = "0;50;50;50;50;50;50;50;50;50"

If bFound = True Then
Debug.Print "Nb occurences : " & UBound(arTemp)

For x = 1 To UBound(arTemp)

Debug.Print arTemp(x)

ConsulterVenteVehicule.ListBox1.AddItem (arTemp(x))
ListBox1.List(ListBox1.ListCount - 1, 1) = Sheets("VenteVéhicules").Cells(arTemp(x), 1).Value
ListBox1.List(ListBox1.ListCount - 1, 2) = Sheets("VenteVéhicules").Cells(arTemp(x), 2).Value
ListBox1.List(ListBox1.ListCount - 1, 3) = Sheets("VenteVéhicules").Cells(arTemp(x), 3).Value
ListBox1.List(ListBox1.ListCount - 1, 4) = Sheets("VenteVéhicules").Cells(arTemp(x), 4).Value
ListBox1.List(ListBox1.ListCount - 1, 5) = Sheets("VenteVéhicules").Cells(arTemp(x), 5).Value
ListBox1.List(ListBox1.ListCount - 1, 6) = Sheets("VenteVéhicules").Cells(arTemp(x), 6).Value
ListBox1.List(ListBox1.ListCount - 1, 7) = Sheets("VenteVéhicules").Cells(arTemp(x), 7).Value
ListBox1.List(ListBox1.ListCount - 1, 7) = Sheets("VenteVéhicules").Cells(arTemp(x), 8).Value
ListBox1.List(ListBox1.ListCount - 1, 7) = Sheets("VenteVéhicules").Cells(arTemp(x), 9).Value

Next
End If

End Sub


Il y a une erreure au niveau de la valeur recherchée... ici j'ai indiqué que c'était la feuille Excel "VenteVéhicules" mais j'imagine que ca ne fonctionne pas comme cela !

Idem pour l'identification de la plage ... sachant que c'est tout le tableau je dois indiquer quels éléments ?


Merci d'avance

4 réponses

Messages postés
27588
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 février 2020
323
Bonjour,

Déjà...
   ListBox1.List(ListBox1.ListCount - 1, 7) = Sheets("VenteVéhicules").Cells(arTemp(x), 7).Value
    ListBox1.List(ListBox1.ListCount - 1, 7) = Sheets("VenteVéhicules").Cells(arTemp(x), 8).Value
    ListBox1.List(ListBox1.ListCount - 1, 7) = Sheets("VenteVéhicules").Cells(arTemp(x), 9).Value
;.

C'est normal que tu es "7" dans tes trois dernières ??

Ensuite :
... valcherchee... c'est une STRING.... Une chaine de caractères...
Hors toi.. tu lui affectes une Feuille ?


Et puis... quelle est l'utilité de la fonction de recherche si ton but c'est de mettre TOUT le contenu de ta feuille dans la listbox ?


SandraMt
Messages postés
58
Date d'inscription
jeudi 5 juin 2014
Statut
Membre
Dernière intervention
2 juillet 2014

Erreur bête pour changer ( pour les "7" )

En effet pour le coup il n'y a pas de valeur recherchée puisque je veux juste l'affichage de tout le tableau
Messages postés
27588
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 février 2020
323
Pour faire ce que tu veux réaliser il te faut :

1 - Tu définis la plage de cellules contenant tes données.

2 - Tu boucles sur cette plage de cellules pour alimenter ta listview


... Et supprime donc tout le code en rapport avec le "recherche".... ça n'a aucun rapport avec ce que tu souhaites faire......


SandraMt
Messages postés
58
Date d'inscription
jeudi 5 juin 2014
Statut
Membre
Dernière intervention
2 juillet 2014

pour définir ma plage de cellules je peux utiliser ca ?

Sheets("VenteVéhicules").Range ("A1:I" & Sheets("VenteVéhicules").Range("I65536").End(xlUp).Row)
jordane45
Messages postés
27588
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 février 2020
323
Pour avoir la dernière ligne il vaut mieux utiliser :
Derniere_Ligne = Cells.Find("*", Range("A1"), , , xlByRows, xlPrevious).Row

Et donc pour définir ta Plage...

Dim maPlage as Range
Dim Derniere_Ligne as Integer

Derniere_Ligne = Cells.Find("*", Range("A1"), , , xlByRows, xlPrevious).Row
Set maPlage = Sheets("VenteVéhicules").Range ("A1:I" & Derniere_Ligne)



.
SandraMt
Messages postés
58
Date d'inscription
jeudi 5 juin 2014
Statut
Membre
Dernière intervention
2 juillet 2014

Je dois avoir fait des erreurs :

Private Sub CommandButton1_Click()

Dim arTemp() As String

Dim Nom_Feuil As String
Nom_Feuil = "VenteVéhicules"

Dim maPlage As Range
Dim Derniere_Ligne As Integer

Derniere_Ligne = Cells.Find("*", Range("A1"), , , xlByRows, xlPrevious).Row
Set maPlage = Sheets("VenteVéhicules").Range("A1:I" & Derniere_Ligne)

bFound = FindAll(Sheets(Nom_Feuil), maPlage, arTemp())

ListBox1.ColumnCount = 10
ListBox1.ColumnWidths = "0;50;50;50;50;50;50;50;50;50"

If bFound = True Then
Debug.Print "Nb occurences : " & UBound(arTemp)

For x = 1 To UBound(arTemp)

Debug.Print arTemp(x)

ConsulterVenteVehicule.ListBox1.AddItem (arTemp(x))
ListBox1.List(ListBox1.ListCount - 1, 1) = Sheets("VenteVéhicules").Cells(arTemp(x), 1).Value
ListBox1.List(ListBox1.ListCount - 1, 2) = Sheets("VenteVéhicules").Cells(arTemp(x), 2).Value
ListBox1.List(ListBox1.ListCount - 1, 3) = Sheets("VenteVéhicules").Cells(arTemp(x), 3).Value
ListBox1.List(ListBox1.ListCount - 1, 4) = Sheets("VenteVéhicules").Cells(arTemp(x), 4).Value
ListBox1.List(ListBox1.ListCount - 1, 5) = Sheets("VenteVéhicules").Cells(arTemp(x), 5).Value
ListBox1.List(ListBox1.ListCount - 1, 6) = Sheets("VenteVéhicules").Cells(arTemp(x), 6).Value
ListBox1.List(ListBox1.ListCount - 1, 7) = Sheets("VenteVéhicules").Cells(arTemp(x), 7).Value
ListBox1.List(ListBox1.ListCount - 1, 8) = Sheets("VenteVéhicules").Cells(arTemp(x), 8).Value
ListBox1.List(ListBox1.ListCount - 1, 9) = Sheets("VenteVéhicules").Cells(arTemp(x), 9).Value

Next
End If

End Sub
jordane45
Messages postés
27588
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 février 2020
323
Regarde la répons d'Eric.

Et sinon... si tu veux rester sur "ta" méthode.... pourquoi t'obstines tu à utiliser la fonction FIND ...?????
Je te l'ai dit.. pour afficher le contenu entier de ta feuille... je ne comprend pas à quoi elle te sert !!
Messages postés
23263
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 février 2020

Bonjour,

puisque tu veux tout pourquoi ne pas remplir tout d'un coup ?
Sur ce modèle :
ListBox1.List = Sheets("Feuil1").[A2].Resize(derlig-1, 9).Value

eric
SandraMt
Messages postés
58
Date d'inscription
jeudi 5 juin 2014
Statut
Membre
Dernière intervention
2 juillet 2014

Ca marche merci beaucoup
Messages postés
58
Date d'inscription
jeudi 5 juin 2014
Statut
Membre
Dernière intervention
2 juillet 2014

Private Sub CommandButton1_Click()
ListBox1.ColumnCount = 10
ListBox1.ColumnWidths = "0;50;50;50;50;50;50;50;50;50"

ListBox1.List = Sheets("VenteVéhicules").[A2].Resize(derlig - 1, 1).Value
ListBox1.List = Sheets("VenteVéhicules").[B2].Resize(derlig - 1, 2).Value
ListBox1.List = Sheets("VenteVéhicules").[C2].Resize(derlig - 1, 3).Value
ListBox1.List = Sheets("VenteVéhicules").[D2].Resize(derlig - 1, 4).Value
ListBox1.List = Sheets("VenteVéhicules").[E2].Resize(derlig - 1, 5).Value
ListBox1.List = Sheets("VenteVéhicules").[F2].Resize(derlig - 1, 6).Value
ListBox1.List = Sheets("VenteVéhicules").[G2].Resize(derlig - 1, 7).Value
ListBox1.List = Sheets("VenteVéhicules").[H2].Resize(derlig - 1, 8).Value
ListBox1.List = Sheets("VenteVéhicules").[I2].Resize(derlig - 1, 9).Value


Dim maPlage As Range
Dim Derniere_Ligne As Integer

Derniere_Ligne = Cells.Find("*", Range("A2"), , , xlByRows, xlPrevious).Row
Set maPlage = Sheets("VenteVéhicules").Range("A2:I" & Derniere_Ligne)


Voila le code que j'ai essayé d'adapter à ma problématique.
Cependant il y aurait un problème au niveau des lignes :
ListBox1.List = Sheets("VenteVéhicules").[A2].Resize(derlig - 1, 1).Value
SandraMt
Messages postés
58
Date d'inscription
jeudi 5 juin 2014
Statut
Membre
Dernière intervention
2 juillet 2014

C'est bon ça marche !

Merci beaucoup !
jhjustilien
Messages postés
1
Date d'inscription
lundi 22 avril 2019
Statut
Membre
Dernière intervention
22 avril 2019

Qu'est ce que tu as fait pour que cela puisse marcher
vb95
Messages postés
2068
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
17 février 2020
85 > jhjustilien
Messages postés
1
Date d'inscription
lundi 22 avril 2019
Statut
Membre
Dernière intervention
22 avril 2019

Bonsoir !
1) Les formules de politesse sont appréciées lorsque l'on se greffe sur une discussion !
2) avec presque 5 ans de décalage cela m'étonne que tu ais une réponse !