Petit réglage VBA pour lsite déroulante

mamatt62

XLDnaute Junior
Bonjour à tous,

vous verrez dans le fichier joint un USF en page 2 avec trois liste déroulante. Ma demande n'est pas bien compliquée en effet voici le code que j'ai actuellement:

Private Sub CbBMarques1_Change()
' Vider la combobox des modèles avant de la remplir
Me.ComboBox1.Clear
Me.ComboBox3.Clear
' Vider la Listbox des options et prix
Me.ListBox1.Clear
' Pour chaque marque de la zone
For Each Cel In Range("Marques")
If Cel = Me.CbBMarques1 Then
Me.ComboBox1.AddItem Cel.Offset(2, 0).Value
Me.ComboBox3.AddItem Cel.Offset(1, 0).Value
End If
Next Cel
End Sub

Le problème c'est que pour ma première ListBox j'ai les marques, dans la deuxième les modèles et la troisième les motorisations.

Ce que j'aimerai c'est avoir les motorisations en fonction des modèles comme j'ai les modèles en fonction des marques.

Cependant je n'arrive pas car j'ai pour la Mii ou La Up, le modèle se décrit autant de fois qu'il est présent dans la base de données or j'aimerai ne l'avoir qu'une fois ( c'est à dire supprimer les doublons).

Merci pour votre aide
 

Pièces jointes

  • fichier test.xlsm
    37.8 KB · Affichages: 40
  • fichier test.xlsm
    37.8 KB · Affichages: 47
  • fichier test.xlsm
    37.8 KB · Affichages: 40
C

Compte Supprimé 979

Guest
Re : Petit réglage VBA pour lsite déroulante

Salut Mamat62,

Ci-joint ton fichier avec le code modifié ;)
J'en ai profité pour optimiser le code en ne mettant qu'une procédure de remplissage par Combobox

A+
 

Pièces jointes

  • Mamatt62_fichier test V2.xlsm
    35.4 KB · Affichages: 47

mamatt62

XLDnaute Junior
Re : Petit réglage VBA pour lsite déroulante

Par contre Bruno, il y a un truc d'étrange, si je remplis les champs et qu'au final je décide de modifié la marque, j'ai un débogage, que je n'avais pas avant avec les .Clear, j'ai vérifié ils sont toujours là mais là je ne comprends pourquoi ça bugge aurais tu une idée ?
 
C

Compte Supprimé 979

Guest
Re : Petit réglage VBA pour lsite déroulante

Re,

Effectivement, je n'ai pas tout testé ;)

Il faut ajouter cette ligne
Code:
' Si la combobox motorisation est vide on sort  If Me("CbBMotorisations" & Ind) = "" Then Exit Sub
Avant celle-ci
Code:
' Rechercher la colonne contenant la motorisation
  Col = Application.Match(Me("CbBMotorisations" & Ind), Sheets("Feuil1").Rows(3), 0)

Car lors de l'effacement des combobox, tu as l'évènement Change qui se mets en route
et comme tu n'as plus de valeur dans la combo, la recherche d'une valeur vide pose problème ;) :)

A+
 

Discussions similaires

Réponses
2
Affichages
154

Statistiques des forums

Discussions
312 305
Messages
2 087 087
Membres
103 461
dernier inscrit
dams94