2 combobox en cascade qui alimentent plusieurs textbox

  • Initiateur de la discussion Initiateur de la discussion Loglana
  • 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 !

Loglana

XLDnaute Nouveau
Bonjour à tous,
Étant novice dans le VBA cela fait plusieurs jours que je me creuse là tête en vain.
J'aurais souhaité créer un userform alimenté par une base de donnée.
Cette base de donnée est composée de plusieurs colonnes. La colonne A alimente la Combobox 1, la colonne B alimente la Combobox 2 en fonction du choix de la Combobox 1.
Cependant, ma colonne A possède plusieurs cases identiques mais des cases uniques pour la colonne B. Il aurait fallu, en donnant un exemple pour les voitures, la Combobox 1 soit la marque de la voiture, la Combobox 2 le modèle de la voiture, ensuite une fois le choix fait on appui sur un bouton qui nous rempli plusieurs textbox (non modifiables) correspondant aux infos sur cette voiture (infos alimentée par la ligne de la voiture dans la base de donnée).
En espérant avoir été assez clair dans mes explications..
Dans l'attente de vos réponses, merci d'avance
 
J'ai essayé mais je ne connais pas encore tres bien VBA
J'ai mis ci-joint mon fichier excel avec des donnée prise au hasard car je n'ai pas l'autorisation de mettre les données réelles mais je ne vois plus du tout pourquoi sa ne fonctionne pas
si vous pouvez y jeter un coup d'oeil merci par avance
 

Pièces jointes

Votre variable CL n'est pas déclarée comme variable objet globale avec évènements.
Commencez le module de l'UserForm par :
VB:
Option Explicit
Private WithEvents CL As ComboBoxLiées
Ensuite vérifiez vos noms de contrôles.
Me("TextBox" & C - 2) soit "TextBox1" n'existe pas.

Remarque: C'est une vieille version des modules de service.
La nouvelle n'utilise plus TableIndex parce que je me suis aperçu que l'indexation par fusions est plus rapide que celle par Quick-sort. Et le nouveau module MSujetCBx est donc équipé d'une procédure d'indexation sur un seul argument par cette méthode là.
Si vous joignez le classeur une fois les modifications indiquées effectuées, je l'en équiperai des nouveaux modules si vous voulez. Ils peuvent aussi être utilisés avec un complément à mettre en référence dont je joins le classeur précurseur.
 

Pièces jointes

Dernière édition:
Sa fonctionne merci beaucoup, j'ai mis ci-joint le fichier modifié si vous avez le temps de l'équiper avec le nouveau module de service, merci par avance
Je voulais aussi savoir, les infos dans les textbox se remplissent dès que je rempli le première combobox fournisseur
Pourront-on les faires apparaitres une fois que le choix de la deuxième combobox mail est saisit?
 

Pièces jointes

Attention: oubli important dans la Sub CL_Résultat:
Remplacer TVL = CL.PlgTablo.Rows(Lignes(1)).Resize(, 9).Value par :
VB:
LCou = Lignes(1)
TVL = CL.PlgTablo.Rows(LCou).Resize(, 9).Value
Pour que LCou contienne bien, à l'intention des autre procédures, le numéro de la ligne en cours de mise à jour, ou 0 seulement si on est en voie de création.
 
Désolé mais j'ai encore un petit problème au niveau des boutons ils fonctionnent tous sauf celui pour ajouter des fournisseurs
et je voulais savoir si en plus du bouton ajout d'un fournisseur il était possible d'ajouter une autre adresse mail pour un fournisseur avec les infos qui vont avec dans les textbox
merci par avance
 
Bonjour
Oui, je n'avais pas fais attention: vous ne pouvez taper aucun nouvel élément parce qu'il y a CL.CorrespRequise = True
Supprimez cette instruction.
Vous pouvez mettre à la place :
VB:
CL.CouleurSympa
La couleur de fond des ComboBox indiquera alors s'il portent un élément figurant dans leurs liste, assumé ou spécifié.

Et oui, il est possible de créer une 2ième ligne pour un fournisseur avec une adresse mail différente.
 
Il faut, pour l'instant, avoir renseigné au moins une TextBox en plus des ComboBox pour que le contact puisse être ajouté.
Si vous voulez pouvoir ajouter une ligne avec seulement Fournisseur et Mail il faut corriger dans la Sub HabiliterContrôles:
VB:
With CBnValider
   .Enabled = (Différent Or LCou = 0) And NbCBxRens > 0
   .Caption = IIf(LCou = 0, "Ajouter", "Modifier")
   End With
 
- 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
40
Affichages
1 K
Réponses
4
Affichages
739
Réponses
2
Affichages
739
Retour