Vba + Boucle sur une autre feuille

Résolu/Fermé
eideal Messages postés 21 Date d'inscription mercredi 23 juin 2010 Statut Membre Dernière intervention 20 février 2017 - 21 janv. 2012 à 19:25
eideal Messages postés 21 Date d'inscription mercredi 23 juin 2010 Statut Membre Dernière intervention 20 février 2017 - 22 janv. 2012 à 12:04
Bonjour,


J'aimerais pouvoir simplifier mon code vba.

Je remplis une listbox3 multicolonne avec une boucle mais je n'arrive pas a mettre dans mon code la feuille sur laquelle la boucle doit se faire (de la ligne 16 jusqu'à la derniere ligne non vide). De plus la feuille est déterminée par le choix dans la listbox1.

Je vous mets mon code pour que ça vous parle :

'*****************************************************
Private Sub VALIDER1_Click()
Dim i, j

'remplir listboxt3
With Sheets(ListBox1.Value)

j = 0
'determiner la feuille
Sheets(ListBox1.Value).Select

'de la ligne 16 a la dernier ligne non vide
For i = 16 To [b65000].End(xlUp).Row
ListBox3.AddItem
ListBox3.List(j, 0) = Cells(i, 2)
ListBox3.List(j, 1) = Cells(i, 3)
ListBox3.List(j, 2) = Cells(i, 4)
ListBox3.List(j, 3) = Cells(i, 5)
ListBox3.List(j, 4) = Cells(i, 6)
ListBox3.List(j, 5) = Cells(i, 7)
ListBox3.List(j, 6) = Cells(i, 8)
ListBox3.List(j, 7) = Cells(i, 9)
j = j + 1
Next i


ListBox3.ColumnCount = 8
ListBox3.ColumnWidths = "50;30;30;30;30;30;30;50"


End With

End sub
'*****************************************************

J'aimerais savoir si il est possible de placer le choix de la listbox1 (choix de la feuille) dans la boucle et d'enlever le select car ce code fonctionne mais le select ne me plait pas et malgré mes recherches et les tests je n'arrive pas a trouver de solution?

Si quelqu'un pouvait m'aider, ça serait génial.

D'avance merci à vous pour vos retours.
A voir également:

1 réponse

bonjour

pas de problème pour enlever le Sheets(ListBox1.Value).Select puisqu'on a juste avant : With Sheets(ListBox1.Value) qui détermine que l'on va "travailler" avec la sheet précisée.
Par contre tout ce qui s'y rapporte doit être précédé d'un "." (point)
Dim i, j
'remplir listboxt3
'determiner la feuille
With Sheets(ListBox1.Value)
'de la ligne 16 a la dernier ligne non vide
For i = 16 To .[b65000].End(xlUp).Row
ListBox3.AddItem
For j = 0 To 7
ListBox3.List(i - 16, j) = .Cells(i, j + 2)
Next j
Next i
ListBox3.ColumnCount = 8
ListBox3.ColumnWidths = "50;30;30;30;30;30;30;50"
End With


j'en ai profité pour modifier "l'affectation" des colonne de la listbox3 , dans une boucle plutôt que d'écrire 8 lignes.

A+
0
eideal Messages postés 21 Date d'inscription mercredi 23 juin 2010 Statut Membre Dernière intervention 20 février 2017
22 janv. 2012 à 12:04
c'est parfait, ça marche nikel.
merci Paf
0