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

Messages postés
58
Date d'inscription
jeudi 5 juin 2014
Statut
Membre
Dernière intervention
2 juillet 2014
- - Dernière réponse : vb95
Messages postés
1865
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
19 mai 2019
- 22 avril 2019 à 23:00
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
Afficher la suite 

Votre réponse

4 réponses

Messages postés
25575
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 mai 2019
311
0
Merci
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
Commenter la réponse de jordane45
Messages postés
25575
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 mai 2019
311
0
Merci
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
25575
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 mai 2019
311 -
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
25575
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 mai 2019
311 -
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 !!
Commenter la réponse de jordane45
Messages postés
22730
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 mai 2019
0
Merci
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
Commenter la réponse de eriiic
Messages postés
58
Date d'inscription
jeudi 5 juin 2014
Statut
Membre
Dernière intervention
2 juillet 2014
0
Merci
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
1865
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
19 mai 2019
57 > 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 !
Commenter la réponse de SandraMt