Les Snippets

Connexion

Supprimer les doublons d'un combobox

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 23/04/2007 09:38:19 et initié par OneHacker [Liste]
Date de mise à jour : 03/06/2007 16:52:28
Vue : 20426
Catégorie(s) : Control
Langages dispo pour ce code :
- VB 2005, VB.NET 1.x
- VB6, VBA
- VB6, VBA
- Javascript
- C# 1.x, C# 2.x
- Delphi 5
- Delphi 5
- VBA
- Voir tous les langages pour ce code snippet



Langage : VBA
Date ajout : 11/03/2009
Posté par bigfish_le vrai [Liste]
' a mettre dans un module
Sub ListeSansDoublon(ByRef MaPlage As Range, ByRef MaCombobox As ComboBox)
    ' on commence par verifier ce qui a été passé en parametre
    If Not MaCombobox Is Nothing And Not MaPlage Is Nothing Then
        If TypeOf MaCombobox Is ComboBox Then
            Application.ScreenUpdating = False
            ' utilisation du filre de donnée élaboré
            MaPlage.AdvancedFilter Action:=xlFilterInPlace, Unique:=True
            ' le filtre élaboré a besoin d'un colonne de donnée avec etiquette
            ' donc pour ne pas mettre cette etiquette dans la liste on se decale d'une ligne vers le bas
            Set MaPlage = MaPlage.Offset(1, 0).Resize(MaPlage.Rows.Count - 1, 1)
            ' les données en doubles on été cachées par le filtre
            ' il suffit donc de ne recupérer que ce qui est visible
            Set MaPlage = MaPlage.SpecialCells(xlCellTypeVisible)
            ' comme on ne peut pas attribuer les valeurs d'une plage composée de plusieurs area a une combobox
            ' on vas contourner le probleme par un copy paste des valeurs sur une plage temporaire
            MaPlage.Copy
            Range("Z1").PasteSpecial Paste:=xlPasteValues ' ici la plage temporaire est la colonne Z
            MaCombobox.List() = Selection.Value
            ' on desactive le filtre
            ActiveSheet.ShowAllData
            ' on efface la zone temporaire
            Selection.ClearContents
            ' on centre l'affichage sur la plage d'origine
            MaPlage.Cells(1, 1).Activate
            Application.ScreenUpdating = True
        End If
    End If
End Sub
Remarque :
Code sans boucle mais specifique au VBA excel.

Snippets en rapport avec : Combobox, Doublons



Codes sources en rapport avec : Combobox, Doublons

{Visual Basic, VB6, VB.NET, VB 2005} SUPPRESSION DES DOUBLONS DANS PLAGE EXCEL
Liminaire : La méthode Range.AdvancedFilter Action:=xlFilterInPlace, Unique:=True proposée par ...

{C# / C#.NET} TOOLTIP TEXT POUR LA LISTE DÉROULANTE D'UN COMBOBOX
Ce code permet d'afficher un ToolTip lors du survol de la dropdwonlist d'un combobox. Cette fonctio...

{C# / C#.NET} COLORCOMBOBOX, COMBO BOX PERMETTANT DE SÉLECTIONNER DES COULEURS
Pour un projet perso, j'ai besoin d'un combobox permettant de sélectionner une couleur. N'ayant pas...

{SQL} SUPPRESSION DE DOUBLONS
C'est une suite de requêtes qui permettent de supprimer les doublons d'une table. Il y en a d'autre ...

{Visual Basic, VB6, VB.NET, VB 2005} TABLES DE MULTIPLICATION
Pour faire réviser les tables aux tout petits. En VBA Excel. Une table par feuille, dans le sommaire...

{Visual Basic, VB6, VB.NET, VB 2005} COMBOBOX FAÇON ERRORPROVIDER
Ce que je reproche au contrôle ErrorProvider, dans le cas d'un formulaire contenant des onglets, c'e...

{Visual Basic, VB6, VB.NET, VB 2005} BOUTONSFACEID
Afficher les FacesID d'Excel dans un tableau.On peut aussi afficher toutes les FacesId (10038) dans ...

{Visual Basic, VB6, VB.NET, VB 2005} JEU DU CISEAUX
Pour l'été le petit jeu du ciseaux, de la feuille, de la pierre et du puits. Vous connaissez? Vous p...

{Delphi} TRI DANS LISTBOX/COMBOBOX (TSTRINGS)
D' après une question sur le forum : http://www.delphifr.com/infomsg_TRI-NUMERIQUE-SUR-LISTBOX_1050...

{Visual Basic, VB6, VB.NET, VB 2005} MENU CONTEXTUEL
Mettre vos applications favorites dans le menu contextuel du clic droit.Vous cherchez le chemin,vous...