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 :

Erreur dans un combobox sans doublons [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Formatrice bureautique
    Inscrit en
    Septembre 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Formatrice bureautique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 202
    Par défaut Erreur dans un combobox sans doublons
    Hello l'équipe,

    J'ai consulter vos tutoriaux pour créer une liste déroulante qui va rechercher les données de la colonne A d'une feuille nommée RH et de prendre les valeurs de façon unique.

    Voici mon code :

    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()
     
    Dim i As Integer
     
    For i = 1 To Sheets("RH").Range("A65536").End(xlUp).Row
     
        CboNom = Sheets("RH").Range("A" & i)
     
        If CboNom.ListIndex = -1 Then CboNom.AddItem Sheets("RH").Range("A" & i)
     
    Next i
     
    End Sub
    Si j'enlève la ligne du IF, je n'ai pas de message d'erreur mais il inscrit dans la liste que le dernier élément de ma colonne A... Normal...

    Mais si je laisse le IF, j'ai le message d'erreur suivant : Erreur d'exécution '380' Impossible de définir la propriété Value. Valeur de propriété non valide.

    La fenêtre de déboguage m'emmène pas sur le code du userform mais sur le code de la feuille où j'ai le bouton qui lance le userform...

    J'ai esssayé de remplacé la valeur -1 par 0 ou 1 et la macro passe... bien sûr que la liste ne s'affiche pas correctement mais il n'y a pas de bug... alors que dès que je note -1, il m'emmène sur l'erreur 380...

    Est-ce que quelqu'un peut m'orienter ? Car là je sèche...

    Merci et belle soirée,

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonsoir,
    Un exemple avec lequel tu pourras te reservir des deux derniers modules pour d'autres controles à remplir :
    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
    28
    29
    30
    31
    32
    Option Explicit
     
    Dim Doubl As Object, derlg As Long, tb(), listA()
    Private Sub UserForm_Initialize()
    Test_doublons
    CboNom.List = WorksheetFunction.Transpose(listA)
    End Sub
    Sub Test_doublons()
    Set Doubl = CreateObject("Scripting.Dictionary")
    Erase tb
    With Sheets("RH")
       derlg = .Range("A" & .Rows.Count).End(xlUp).Row
       IdentifieDoublons .Range("A3:A" & derlg)
    End With
    End Sub
     
    Sub IdentifieDoublons(Plg As Range)
    Dim x As Long, y As Long
    y = 0
    ReDim tb(1 To derlg)
    tb = Plg.Value
    On Error Resume Next
    For x = 1 To UBound(tb)
      Doubl.Add tb(x, 1), CStr(tb(x, 1))
      If Err = 0 Then
        y = y + 1
        ReDim Preserve listA(1 To y)
        listA(y) = tb(x, 1)
      End If
      Err.Clear
    Next x
    End Sub
    Bonne soirée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

+ 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. Remplissage de combobox sans doublon
    Par Shadow5 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 15/04/2008, 20h06
  3. 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
  4. Combobox sans doublon
    Par Psychoze dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/03/2008, 19h18
  5. Liste dans un formulaire, sans doublon
    Par yao67 dans le forum VBA Access
    Réponses: 5
    Dernier message: 15/06/2007, 18h36

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