Liste intuitive - Combobox erreur

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 !

helias jeremy

XLDnaute Nouveau
Bonjour,

J'ai créé un fichier de saisie de chèques.
Là dedans apparait un userform pour faciliter la saisie. J'ai une combobox avec une recherche intuitive.
Elle se nomme "textbénéficiaire".
Et c'est là que je rencontre le problème :

"For each c in a " me sort en anomalie !

Egalement j'aimerais que la liste se déroule si la combobox est vide (dropdown??) et qu'elle diminue en fonction de la saisie.
Et enfin j'aimerais que lorsqu'on clique sur le bénéficiaire dans la liste, le nom remonte dans la combobox.

Un fichier parle plus que des mots, je vous le laisse en pièce jointe.
 

Pièces jointes

Bonsoir

le plantage est normal, tu crées et utilises un dico mais ta syntaxe pour ajouter les valeurs est mauvaise.
Code:
Private Sub TextBénéficiaire_Change()

Set d1 = CreateObject("Scripting.Dictionary")
  
    'Détermine le critère de recherche
    tmp = "*" & UCase(Me.TextBénéficiaire) & "*"
       
   'Recherche dans la liste de fournisseurs
   For Each c In a
     If UCase(c) Like tmp Then d1(c) = ""
  Next c
  Me.TextBénéficiaire.List = d1.Keys
 
End Sub
Pour créer un index de dico la bonne syntaxe est
If Not d1.Exists(c) Then d1.Add c, ""
en premier lieu tester si la valeur existe avant de l'ajouter sinon plantage
ensuite ajout de la valeur au dico, c dans ton code, avec la valeur de renvoi, dans ton code tu l'as définie à ""

Cordialement, @+
 
Salut Job75
Tu as raison pour la variable, quand j'ai vu qu'elle était initialisée dans l'initialisation du userform, j'ai pensé à une variable publique et je me suis focalisé sur la commande de dico qui plantait forcément. Mais après l'avoir cherchée, ce qui est toujours casse pied sur des variables aussi pauvrement nommées, je ne l'ai pas trouvé non plus.
Cordialement, @+
 
Merci BOISGONTIER,

Ça fonctionne parfaitement.
J'ai vu mon erreur après coup, la variable a n'était pas défini (tout en haut du code)

Je te rejoint sur les insultes les gens sont hautains, le code ici n'est pas parfait mais il fonctionne très bien !
Comme si Job75 était parfait en tout point...

Bref, merci encore BOISGONTIER

ps : sympa ton site
 
Bonjour,

Ah bon je n'ai rien fait d'autre que critiquer et ceci alors :
La variable a n'est pas définie dans cette macro.
Quant à votre code ceci n'a aucun sens :
Code:
Private Sub Textbénéficiaire_Click()
TextBénéficiaire = Me.TextBénéficiaire.List
End Sub
Et ceci est une horreur :
Code:
Sub Effacerchq1()
'
' Effacerchq1 Macro

    Range("A13:D62").Select
    Selection.ClearContents
    Range("F13:I62").Select
    Selection.ClearContents
    Range("K13:N62").Select
    Selection.ClearContents
    Range("P13:S62").Select
    Selection.ClearContents
   
   
    Range("A13").Select
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

Réponses
4
Affichages
2 K
Compte Supprimé 979
C
Retour