IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Gestion Des combo box. [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Amateur vb vba
    Inscrit en
    Décembre 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Amateur vb vba

    Informations forums :
    Inscription : Décembre 2022
    Messages : 4
    Par défaut Gestion Des combo box.
    Bonjour a tous,

    Je souhaite utiliser les éléments d'un combo box afin de faire un test de comparaison.

    Dans l'idée ce serait de la manière suivante:

    Pour tous élément de ma sélection (sur mon tableur)
    s'il se trouve dans ma liste de combo box --> je passe à l'itération suivante
    sinon je l'ajoute


    Voici ce que j'ai écris actuellement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        'On charge le combo des codes postaux
        NbCellule = Range("CpRef").End(xlDown).Row
        'pour chaque cellule on test si le CP se trouve dans le combo
        For i = 1 To NbCellule
            For j = 0 To Cmb_CP.ListCount
                If Cmb_CP*********** <> Cells(i,5) Then
                    ' on ajoute le CP au combo
                    Cmb_CP.AddItem Cells(i, 5)
                    Exit For
                End If
            Next j
        Next i
    je bloque à If Cmb_CP**********

    Est-ce que quelqu'un aurait une idée?

    merci d'avance

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 524
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 524
    Par défaut
    Salut,
    Cmb_CP********** n'est pas un nom valide.
    Change le.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Amateur vb vba
    Inscrit en
    Décembre 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Amateur vb vba

    Informations forums :
    Inscription : Décembre 2022
    Messages : 4
    Par défaut
    Citation Envoyé par deedolith Voir le message
    Salut,
    Cmb_CP********** n'est pas un nom valide.
    Change le.
    je suis d'accord que cela ne soit pas valide.

    Cmb_CP. ??????? quelque chose .

  4. #4
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 57
    Par défaut
    Cmb_CP.List(j, 0) ?

  5. #5
    Membre émérite Avatar de Valtrase
    Homme Profil pro
    Jeune retraité...
    Inscrit en
    Janvier 2016
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Jeune retraité...
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Janvier 2016
    Messages : 516
    Par défaut
    Salut,
    Un exemple de Crosoft...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    ' // PopulateListBox
    ' // https://docs.microsoft.com/en-us/office/vba/excel/Concepts/Controls-DialogBoxes-Forms/add-a-unique-list-of-values-to-a-combo-box
    ' // Ajoute une liste de valeurs unique à un ComboBox ou ListBox d'un Formulaire personnel
    Sub PopulateListBox(ByVal ctControl As String, ByVal rnData As Range, Usf As UserForm)
        Dim vaData As Variant               ' La liste de valeur stockée dans un variant
        Dim ncData As New VBA.Collection    ' Collection pour stoker les valeurs unique
        Dim lnCount As Long                 ' Compteur utilisé dans la boucle On Error Resume Next loop.
        Dim vaItem As Variant               ' Elément variant de valeur unique dans  la collection ncData
        ' // Place les valeurs de la plage dans vaData
        vaData = rnData.Value
     
        ' // Place les valeurs de liste de vaData dans la Collection.
        On Error Resume Next
        For lnCount = 1 To UBound(vaData)
            ncData.Add vaData(lnCount, 1), CStr(vaData(lnCount, 1))
        Next lnCount
        On Error GoTo 0
     
        ' // Efface la zone de liste déroulante (au cas où vous auriez déjà exécuté la macro),
        'puis ajoute chaque élément unique de ncData à la zone de liste déroulante.
        With Usf.Controls(ctControl)
            .Clear
            For Each vaItem In ncData
                .AddItem ncData(vaItem)
            Next vaItem
        End With
    End Sub
    Et pour l'appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PopulateListBox "Cmb_CP", Range("CpRef"), Me

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Amateur vb vba
    Inscrit en
    Décembre 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Amateur vb vba

    Informations forums :
    Inscription : Décembre 2022
    Messages : 4
    Par défaut
    Je te remercie pour le code, mais il ne traite que la partie chiffre.

    Ce que je recherche peut aussi bien servir pour les chiffres que pour le texte.

    En fait, c'est une gestion des doublons sans suppressions des doubles dans le tableur Excel.

    En VB on utilise la fonction afin d'avoir le contenue d'une list de combo.

    Cette fonction existe en VBA mais elle n'est utilisée que pour la listbox.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Amateur vb vba
    Inscrit en
    Décembre 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Amateur vb vba

    Informations forums :
    Inscription : Décembre 2022
    Messages : 4
    Par défaut
    Citation Envoyé par P4board Voir le message
    Cmb_CP.List(j, 0) ?
    Merci pour l'astuce. Cela fonctionne correctement avec un de changement au niveau du code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
     'On charge le combo des code postal
        NBCellule = Range("CpRef").End(xlDown).Row
        'pour chaque cellule on test si le CP se trouve dans le combo
        For i = 1 To NBCellule
            If Cmb_CP.ListCount = 0 Then
                'Si le combo est vide, on indique Qu'il n'y a pas de doublons
                TestDoublon = False
            Else
                'Pour chaque élément de la liste du combo
                'On test s'il se trouve dans la liste combo
                'si c'est le cas on indique et on sort de la boucle
                For j = 0 To Cmb_CP.ListCount - 1
                    If Cmb_CP.List(j, 0) = Format(Cells(i, 9), "") Then
                        TestDoublon = True
                        If TestDoublon = True Then Exit For
                    Else
                        TestDoublon = False
                    End If
                Next j
            End If
            'S'il n'y a pas de doublons on ajoute la valeur dans la liste du combo
            If TestDoublon = False Then Cmb_CP.AddItem Cells(i, 9)
        Next i
    Les compteurs i et j seront a définir en fonction de vos besoin.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lier les choix des combo box
    Par chepa dans le forum Excel
    Réponses: 3
    Dernier message: 13/07/2013, 16h58
  2. Couleur des combo-box
    Par troumad dans le forum GTK+ avec C & C++
    Réponses: 25
    Dernier message: 19/02/2011, 13h42
  3. remplir des combo box par une fonction ?
    Par angelevil dans le forum VB.NET
    Réponses: 5
    Dernier message: 06/10/2010, 23h12
  4. Regions et départements dans des Combo Box
    Par realtux dans le forum NetBeans
    Réponses: 4
    Dernier message: 16/06/2010, 12h23
  5. Réponses: 1
    Dernier message: 20/06/2006, 17h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo