Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Boucle colonnes et lignes

  • Initiateur de la discussion Initiateur de la discussion Hulk
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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 😎

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

Dernière édition:
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
@+
 
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
 
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 😎
Philo à 2 balles je vous l'accorde 😱

Cela dit merci à vous deux et vous souhaite un très chaleureux weekend !
 
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:
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…