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

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..

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

super vraiment impec

je vais me casser la tête pour comprendre mais cela m'interesse vraiment....
merci encor

je pense que je reviendrai bientôt pour des explication sur le code...

A+
yves
 

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…