ComboBox .AddItem valeur cellule sans doublons

  • Initiateur de la discussion Initiateur de la discussion Atiom
  • 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 !

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

Discussions similaires

Réponses
7
Affichages
307
Réponses
10
Affichages
665
Réponses
3
Affichages
332
Réponses
9
Affichages
389
Retour