Boucle colonnes et lignes

Hulk

XLDnaute Barbatruc
Bonsoir tout le monde,

Un peu tard, mais je garde espoir d'ici que j'aille me coucher...

Au fait, je pense que mon souhait (j'sais même pas, plus) s'agit d'une ComboBox en cascade, mais je n'y parviens pas.

Suivant la "Réf" choisie avec la ComboBox1, ben avoir les items de la colonne adéquate dans la ComboBox2.

Je sens que je vais replonger dans mes débuts :cool:

Merci pour l'aide en tous cas.

EDIT :

J'oubliais de dire que les nombres de ligne ET de colonne sont variables !
 

Pièces jointes

  • Test.xlsm
    24.7 KB · Affichages: 46
  • Test.xlsm
    24.7 KB · Affichages: 50
  • Test.xlsm
    24.7 KB · Affichages: 53
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Boucle colonnes et lignes

Bonjour,

regarde peut être ceci :
Code:
Option Explicit
Private Sub UserForm_Initialize()
With Sheets("Feuil1")
    ComboBox1.List = .range("L1", .range("L65536").End(xlUp)).Value
    'pour te passer de la colonne L, à la place de combobox1.list.... :
'    ComboBox1.Column = .range("A1", .range("IV1").End(xlToLeft)).Value
End With
End Sub
Private Sub ComboBox1_Click()
If ComboBox1.ListIndex <> -1 Then
    With Sheets("Feuil1")
        ComboBox2.Clear
        ComboBox2.List = .Cells(2, ComboBox1.ListIndex + 1).Resize(.Cells(Rows.Count, _
            ComboBox1.ListIndex + 1).End(xlUp).Row - 1).Value
    End With
End If
End Sub

bonne journée
@+
 

laetitia90

XLDnaute Barbatruc
Re : Boucle colonnes et lignes

bonjour Hulk :),Pierrot:)

une autre facon de l'ecrire avec Transpose a adapter

Code:
Private Sub UserForm_Initialize()
 ComboBox1.List = Application.Transpose(Range(Cells(1, 1), _
 Cells(1, Rows(1).Find("*", , , , , xlPrevious).Column)))
End Sub
Private Sub ComboBox1_Click()
 ComboBox2.Clear
 ComboBox2.List = Cells(2, ComboBox1.ListIndex + 1).Resize _
 (Cells(Rows.Count, ComboBox1.ListIndex + 1).End(xlUp).Row).Value
End Sub
 

Hulk

XLDnaute Barbatruc
Re : Boucle colonnes et lignes

Hello les amis :), forum,

Merci pour vos solutions...

Juste une petite modif (en rouge) dans ton code Laetitia pour ne pas avoir la ligne vide dans la ComboBox2...


--------------------------------------------------------------------
Private Sub ComboBox1_Click()

ComboBox2.Clear
ComboBox2.List = Cells(2, ComboBox1.ListIndex + 1).Resize _
(Cells(Rows.Count, ComboBox1.ListIndex + 1).End(xlUp).Row - 1).Value

End Sub
--------------------------------------------------------------------


Tiens donc, je ne savais pas que l'on ne pouvait pas appliquer un format entre les balises de code !?
Maintenant je sais :)
N'empêche que, ne pas savoir, c'est savoir quelque chose. Savoir qu'on ne sait pas :cool:
Philo à 2 balles je vous l'accorde :eek:

Cela dit merci à vous deux et vous souhaite un très chaleureux weekend !
 

Hulk

XLDnaute Barbatruc
Re : Boucle colonnes et lignes

Re,

Au fait, ce sont exactement les mêmes codes, enfin le Change() :)

Juste un petit souci...

S'il n'y a qu'un seul item dans les listes, paf erreur.

C'est le Row - 1 qu'il n'aime pas !

Je ne parviens pas à résoudre cette erreur (moi et la gestion des erreurs = 2), auriez-vous une petite solution ?

Normalement, il devrait y avoir plus d'un item par liste, mais qui sait.
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Boucle colonnes et lignes

Re Hulk, Laetitia:)

modifie peut être comme suit :
Code:
Option Explicit
Private Sub UserForm_Initialize()
With Sheets("Feuil1")
    ComboBox1.List = .range("L1", .range("L65536").End(xlUp)).Value
    'pour te passer de la colonne L, à la place de combobox1.list.... :
'    ComboBox1.Column = .range("A1", .range("IV1").End(xlToLeft)).Value
End With
End Sub
Private Sub ComboBox1_Click()
If ComboBox1.ListIndex <> -1 Then
    With Sheets("Feuil1")
        ComboBox2.Clear
        If Application.CountA(.Columns(ComboBox1.ListIndex + 1)) < 2 Then Exit Sub
        ComboBox2.List = .Cells(2, ComboBox1.ListIndex + 1).Resize(.Cells(Rows.Count, _
            ComboBox1.ListIndex + 1).End(xlUp).Row - 1).Value
    End With
End If
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T