FormCascade 2 niveaux avec commentaire

Kim75

XLDnaute Occasionnel
Bonjour le forum,

Je souhaite utiliser la listbox en cascade 2 niveaux de M. Jacques BOISGONTIER avec mes chaleureux remerciements.

Ce serait vraiment sympa si quelqu’un pouvait m’aider à faire ressortir dans un "Label" (sinon Textbox) les valeurs qui correspondent aux items de la seconde listbox, ces valeurs sont dans la feuille « liste2 » que j’ai ajoutée au classeur.

J'ai essayé avec mes maigres connaissances, mais en vain, l’idéal serait que dans le "Label" commentaire il y aurait possibilité de passer à la ligne, autrement on aurait des informations condensés dans le même paragraphe, ce qui n'est pas très pratique point de vue lisibilité.

Cordialement, Kim.
 

Pièces jointes

  • FormCascade.xls
    48.5 KB · Affichages: 45
  • FormCascade.xls
    48.5 KB · Affichages: 48
  • FormCascade.xls
    48.5 KB · Affichages: 48

Papou-net

XLDnaute Barbatruc
Re : FormCascade 2 niveaux avec commentaire

Bonsoir Kim75,

Ci-joint ton fichier modifié et complété.

J'ai remplacé le Label1 par ListBox3 dont la sélection des lignes est désactivée.

Espérant avoir répondu.

Cordialement.
 

Pièces jointes

  • Copie de FormCascade.xls
    57 KB · Affichages: 50

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : FormCascade 2 niveaux avec commentaire

Bonjour,

Voir PJ

Code:
Private Sub UserForm_Initialize()
  Me.ListBox1.List = Application.Transpose(Range("choix1"))
End Sub

Private Sub ListBox1_Click()
  choix = Me.ListBox1.ListIndex
  Me.ListBox2.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
  Me.Label1.Caption = ""
End Sub

Private Sub ListBox2_Click()
  Me.Label1.Caption = Range("choix2").Cells(ListBox2.ListIndex + 1, ListBox1.ListIndex + 1).Comment.Text
End Sub

JB
 

Pièces jointes

  • FormCascadeCmt.xls
    54 KB · Affichages: 57
Dernière édition:

Papou-net

XLDnaute Barbatruc
Re : FormCascade 2 niveaux avec commentaire

Je vous remercie beaucoup pour votre code avec la listbox désactivée,
J’ai un seul souci avec, je ne peux pas passer à la ligne une seconde fois, voire une énième fois,
Pourriez-vous, je vous prie me dire s’il est possible de passer à la ligne autant de fois qu’on le veut comme c’est le cas avec les deux autres méthodes ?

RE Kim75

Bonjour Kim,

Pour ajouter les données à la ListBox3, il suffit d'effacer la ligne
Code:
ListBox3.Clear
comme dans l'exemple ci-dessous :

Code:
Private Sub ListBox2_Change()
Dim Rub As String, Ligne As Range
Rub = ListBox2.Value
With Sheets("liste2")
  Set Ligne = .Range("A:A").Find(Rub, LookIn:=xlValues, lookat:=xlWhole)
  If Ligne Is Nothing Then Exit Sub
  ListBox3.AddItem .Cells(Ligne.Row, 1)
  ListBox3.AddItem Left(.Cells(Ligne.Row, 2), InStr(.Cells(Ligne.Row, 2).Value, Chr(10)) - 1)
  ListBox3.AddItem Mid(.Cells(Ligne.Row, 2), InStr(.Cells(Ligne.Row, 2).Value, Chr(10)) + 1)
End With
End Sub

Par contre, il serait bon de réinitialiser le formulaire à chaque ouverture (enfin je le pense). J'ai donc recopié cette ligne dans la procédure suivante :

Code:
Private Sub ListBox1_Click()
  choix = Me.ListBox1.ListIndex
  Me.ListBox2.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
End Sub

Je te joins donc ton fichier ainsi modifié. Tu y remarqueras par ailleurs que j'ai ajouté une boucle de vérification qui empêche de saisir deux fois la même ligne, ainsi qu'une ligne de séparation entre chaque adresse pour améliorer la lecture.

Espérant que tout ceci te conviendra.

Bon WE.

Cordialement.
 

Pièces jointes

  • Copie 01 de FormCascade.xls
    63 KB · Affichages: 37

Kim75

XLDnaute Occasionnel
Re : FormCascade 2 niveaux avec commentaire

Bonjour Papou-net, le forum,

Je prends note de ces dernières explications, merci :)
Merci encore une fois à Jacques et Gilbert, en vous souhaitant bonne santé et longue vie à vous tous,

Cordialement, Kim.
 

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 334
Membres
103 520
dernier inscrit
Azise