Vba + Boucle sur une autre feuille
Résolu
eideal
Messages postés
20
Date d'inscription
Statut
Membre
Dernière intervention
-
eideal Messages postés 20 Date d'inscription Statut Membre Dernière intervention -
eideal Messages postés 20 Date d'inscription Statut Membre Dernière intervention -
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.
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:
- Vba + Boucle sur une autre feuille
- Comment supprimer une feuille sur word - Guide
- Comment imprimer en a5 sur une feuille a4 - Guide
- Bruler une feuille de laurier - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Imprimer feuille excel sur une page - Guide
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)
j'en ai profité pour modifier "l'affectation" des colonne de la listbox3 , dans une boucle plutôt que d'écrire 8 lignes.
A+
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+
merci Paf