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 :

ComboBox sans doublon [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Vba14
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2019
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2019
    Messages : 440
    Par défaut ComboBox sans doublon
    Bonjour à tous,

    J'ai emprunté ce code à PatrickToulon et je l'en remercie. Ce code permet de supprimer les doublons d'un ComboBox
    Toutefois je rencontre un problème avec le message suivant : "Variable non définie" sur la ligne en rouge.
    Que n'ai-je pas bien fait ?
    Merci pour vos réponses

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub UserForm_Initialize()
    Me.Cmb_Fact.List = liste_sans_doublons("B6:B" & Range("B" & Rows.Count).End(xlUp).Row, "Feuil7")
    Me.Labe_Info.Caption = Sheets(10).Range("D27").Value
    End Sub
    
    Private Function liste_sans_doublons(plage, Optional feuille As Variant = 1)
            Set D = CreateObject("Scripting.Dictionary")
        For Each Cel In Sheets("Ventes").Range("B6:B")
            D.Item(Cel.Value) = ""
        Next Cel
        liste_sans_doublons = D.keys
    End Function

  2. #2
    Membre émérite
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études(en disponibilité)
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 367
    Par défaut
    Bonjour

    Comme il te l'indique tu n'a pas déclaré tes variables


    Tu peux supprimer Option Explicit pour tester

    Puis je te conseille de le remettre Option Explicit et de déclarer tes variables.

  3. #3
    Membre éclairé Avatar de Vba14
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2019
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2019
    Messages : 440
    Par défaut
    Bonjour a_diard,

    Comment dois-déclarer cette variable, je suis un peu perdu !! Integer, Range, Variant, etc...

  4. #4
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonsoir,

    Si D est ton dictionnaire, alors
    - Dans l'éditeur VBE, Menu Outils \ Références, cocher
    Microsoft Scripting RunTime
    - Dans la procédure,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim D as Scripting.Dictionary
    Ce processus permet de saisir plus facilement les méthodes et propriétés inhérentes aux dictionnaires.

    En fin de procédure,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'Pour vider le dictionnaire
    D.RemoveAll
    'Pour libérer la variable
    Set D = Nothing
    Pour te documenter sur les variables, tu peux consulter ce tutoriel

    Bonne continuation.

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    Bonjour Marcel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'Pour vider le dictionnaire
    D.RemoveAll
    'Pour libérer la variable
    Set D = Nothing
    je pense que suffit a libérer l'espace la memoirealloué a D
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Membre éclairé Avatar de Vba14
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2019
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2019
    Messages : 440
    Par défaut
    Merci beaucoup Marcel.
    Je mets ça en place et je reviens vous dire quoi

  7. #7
    Membre éclairé Avatar de Vba14
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2019
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2019
    Messages : 440
    Par défaut
    Alors voici le code que j'ai mis dans l'UF.
    Pour la ligne en rouge j'ai le message suivant : "Type définit par l'utilisateur non définit"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Function liste_sans_doublons(plage, Optional feuille As Variant = 1)
    Dim D As Scripting.Dictionary
    
            Set D = CreateObject("Scripting.Dictionary")
        For Each Cel In Sheets("Ventes").Range("B6:B")
            D.Item(Cel.Value) = ""
        Next Cel
        liste_sans_doublons = D.keys
        Set D = Nothing
    End Function
    Alors j'ai essayé ça : Mais j'ai un message d'erreur pour ce petit bout de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Cmb_Plus_Click()
    UF_Livre.Show
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Private Function liste_sans_doublons(plage, Optional feuille As Variant = 1)
    Dim D As ComboBox
    Dim Cel As Variant
            Set D = CreateObject("Scripting.Dictionary")
        For Each Cel In Sheets("Ventes").Range("B6:B")
            D.Item(Cel.Value) = ""
        Next Cel
        liste_sans_doublons = D.keys
        Set D = Nothing
    End Function

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

Discussions similaires

  1. Combobox sans doublons
    Par arnold95 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/03/2016, 14h30
  2. [XL-2003] ComboBox Sans Doublon: ça ne marche jamais
    Par Otmanes dans le forum Excel
    Réponses: 2
    Dernier message: 14/07/2009, 11h53
  3. Remplissage de combobox sans doublon
    Par Shadow5 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 15/04/2008, 20h06
  4. combobox sans doublon (colonne de reference avec cellule vide)
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/04/2008, 17h08
  5. Combobox sans doublon
    Par Psychoze dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/03/2008, 19h18

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