choix colonnes multiples userform

pasglop

XLDnaute Nouveau
Bonsoir et bonne année à tous et à toutes !!!!
Plein de bonnes choses, la santé, une grille gagnante au loto.. :D

Je viens vers vous ce soir pour une question à la quelle je ne trouve pas d'exemple à reprendre, je suis sur que c'est facilement faisable.

J’ai un tableau en feuille 1

Une feuille de recherche en 2
Je voudrais qu'en cliquant sur un bouton une fenêtre s'ouvre,
Avec :
1 un choix dans la première colonne avec suppression des doublons
2 un choix dans la 2eme colonne avec suppression des doublons
3 affichages sous forme de tableau des possibilités pour le choix définitif

Je joint un exemple de se que je voudrais réaliser

Pourriez vous m'aider ????

merci d'avance
yves
 

Pièces jointes

  • exemple 1.xls
    27.5 KB · Affichages: 80
  • exemple 1.xls
    27.5 KB · Affichages: 80
  • exemple 1.xls
    27.5 KB · Affichages: 79

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : choix colonnes multiples userform

Bonjour,

Code:
Private Sub UserForm_Initialize()
  Set MonDico = CreateObject("Scripting.Dictionary")
  For Each c In [type1]
     If Not MonDico.Exists(UCase(c.Value)) And c <> "" Then
        MonDico.Add UCase(c.Value), UCase(c.Value)
     End If
  Next c
  Me.ComboBox1.List = MonDico.items
End Sub

Private Sub ComboBox1_Change()
  Set MonDico = CreateObject("Scripting.Dictionary")
  Me.ComboBox2.Clear
  For Each c In [type2]
    If UCase(c.Offset(0, -1)) = UCase(Me.ComboBox1) Then
       If Not MonDico.Exists(UCase(c.Value)) And c <> "" Then
          MonDico.Add UCase(c.Value), UCase(c.Value)
       End If
    End If
  Next c
  Me.ComboBox2.List = MonDico.items
End Sub

Private Sub ComboBox2_Change()
    k = 0
    Me.ListBox1.Clear
    For Each c In [type1]
      If UCase(c) = UCase(Me.ComboBox1) And UCase(c.Offset(0, 1)) = UCase(Me.ComboBox2) Then
          Me.ListBox1.AddItem
          Me.ListBox1.List(k, 0) = c.Offset(, 2)
          Me.ListBox1.List(k, 1) = c.Offset(, 3)
          Me.ListBox1.List(k, 2) = c.Offset(, 4)
          Me.ListBox1.List(k, 3) = c.Offset(, -1)
          k = k + 1
      End If
    Next c
End Sub

Private Sub ListBox1_Click()
   Sheets("choix").[B5] = Me.ListBox1.Column(3)
End Sub

JB
Formation Excel VBA JB
 

Pièces jointes

  • FormCascade.xls
    32.5 KB · Affichages: 115
  • FormCascade.xls
    32.5 KB · Affichages: 114
  • FormCascade.xls
    32.5 KB · Affichages: 115

pasglop

XLDnaute Nouveau
Re : choix colonnes multiples userform

re..

Après épluchage du code...

Pourriez vous m'expliquer d'ou viens le "mondico" ???

Et comment on nome les colonnes : column (?)

A quel endroit on leur attribue un nom et un nr ?

Merci
A++
yves
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : choix colonnes multiples userform

-Nommer les champs Type1,Type2 avec Insertion/Nom/définir
-mondico est un nom de variable
-Créer une zone de liste avec 4 colonnes
-Sheets("choix").[B5] = Me.ListBox1.Column(3) récupère la 4eme colonne de la zone de liste

JB
 

Discussions similaires

Statistiques des forums

Discussions
312 523
Messages
2 089 306
Membres
104 119
dernier inscrit
karbone57