• Initiateur de la discussion Initiateur de la discussion la gigogne
  • Date de début Date de début

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 !

L

la gigogne

Guest
Bonjour les EXCELlons

Aujourd'hui j'ai un petit problème de Combo.

J'ai trouvé une source qui correspond exactement à ce dont j'ai besoin, c'est à dire qui utilise la Méthode Dictionary et qui tient compte des ajouts de nouveaux fournisseurs.

Problème, ça ne marche pas.

Pourriez vous y jeter un oeil ?

En plus de cela je souhaiterais que cette même combo réagisse à l'ajout d'un fournisseur non présent dans ma liste. C'est à dire que si je souhaite rentrer un nouveau client Tartanpion Une message box s'affiche "ce fournisseur n'existe pas voulez vous le créer ?

Par la suite je mettrai en place un USF pour renseigner les champs relatifs à un fournisseur (adresse, N° tél etc.)

Toute solution bienvenue.

Merci d'avance.
 

Pièces jointes

Re : Affichage combobox

Bonjour
je veux bien t'aider mais tes explications ne sont pas assez clair:
De quel combobox s'agit-il ?
A bientôt.
C'est bon je viens de voir quoi!!
ton code:
Code:
Private Sub [SIZE=5]UserForm2[/SIZE]_Initialize()
  Set mondico = CreateObject("Scripting.Dictionary")
  Set f = Sheets("Fournisseur")
  For Each c In Range(f.[A2], f.[A65000].End(xlUp))
    mondico.Item(c.Value) = c.Value
  Next c
  Me.ComboBoxFournisseur.List = mondico.items
End Sub
le bon code:
Code:
Private Sub [SIZE=5]UserForm[/SIZE]_Initialize()
  Set mondico = CreateObject("Scripting.Dictionary")
  Set f = Sheets("Fournisseur")
  For Each c In Range(f.[A2], f.[A65000].End(xlUp))
    mondico.Item(c.Value) = c.Value
  Next c
  Me.ComboBoxFournisseur.List = mondico.items
End Sub
 
Dernière édition:
Re : Affichage combobox

Bonjour la Gigogne, bonjour le forum,

En premier lieu je ne comprenais pas pourquoi l'Initialisation de l'UserForm2 ne se faisait pas ? L'erreur vient de là :
Private Sub UserForm2_Initialize()
Toutes les procédures d'une userform utilsent UserForm_le-nom-de-la-procédure mais jamais le-nom-de-l-userform_le-nom-de-la-procédure...
J'ai donc supprimé le 2 est tout est rentré dans l'ordre...
Private Sub UserForm_Initialize()
Je te popose le code ci-dessous qui agira à la sortie de la combobox ComboBoxFournisseur :
Code:
Private Sub ComboBoxFournisseur_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Me.ComboBoxFournisseur.ListIndex = -1 Then
    If MsgBox("Voulez-vous ajouter " & Me.ComboBoxFournisseur.Value & " à la liste des fournisseurs ?", vbYesNo, "Attention !") = vbYes Then
        Sheets("Fournisseur").Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0).Value = Me.ComboBoxFournisseur
    End If
End If
End Sub

Bonjour Fhoest on s'est croisé...
 
Dernière édition:
Re : Affichage combobox

Salut les EXCELlons,

Merci Robert pour ton code précieux qui vient admirablement bien compléter celui de Fhoest, mais je risque d'avoir encore un peu besoin de vous.

Je suis resté mes deux heures de pause repas à essayer par moi même de reproduire la procédure sur les combobox client sans succès.

J'ai donc cru comprendre que Set f correspondait à la déclaration d'une variable que j'ai appellé Fournisseur

Sheets ("Fournisseur") la page de référence de la bibliothèque

J'ai essayé de changer For Each c par For Each d ou For Each client et Oh ! surprise ça ne marche PÔ

Donc dans un premier temps, j'aimerais reproduire ma sub UserForm appliquable aux fournisseurs à ma combobox Client

Je sais pas s'il est possible aussi Robert que vous jetiez un oeil à la sub comboBox pour ajouter un fournisseur à la BDD Fournisseur.

Je souhaiterais que cet ajout soit demandé au changement de combo dans mon USF et non à la fermeture de l'USF

J'ai essayé de modifier Exit par AfterUpdate ou Change mais ça ne marche toujours PÔ

Merci d'avance !!!
 

Pièces jointes

Re : Affichage combobox

Bonsoir le fil, bonsoir le forum,

Je souhaiterais que cet ajout soit demandé au changement de combo dans mon USF et non à la fermeture de l'USF
J'ai essayé de modifier Exit par AfterUpdate ou Change mais ça ne marche toujours PÔ
Merci d'avance !!!

En pièce jointe ton fichier modifié. J'ai modifié l'ordre des tabulations pour que les champs soient sélectionnés les uns à la suite des autres. J'ai mis le code à toutes comboboxes et j'ai commenté une partie du code pour que tu comprennes mieux. J'ai rajouté en première ligne le code Option Explicit qui oblige à déclarer toutes les variables. Donc si ton code plante à cause de ça, soit tu déclares la variable qui plante soit tu supprimes la ligne.

Je ne comprends pas ta remarque puisque la demande de rajout est faite à la sortie (Exit) de chaque combobox et pas à la fermeture de l'Userform.

Je reviens juste sur les variables... tu leurs donnes le nom que tu veux (en évitant impérativement un mot clé de VBA), moi je prépère les noms courts et significatifs... il faut toujours commencer par la déclarer :
Code:
Dim f As WorkSheet
ensuite il faut la définir
Code:
Set f = Sheets("Fournisseur")
Dès lors tu pourras remplacer Sheets("Fournisseur") par f. Donc dans la boucle For... Each, tu peux remplacer par ce que tu veux à condition d'avoir déclarer avant. Du style :
Code:
Dim cel as range
For Each cel In f.Range("A1:A" & f.cells(Application.Rows.Count,1).End(xlUp).row)
     '.... blablabla
Next cel
Le fichier :
 

Pièces jointes

- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
0
Affichages
667
L
Réponses
40
Affichages
5 K
lalimace
L
K
Réponses
38
Affichages
10 K
kinders59
K
J
  • Question Question
Réponses
5
Affichages
1 K
JeanDidouille
J
S
  • Question Question
Microsoft 365 Mise à Jour dates
Réponses
0
Affichages
650
Stephane Mex
S
B
Réponses
6
Affichages
2 K
B
G
Réponses
6
Affichages
5 K
Gaspachi
G
J
  • Question Question
Réponses
9
Affichages
1 K
S
Réponses
4
Affichages
2 K
stage_ferrit
S
M
Réponses
2
Affichages
958
mamarus
M
Réponses
11
Affichages
3 K
D
Réponses
2
Affichages
1 K
Danyspeed
D
Retour