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

Tri de formulaire

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 !

GUYANAIS

XLDnaute Occasionnel
Bonjour 🙂

J'ai un formulaire qui se déclenche sur une feuille. Ce formulaire contient 2 combo qui récupére 2 plages de données dans des colonnes différentes. Je voudrais faire un tri de ces plages et enléver les doublons. J'ai bien un bout de code mais je ne sais pas ou le mettre et surtout si il fonctionne dans mon code. Ci dessous mon code.
Code:
Private Sub UserForm_Initialize()
'Rempli les comboBox avec la feuille active
ComboBox1.List = Range("A12:A72").Value
ComboBox2.List = Range("D12:D72").Value
End Sub
Ici mon bout de code.
Code:
If Obj.ListIndex = -1 Then Obj.AddItem Ws.Range("A" & j)
Je débute en VBA 😕
 
Re : Tri de formulaire

Re bonjour,

J'ai cherché dans les tuto et j'ai trouvé un code qui peut me correspondre pour ce que je fais. Par contre il ne veux rien afficher dans les combox et la je ne comprends pas pourquoi? J'ai pourtant bien créer un onglet "Base" dans mon classeur pour faire quelques essais...
Le Formulaire se lance et rien dans les combo. Je vous met le code.
Code:
Option Explicit

Dim Ws As Worksheet
Dim NbLignes As Integer

Private Sub UserForm3_Initialize()
     Set Ws = Worksheets("Base")
     NbLignes = Ws.Range("A65536").End(xlUp).Row
  
    Alim_Combo 1
End Sub

Private Sub ComboBox1_Change()
      Alim_Combo 2, ComboBox1.Value
End Sub


Private Sub ComboBox2_Change()
    Alim_Combo 3, ComboBox2.Value
End Sub

Private Sub ComboBox3_Change()
    Alim_Combo 4, ComboBox3.Value
End Sub

Private Sub Alim_Combo(CbxIndex As Integer, Optional Cible As Variant)
    Dim j As Integer
    Dim Obj As Control
    Set Obj = Me.Controls("ComboBox" & CbxIndex)
    Obj.Clear
    If CbxIndex = 1 Then
        For j = 2 To NbLignes
            Obj = Ws.Range("A" & j)
            'Remplit le ComboBox sans doublons
            If Obj.ListIndex = -1 Then Obj.AddItem Ws.Range("A" & j)
        Next j
    Else
        For j = 2 To NbLignes
            If Ws.Range("A" & j).Offset(0, CbxIndex - 2) = Cible Then
                Obj = Ws.Range("A" & j).Offset(0, CbxIndex - 1)
                If Obj.ListIndex = -1 Then Obj.AddItem Ws.Range("A" & j).Offset(0, CbxIndex - 1)
            End If
        Next j
   End If
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

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