ComboBox .AddItem valeur cellule sans doublons

Atiom

XLDnaute Occasionnel
Bonjour,

UserForm
VB:
Private Sub UserForm_Initialize()
With ComboBox1
    .AddItem "Pos 1"
    .AddItem "Pos 2"
    .AddItem "Pos 3"
End With
End Sub


ComboBox
VB:
Private Sub ComboBox1_Change()
If ComboBox1.Value = "Pos 1" Then masque_lignes_2_4
If ComboBox1.Value = "Pos 2" Then masque_lignes_6_8
If ComboBox1.Value = "Pos 3" Then masque_lignes_8_18
End Sub

Dans le comboBox au lieu de Pos 1, Pos 2 , Pos 3 je souhaiterais modifier le code de façon a obtenir les valeurs des cellules A1, A2,A3.
Merci d’avance et bonne année à tous.
 
Dernière édition:

kjin

XLDnaute Barbatruc
Re : ComboBox .AddItem valeur cellule

Bonjour,

UserForm
Code:
Private Sub UserForm_Initialize()
With ComboBox1
    .List = range("A1:A3").Value
End With
End Sub


ComboBox
Code:
Private Sub ComboBox1_Change()
if combobox1.listindex = -1 then exit sub
If ComboBox1.listindex = 0 Then masque_lignes_2_4
If ComboBox1.listindex = 1  Then masque_lignes_6_8
If ComboBox1.listindex = 2  Then masque_lignes_8_18
End Sub
kjin
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : ComboBox .AddItem valeur cellule

Bonjour Atiom
Content de te croiser à nouveau !!
Change "Pos 1" par range("A1").Value (si tu es sur la bonne Feuille sinon Sheets("la Feuille").range("A1").value avec laFeuille étant le nom de la feuille ou tu veux récupérer l'info)
ceci dans les 2 macros et idem pour Pos2 etc

Arf : En retard moi !!
Salut à tous
 

Staple1600

XLDnaute Barbatruc
Re : ComboBox .AddItem valeur cellule

Bonjour à tous

Une petit variante pour ComboBox1_Change (histoire de varier les plaisirs ;))
(j'ai renommé les procédures juste pour un gain de place)
Code:
Private Sub ComboBox1_Change()
If ComboBox1.ListIndex = -1 Then Exit Sub
Application.Run Choose(ComboBox1.ListIndex + 1, "ml24", "ml68", "ml818")
End Sub
 

Atiom

XLDnaute Occasionnel
Re : ComboBox .AddItem valeur cellule

Bonjour,

Encore une petite chose.
Comment supprimer les doublons ?
Les valeurs sont dans la même colonne mais toutes les 10 cellules ? et parfois il y a des doublons.
Ci-dessous le code actuel :
Merci de votre aide

UserForm
PHP:
Private Sub UserForm_Initialize()
With ComboBox1
    .AddItem Range("B10").Value
    .AddItem Range("B20").Value
    .AddItem Range("B30").Value
    .AddItem Range("B40").Value
    .AddItem Range("B50").Value
    .AddItem Range("B60").Value
    .AddItem Range("B70").Value
    .AddItem Range("B80").Value
    .AddItem Range("B90").Value
    .AddItem Range("B100").Value
    .AddItem Range("B110").Value
    .AddItem Range("B120").Value
    .AddItem Range("B130").Value
    .AddItem Range("B140").Value
End With
       
End Sub

ComboBox
PHP:
Private Sub ComboBox1_Change()
If ComboBox1.Value = Range("B10").Value Then masque_lignes_Bloc1
If ComboBox1.Value = Range("B20").Value Then masque_lignes_Bloc2
If ComboBox1.Value = Range("B30").Value Then masque_lignes_Bloc3
If ComboBox1.Value = Range("B40").Value Then masque_lignes_Bloc4
If ComboBox1.Value = Range("B50").Value Then masque_lignes_Bloc5
If ComboBox1.Value = Range("B60").Value Then masque_lignes_Bloc6
If ComboBox1.Value = Range("B70").Value Then masque_lignes_Bloc7
If ComboBox1.Value = Range("B80").Value Then masque_lignes_Bloc8
If ComboBox1.Value = Range("B90").Value Then masque_lignes_Bloc9
If ComboBox1.Value = Range("B100").Value Then masque_lignes_Bloc10
If ComboBox1.Value = Range("B110").Value Then masque_lignes_Bloc11
If ComboBox1.Value = Range("B120").Value Then masque_lignes_Bloc12
If ComboBox1.Value = Range("B130").Value Then masque_lignes_Bloc13
If ComboBox1.Value = Range("B140").Value Then masque_lignes_Bloc14

End Sub
 

Atiom

XLDnaute Occasionnel
Re : ComboBox .AddItem valeur cellule sans doublons

Salut Staple 1600

La FAQ d'XLD n'est jamais négligée.
Le problème est que parfois on veut gagner du temps.
Après avoir essayer une dizaine de fois d'adapter un code trouver dans la FAQ d'XLD et obtenir toujours des erreurs.
On pose la question.
Merci. Je vais essayer encore d'adapter le code.:)

Bonne soirée
 

Atiom

XLDnaute Occasionnel
Re : ComboBox .AddItem valeur cellule sans doublons

Bonsoir,
Copie des valeurs ( A10, A20, A30 etc.. ) dans une autre feuille nommée Listes.
Ajout dans L’UserForm du code ci-dessous et le tour est joué
Sans doute il y beaucoup plus simple mais voila ça fonctionne.

Merci à tous et bonne soirée:)

PHP:
Private Sub UserForm_Initialize()
  Dim temp()
  Set F = Sheets("Listes")
  Set MonDico = CreateObject("Scripting.Dictionary")
  For Each c In F.Range("x1:x" & F.[x65000].End(xlUp).Row)
    If c.Value <> "" Then MonDico.Item(c.Value) = c.Value
  Next c
  temp = MonDico.items
  Call Tri(temp, LBound(temp), UBound(temp))
  Me.ComboBox1.List = temp


End Sub
Sub Tri(x(), gauc, droi)         
 ref = x((gauc + droi) \ 2)
 g = gauc: d = droi
 Do
     Do While x(g) < ref: g = g + 1: Loop
     Do While ref < x(d): d = d - 1: Loop
     If g <= d Then
       temp = x(g): x(g) = x(d): x(d) = temp
       g = g + 1: d = d - 1
     End If
 Loop While g <= d
 If g < droi Then Call Tri(x, g, droi)
 If gauc < d Then Call Tri(x, gauc, d)
End Sub
 

Regueiro

XLDnaute Impliqué
Re : ComboBox .AddItem valeur cellule sans doublons

Bonsoir à tous, Atiom ( La Tour-de-Peilz-> La Tour-de-Trême -> Bulle )
Voir en PJ
Plusieurs les 3 variantes
Sans déplacement des cellules sur une autre feuilles.
Bonne Année 2014

A+
 

Pièces jointes

  • COMBOBOX.xlsm
    27 KB · Affichages: 67
  • COMBOBOX.xlsm
    27 KB · Affichages: 69
  • COMBOBOX.xlsm
    27 KB · Affichages: 72

Discussions similaires

Réponses
11
Affichages
306

Statistiques des forums

Discussions
312 360
Messages
2 087 598
Membres
103 604
dernier inscrit
CAROETALEX59