Après des recherches infructueuses sur le net, je pose mon problème ici.
Je souhaite dans un userform avoir 2 combobox (ou 2 listbox peu importe
les éléments des listes sont fixes mais je préfère l'apparence des
combobox plutôt que celle des listbox)
Dans la première, il y a une liste d'articles (genre A, B, C, D, ...) et
dans la seconde une liste de taille. Or la liste de taille n'est pas la
même suivant qu'il s'agisse de l'article A ou de l'article B ou de
l'article C etc (bien que 2 articles peuvent avoir une même liste de
taille).
Je souhaiterai donc qu'en fonction d el'article choisit dans la première
combobox, la liste qui soit dans la seconde soit celle qui va bien.
exemple :
choix CBB1 : A => choix possible CCB2 : 7 / 8 / 9 / ...
choix CBB1 : B => choix possible CCB2 : 36 / 38 / 40 / ...
choix CBB1 : C => choix possible CCB2 : T0 / T1 / T2 / ...
choix CBB1 : D => choix possible CCB2 : 36 / 38 / 40 / ...
etc..
Peut-être que mon idée n'est pas la bonne et que cela n'est pas
réalisable mais je ne vois pas comment faire sinon.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
lSteph
Bonjour,
Private Sub UserForm_Initialize() ComboBox1.List = Array("A", "B", "C", "D") ComboBox2.Visible = False End Sub
Private Sub ComboBox1_Change() Dim i As Integer ComboBox2.Clear ComboBox2.Visible = True Select Case ComboBox1 Case "A" For i = 1 To 6 ComboBox2.AddItem i + 6 Next Case "B", "D" For i = 36 To 62 Step 2 ComboBox2.AddItem i Next Case "C" For i = 1 To 15 ComboBox2.AddItem "T" & i Next Case Else ComboBox2.Visible = False End Select End Sub
'lSteph
On 25 sep, 16:43, Daniel wrote:
Bonjour,
Après des recherches infructueuses sur le net, je pose mon problème i ci. Je souhaite dans un userform avoir 2 combobox (ou 2 listbox peu importe les éléments des listes sont fixes mais je préfère l'apparence de s combobox plutôt que celle des listbox) Dans la première, il y a une liste d'articles (genre A, B, C, D, ...) e t dans la seconde une liste de taille. Or la liste de taille n'est pas la même suivant qu'il s'agisse de l'article A ou de l'article B ou de l'article C etc (bien que 2 articles peuvent avoir une même liste de taille). Je souhaiterai donc qu'en fonction d el'article choisit dans la premièr e combobox, la liste qui soit dans la seconde soit celle qui va bien.
exemple : choix CBB1 : A => choix possible CCB2 : 7 / 8 / 9 / ... choix CBB1 : B => choix possible CCB2 : 36 / 38 / 40 / ... choix CBB1 : C => choix possible CCB2 : T0 / T1 / T2 / ... choix CBB1 : D => choix possible CCB2 : 36 / 38 / 40 / ... etc..
Peut-être que mon idée n'est pas la bonne et que cela n'est pas réalisable mais je ne vois pas comment faire sinon.
Merci d'avance
Daniel
Bonjour,
Private Sub UserForm_Initialize()
ComboBox1.List = Array("A", "B", "C", "D")
ComboBox2.Visible = False
End Sub
Private Sub ComboBox1_Change()
Dim i As Integer
ComboBox2.Clear
ComboBox2.Visible = True
Select Case ComboBox1
Case "A"
For i = 1 To 6
ComboBox2.AddItem i + 6
Next
Case "B", "D"
For i = 36 To 62 Step 2
ComboBox2.AddItem i
Next
Case "C"
For i = 1 To 15
ComboBox2.AddItem "T" & i
Next
Case Else
ComboBox2.Visible = False
End Select
End Sub
'lSteph
On 25 sep, 16:43, Daniel <danie...@nopubclub-internetpasdepub.fr>
wrote:
Bonjour,
Après des recherches infructueuses sur le net, je pose mon problème i ci.
Je souhaite dans un userform avoir 2 combobox (ou 2 listbox peu importe
les éléments des listes sont fixes mais je préfère l'apparence de s
combobox plutôt que celle des listbox)
Dans la première, il y a une liste d'articles (genre A, B, C, D, ...) e t
dans la seconde une liste de taille. Or la liste de taille n'est pas la
même suivant qu'il s'agisse de l'article A ou de l'article B ou de
l'article C etc (bien que 2 articles peuvent avoir une même liste de
taille).
Je souhaiterai donc qu'en fonction d el'article choisit dans la premièr e
combobox, la liste qui soit dans la seconde soit celle qui va bien.
exemple :
choix CBB1 : A => choix possible CCB2 : 7 / 8 / 9 / ...
choix CBB1 : B => choix possible CCB2 : 36 / 38 / 40 / ...
choix CBB1 : C => choix possible CCB2 : T0 / T1 / T2 / ...
choix CBB1 : D => choix possible CCB2 : 36 / 38 / 40 / ...
etc..
Peut-être que mon idée n'est pas la bonne et que cela n'est pas
réalisable mais je ne vois pas comment faire sinon.
Private Sub UserForm_Initialize() ComboBox1.List = Array("A", "B", "C", "D") ComboBox2.Visible = False End Sub
Private Sub ComboBox1_Change() Dim i As Integer ComboBox2.Clear ComboBox2.Visible = True Select Case ComboBox1 Case "A" For i = 1 To 6 ComboBox2.AddItem i + 6 Next Case "B", "D" For i = 36 To 62 Step 2 ComboBox2.AddItem i Next Case "C" For i = 1 To 15 ComboBox2.AddItem "T" & i Next Case Else ComboBox2.Visible = False End Select End Sub
'lSteph
On 25 sep, 16:43, Daniel wrote:
Bonjour,
Après des recherches infructueuses sur le net, je pose mon problème i ci. Je souhaite dans un userform avoir 2 combobox (ou 2 listbox peu importe les éléments des listes sont fixes mais je préfère l'apparence de s combobox plutôt que celle des listbox) Dans la première, il y a une liste d'articles (genre A, B, C, D, ...) e t dans la seconde une liste de taille. Or la liste de taille n'est pas la même suivant qu'il s'agisse de l'article A ou de l'article B ou de l'article C etc (bien que 2 articles peuvent avoir une même liste de taille). Je souhaiterai donc qu'en fonction d el'article choisit dans la premièr e combobox, la liste qui soit dans la seconde soit celle qui va bien.
exemple : choix CBB1 : A => choix possible CCB2 : 7 / 8 / 9 / ... choix CBB1 : B => choix possible CCB2 : 36 / 38 / 40 / ... choix CBB1 : C => choix possible CCB2 : T0 / T1 / T2 / ... choix CBB1 : D => choix possible CCB2 : 36 / 38 / 40 / ... etc..
Peut-être que mon idée n'est pas la bonne et que cela n'est pas réalisable mais je ne vois pas comment faire sinon.
Merci d'avance
Daniel
Daniel
Bonjour,
Un grand merci à lSteph pour son aide. Cela fonctionne impeccablement (en plus c'est très instructif pour moi de pouvoir suivre les instructions et de comprendre leur effet). Si je reposte à nouveau c'est parce que mon fichier est appelé à être tenu par des tiers et je ne pense pas qu'éditer le code VBA les "brancheront" pour rajouter un article. A la rigueur ils iront dans la feuille "Liste" et l'ajouteront à la suite [il faudra bien un minimum ;-)] Je souhaitais donc utiliser plutôt une méthode, pour remplir la comboBoxArticle à partir du choix de la comboBoxCatégorie, du genre :
Private Sub ComboBoxArticle_Change() Dim i As Integer USF_Saisie.ComboBoxArticle.Clear With Sheets("Liste") For i = 2 To .[A65536].End(xlUp).Row If USF_Saisie.ComboBoxCategorie.Value = .Cells(i, A) Then USF_Saisie.ComboBoxArticle.AddItem .Cells(i, C) End If Next End With
End Sub
Mais la ComboBoxArticle reste désespérement vide... (même pas un message d'erreur)
Dans la feuille Liste j'ai en colonne A les catégories et en colonne C les articles (environ 7 catégorie pour 250 articles). Pour remplir la ComboBoxCategorie à l'initialisation du UserForm, je fais, via une macro, un filtre élaboré de la colonne A vers une autre colonne pour n'avoir pas de doublon. Cette dernière colonne est nommée et ensuite j'utilise tout simplement l'instruction : ComboBoxCategorie.RowSource = ("Liste!categorie")
Tout ça va très bien sauf qu'après le choix de la catégorie dans la ComBoBoXCategorie, la ComBoBoxArticle ne se remplit pas.
Daniel
lSteph a écrit :
Bonjour,
Private Sub UserForm_Initialize() ComboBox1.List = Array("A", "B", "C", "D") ComboBox2.Visible = False End Sub
Private Sub ComboBox1_Change() Dim i As Integer ComboBox2.Clear ComboBox2.Visible = True Select Case ComboBox1 Case "A" For i = 1 To 6 ComboBox2.AddItem i + 6 Next Case "B", "D" For i = 36 To 62 Step 2 ComboBox2.AddItem i Next Case "C" For i = 1 To 15 ComboBox2.AddItem "T" & i Next Case Else ComboBox2.Visible = False End Select End Sub
'lSteph
On 25 sep, 16:43, Daniel wrote:
Bonjour,
Après des recherches infructueuses sur le net, je pose mon problème ici. Je souhaite dans un userform avoir 2 combobox (ou 2 listbox peu importe les éléments des listes sont fixes mais je préfère l'apparence des combobox plutôt que celle des listbox) Dans la première, il y a une liste d'articles (genre A, B, C, D, ...) et dans la seconde une liste de taille. Or la liste de taille n'est pas la même suivant qu'il s'agisse de l'article A ou de l'article B ou de l'article C etc (bien que 2 articles peuvent avoir une même liste de taille). Je souhaiterai donc qu'en fonction d el'article choisit dans la première combobox, la liste qui soit dans la seconde soit celle qui va bien.
exemple : choix CBB1 : A => choix possible CCB2 : 7 / 8 / 9 / ... choix CBB1 : B => choix possible CCB2 : 36 / 38 / 40 / ... choix CBB1 : C => choix possible CCB2 : T0 / T1 / T2 / ... choix CBB1 : D => choix possible CCB2 : 36 / 38 / 40 / ... etc..
Peut-être que mon idée n'est pas la bonne et que cela n'est pas réalisable mais je ne vois pas comment faire sinon.
Merci d'avance
Daniel
Bonjour,
Un grand merci à lSteph pour son aide.
Cela fonctionne impeccablement (en plus c'est très instructif pour moi
de pouvoir suivre les instructions et de comprendre leur effet).
Si je reposte à nouveau c'est parce que mon fichier est appelé à être
tenu par des tiers et je ne pense pas qu'éditer le code VBA les
"brancheront" pour rajouter un article.
A la rigueur ils iront dans la feuille "Liste" et l'ajouteront à la
suite [il faudra bien un minimum ;-)]
Je souhaitais donc utiliser plutôt une méthode, pour remplir la
comboBoxArticle à partir du choix de la comboBoxCatégorie, du genre :
Private Sub ComboBoxArticle_Change()
Dim i As Integer
USF_Saisie.ComboBoxArticle.Clear
With Sheets("Liste")
For i = 2 To .[A65536].End(xlUp).Row
If USF_Saisie.ComboBoxCategorie.Value = .Cells(i, A) Then
USF_Saisie.ComboBoxArticle.AddItem .Cells(i, C)
End If
Next
End With
End Sub
Mais la ComboBoxArticle reste désespérement vide...
(même pas un message d'erreur)
Dans la feuille Liste j'ai en colonne A les catégories et en colonne C
les articles (environ 7 catégorie pour 250 articles).
Pour remplir la ComboBoxCategorie à l'initialisation du UserForm, je
fais, via une macro, un filtre élaboré de la colonne A vers une autre
colonne pour n'avoir pas de doublon. Cette dernière colonne est nommée
et ensuite j'utilise tout simplement l'instruction :
ComboBoxCategorie.RowSource = ("Liste!categorie")
Tout ça va très bien sauf qu'après le choix de la catégorie dans la
ComBoBoXCategorie, la ComBoBoxArticle ne se remplit pas.
Daniel
lSteph a écrit :
Bonjour,
Private Sub UserForm_Initialize()
ComboBox1.List = Array("A", "B", "C", "D")
ComboBox2.Visible = False
End Sub
Private Sub ComboBox1_Change()
Dim i As Integer
ComboBox2.Clear
ComboBox2.Visible = True
Select Case ComboBox1
Case "A"
For i = 1 To 6
ComboBox2.AddItem i + 6
Next
Case "B", "D"
For i = 36 To 62 Step 2
ComboBox2.AddItem i
Next
Case "C"
For i = 1 To 15
ComboBox2.AddItem "T" & i
Next
Case Else
ComboBox2.Visible = False
End Select
End Sub
'lSteph
On 25 sep, 16:43, Daniel <danie...@nopubclub-internetpasdepub.fr>
wrote:
Bonjour,
Après des recherches infructueuses sur le net, je pose mon problème ici.
Je souhaite dans un userform avoir 2 combobox (ou 2 listbox peu importe
les éléments des listes sont fixes mais je préfère l'apparence des
combobox plutôt que celle des listbox)
Dans la première, il y a une liste d'articles (genre A, B, C, D, ...) et
dans la seconde une liste de taille. Or la liste de taille n'est pas la
même suivant qu'il s'agisse de l'article A ou de l'article B ou de
l'article C etc (bien que 2 articles peuvent avoir une même liste de
taille).
Je souhaiterai donc qu'en fonction d el'article choisit dans la première
combobox, la liste qui soit dans la seconde soit celle qui va bien.
exemple :
choix CBB1 : A => choix possible CCB2 : 7 / 8 / 9 / ...
choix CBB1 : B => choix possible CCB2 : 36 / 38 / 40 / ...
choix CBB1 : C => choix possible CCB2 : T0 / T1 / T2 / ...
choix CBB1 : D => choix possible CCB2 : 36 / 38 / 40 / ...
etc..
Peut-être que mon idée n'est pas la bonne et que cela n'est pas
réalisable mais je ne vois pas comment faire sinon.
Un grand merci à lSteph pour son aide. Cela fonctionne impeccablement (en plus c'est très instructif pour moi de pouvoir suivre les instructions et de comprendre leur effet). Si je reposte à nouveau c'est parce que mon fichier est appelé à être tenu par des tiers et je ne pense pas qu'éditer le code VBA les "brancheront" pour rajouter un article. A la rigueur ils iront dans la feuille "Liste" et l'ajouteront à la suite [il faudra bien un minimum ;-)] Je souhaitais donc utiliser plutôt une méthode, pour remplir la comboBoxArticle à partir du choix de la comboBoxCatégorie, du genre :
Private Sub ComboBoxArticle_Change() Dim i As Integer USF_Saisie.ComboBoxArticle.Clear With Sheets("Liste") For i = 2 To .[A65536].End(xlUp).Row If USF_Saisie.ComboBoxCategorie.Value = .Cells(i, A) Then USF_Saisie.ComboBoxArticle.AddItem .Cells(i, C) End If Next End With
End Sub
Mais la ComboBoxArticle reste désespérement vide... (même pas un message d'erreur)
Dans la feuille Liste j'ai en colonne A les catégories et en colonne C les articles (environ 7 catégorie pour 250 articles). Pour remplir la ComboBoxCategorie à l'initialisation du UserForm, je fais, via une macro, un filtre élaboré de la colonne A vers une autre colonne pour n'avoir pas de doublon. Cette dernière colonne est nommée et ensuite j'utilise tout simplement l'instruction : ComboBoxCategorie.RowSource = ("Liste!categorie")
Tout ça va très bien sauf qu'après le choix de la catégorie dans la ComBoBoXCategorie, la ComBoBoxArticle ne se remplit pas.
Daniel
lSteph a écrit :
Bonjour,
Private Sub UserForm_Initialize() ComboBox1.List = Array("A", "B", "C", "D") ComboBox2.Visible = False End Sub
Private Sub ComboBox1_Change() Dim i As Integer ComboBox2.Clear ComboBox2.Visible = True Select Case ComboBox1 Case "A" For i = 1 To 6 ComboBox2.AddItem i + 6 Next Case "B", "D" For i = 36 To 62 Step 2 ComboBox2.AddItem i Next Case "C" For i = 1 To 15 ComboBox2.AddItem "T" & i Next Case Else ComboBox2.Visible = False End Select End Sub
'lSteph
On 25 sep, 16:43, Daniel wrote:
Bonjour,
Après des recherches infructueuses sur le net, je pose mon problème ici. Je souhaite dans un userform avoir 2 combobox (ou 2 listbox peu importe les éléments des listes sont fixes mais je préfère l'apparence des combobox plutôt que celle des listbox) Dans la première, il y a une liste d'articles (genre A, B, C, D, ...) et dans la seconde une liste de taille. Or la liste de taille n'est pas la même suivant qu'il s'agisse de l'article A ou de l'article B ou de l'article C etc (bien que 2 articles peuvent avoir une même liste de taille). Je souhaiterai donc qu'en fonction d el'article choisit dans la première combobox, la liste qui soit dans la seconde soit celle qui va bien.
exemple : choix CBB1 : A => choix possible CCB2 : 7 / 8 / 9 / ... choix CBB1 : B => choix possible CCB2 : 36 / 38 / 40 / ... choix CBB1 : C => choix possible CCB2 : T0 / T1 / T2 / ... choix CBB1 : D => choix possible CCB2 : 36 / 38 / 40 / ... etc..
Peut-être que mon idée n'est pas la bonne et que cela n'est pas réalisable mais je ne vois pas comment faire sinon.
Merci d'avance
Daniel
LSteph
Bonjour Daniel,
dans le code du userform où se trouvent les deux combo...:
Private Sub ComboBoxCategorie_Change() Dim i As Integer ComboBoxArticle.Clear With Sheets("Liste") For i = 2 To .[A65536].End(xlUp).Row If .Cells(i, 1)= ComboBoxCategorie Then ComboBoxArticle.AddItem .Cells(i, 3) End If Next End With
End Sub
'lSteph
Daniel a écrit :
Bonjour,
Un grand merci à lSteph pour son aide. Cela fonctionne impeccablement (en plus c'est très instructif pour moi de pouvoir suivre les instructions et de comprendre leur effet). Si je reposte à nouveau c'est parce que mon fichier est appelé à être tenu par des tiers et je ne pense pas qu'éditer le code VBA les "brancheront" pour rajouter un article. A la rigueur ils iront dans la feuille "Liste" et l'ajouteront à la suite [il faudra bien un minimum ;-)] Je souhaitais donc utiliser plutôt une méthode, pour remplir la comboBoxArticle à partir du choix de la comboBoxCatégorie, du genre :
Private Sub ComboBoxArticle_Change() Dim i As Integer USF_Saisie.ComboBoxArticle.Clear With Sheets("Liste") For i = 2 To .[A65536].End(xlUp).Row If USF_Saisie.ComboBoxCategorie.Value = .Cells(i, A) Then USF_Saisie.ComboBoxArticle.AddItem .Cells(i, C) End If Next End With
End Sub
Mais la ComboBoxArticle reste désespérement vide... (même pas un message d'erreur)
Dans la feuille Liste j'ai en colonne A les catégories et en colonne C les articles (environ 7 catégorie pour 250 articles). Pour remplir la ComboBoxCategorie à l'initialisation du UserForm, je fais, via une macro, un filtre élaboré de la colonne A vers une autre colonne pour n'avoir pas de doublon. Cette dernière colonne est nommée et ensuite j'utilise tout simplement l'instruction : ComboBoxCategorie.RowSource = ("Liste!categorie")
Tout ça va très bien sauf qu'après le choix de la catégorie dans la ComBoBoXCategorie, la ComBoBoxArticle ne se remplit pas.
Daniel
lSteph a écrit :
Bonjour,
Private Sub UserForm_Initialize() ComboBox1.List = Array("A", "B", "C", "D") ComboBox2.Visible = False End Sub
Private Sub ComboBox1_Change() Dim i As Integer ComboBox2.Clear ComboBox2.Visible = True Select Case ComboBox1 Case "A" For i = 1 To 6 ComboBox2.AddItem i + 6 Next Case "B", "D" For i = 36 To 62 Step 2 ComboBox2.AddItem i Next Case "C" For i = 1 To 15 ComboBox2.AddItem "T" & i Next Case Else ComboBox2.Visible = False End Select End Sub
'lSteph
On 25 sep, 16:43, Daniel wrote:
Bonjour,
Après des recherches infructueuses sur le net, je pose mon problème ici. Je souhaite dans un userform avoir 2 combobox (ou 2 listbox peu importe les éléments des listes sont fixes mais je préfère l'apparence des combobox plutôt que celle des listbox) Dans la première, il y a une liste d'articles (genre A, B, C, D, ...) et dans la seconde une liste de taille. Or la liste de taille n'est pas la même suivant qu'il s'agisse de l'article A ou de l'article B ou de l'article C etc (bien que 2 articles peuvent avoir une même liste de taille). Je souhaiterai donc qu'en fonction d el'article choisit dans la première combobox, la liste qui soit dans la seconde soit celle qui va bien.
exemple : choix CBB1 : A => choix possible CCB2 : 7 / 8 / 9 / ... choix CBB1 : B => choix possible CCB2 : 36 / 38 / 40 / ... choix CBB1 : C => choix possible CCB2 : T0 / T1 / T2 / ... choix CBB1 : D => choix possible CCB2 : 36 / 38 / 40 / ... etc..
Peut-être que mon idée n'est pas la bonne et que cela n'est pas réalisable mais je ne vois pas comment faire sinon.
Merci d'avance
Daniel
Bonjour Daniel,
dans le code du userform où se trouvent les deux combo...:
Private Sub ComboBoxCategorie_Change()
Dim i As Integer
ComboBoxArticle.Clear
With Sheets("Liste")
For i = 2 To .[A65536].End(xlUp).Row
If .Cells(i, 1)= ComboBoxCategorie Then
ComboBoxArticle.AddItem .Cells(i, 3)
End If
Next
End With
End Sub
'lSteph
Daniel a écrit :
Bonjour,
Un grand merci à lSteph pour son aide.
Cela fonctionne impeccablement (en plus c'est très instructif pour moi
de pouvoir suivre les instructions et de comprendre leur effet).
Si je reposte à nouveau c'est parce que mon fichier est appelé à être
tenu par des tiers et je ne pense pas qu'éditer le code VBA les
"brancheront" pour rajouter un article.
A la rigueur ils iront dans la feuille "Liste" et l'ajouteront à la
suite [il faudra bien un minimum ;-)]
Je souhaitais donc utiliser plutôt une méthode, pour remplir la
comboBoxArticle à partir du choix de la comboBoxCatégorie, du genre :
Private Sub ComboBoxArticle_Change()
Dim i As Integer
USF_Saisie.ComboBoxArticle.Clear
With Sheets("Liste")
For i = 2 To .[A65536].End(xlUp).Row
If USF_Saisie.ComboBoxCategorie.Value = .Cells(i, A) Then
USF_Saisie.ComboBoxArticle.AddItem .Cells(i, C)
End If
Next
End With
End Sub
Mais la ComboBoxArticle reste désespérement vide...
(même pas un message d'erreur)
Dans la feuille Liste j'ai en colonne A les catégories et en colonne C
les articles (environ 7 catégorie pour 250 articles).
Pour remplir la ComboBoxCategorie à l'initialisation du UserForm, je
fais, via une macro, un filtre élaboré de la colonne A vers une autre
colonne pour n'avoir pas de doublon. Cette dernière colonne est nommée
et ensuite j'utilise tout simplement l'instruction :
ComboBoxCategorie.RowSource = ("Liste!categorie")
Tout ça va très bien sauf qu'après le choix de la catégorie dans la
ComBoBoXCategorie, la ComBoBoxArticle ne se remplit pas.
Daniel
lSteph a écrit :
Bonjour,
Private Sub UserForm_Initialize()
ComboBox1.List = Array("A", "B", "C", "D")
ComboBox2.Visible = False
End Sub
Private Sub ComboBox1_Change()
Dim i As Integer
ComboBox2.Clear
ComboBox2.Visible = True
Select Case ComboBox1
Case "A"
For i = 1 To 6
ComboBox2.AddItem i + 6
Next
Case "B", "D"
For i = 36 To 62 Step 2
ComboBox2.AddItem i
Next
Case "C"
For i = 1 To 15
ComboBox2.AddItem "T" & i
Next
Case Else
ComboBox2.Visible = False
End Select
End Sub
'lSteph
On 25 sep, 16:43, Daniel <danie...@nopubclub-internetpasdepub.fr>
wrote:
Bonjour,
Après des recherches infructueuses sur le net, je pose mon problème ici.
Je souhaite dans un userform avoir 2 combobox (ou 2 listbox peu importe
les éléments des listes sont fixes mais je préfère l'apparence des
combobox plutôt que celle des listbox)
Dans la première, il y a une liste d'articles (genre A, B, C, D, ...) et
dans la seconde une liste de taille. Or la liste de taille n'est pas la
même suivant qu'il s'agisse de l'article A ou de l'article B ou de
l'article C etc (bien que 2 articles peuvent avoir une même liste de
taille).
Je souhaiterai donc qu'en fonction d el'article choisit dans la première
combobox, la liste qui soit dans la seconde soit celle qui va bien.
exemple :
choix CBB1 : A => choix possible CCB2 : 7 / 8 / 9 / ...
choix CBB1 : B => choix possible CCB2 : 36 / 38 / 40 / ...
choix CBB1 : C => choix possible CCB2 : T0 / T1 / T2 / ...
choix CBB1 : D => choix possible CCB2 : 36 / 38 / 40 / ...
etc..
Peut-être que mon idée n'est pas la bonne et que cela n'est pas
réalisable mais je ne vois pas comment faire sinon.
dans le code du userform où se trouvent les deux combo...:
Private Sub ComboBoxCategorie_Change() Dim i As Integer ComboBoxArticle.Clear With Sheets("Liste") For i = 2 To .[A65536].End(xlUp).Row If .Cells(i, 1)= ComboBoxCategorie Then ComboBoxArticle.AddItem .Cells(i, 3) End If Next End With
End Sub
'lSteph
Daniel a écrit :
Bonjour,
Un grand merci à lSteph pour son aide. Cela fonctionne impeccablement (en plus c'est très instructif pour moi de pouvoir suivre les instructions et de comprendre leur effet). Si je reposte à nouveau c'est parce que mon fichier est appelé à être tenu par des tiers et je ne pense pas qu'éditer le code VBA les "brancheront" pour rajouter un article. A la rigueur ils iront dans la feuille "Liste" et l'ajouteront à la suite [il faudra bien un minimum ;-)] Je souhaitais donc utiliser plutôt une méthode, pour remplir la comboBoxArticle à partir du choix de la comboBoxCatégorie, du genre :
Private Sub ComboBoxArticle_Change() Dim i As Integer USF_Saisie.ComboBoxArticle.Clear With Sheets("Liste") For i = 2 To .[A65536].End(xlUp).Row If USF_Saisie.ComboBoxCategorie.Value = .Cells(i, A) Then USF_Saisie.ComboBoxArticle.AddItem .Cells(i, C) End If Next End With
End Sub
Mais la ComboBoxArticle reste désespérement vide... (même pas un message d'erreur)
Dans la feuille Liste j'ai en colonne A les catégories et en colonne C les articles (environ 7 catégorie pour 250 articles). Pour remplir la ComboBoxCategorie à l'initialisation du UserForm, je fais, via une macro, un filtre élaboré de la colonne A vers une autre colonne pour n'avoir pas de doublon. Cette dernière colonne est nommée et ensuite j'utilise tout simplement l'instruction : ComboBoxCategorie.RowSource = ("Liste!categorie")
Tout ça va très bien sauf qu'après le choix de la catégorie dans la ComBoBoXCategorie, la ComBoBoxArticle ne se remplit pas.
Daniel
lSteph a écrit :
Bonjour,
Private Sub UserForm_Initialize() ComboBox1.List = Array("A", "B", "C", "D") ComboBox2.Visible = False End Sub
Private Sub ComboBox1_Change() Dim i As Integer ComboBox2.Clear ComboBox2.Visible = True Select Case ComboBox1 Case "A" For i = 1 To 6 ComboBox2.AddItem i + 6 Next Case "B", "D" For i = 36 To 62 Step 2 ComboBox2.AddItem i Next Case "C" For i = 1 To 15 ComboBox2.AddItem "T" & i Next Case Else ComboBox2.Visible = False End Select End Sub
'lSteph
On 25 sep, 16:43, Daniel wrote:
Bonjour,
Après des recherches infructueuses sur le net, je pose mon problème ici. Je souhaite dans un userform avoir 2 combobox (ou 2 listbox peu importe les éléments des listes sont fixes mais je préfère l'apparence des combobox plutôt que celle des listbox) Dans la première, il y a une liste d'articles (genre A, B, C, D, ...) et dans la seconde une liste de taille. Or la liste de taille n'est pas la même suivant qu'il s'agisse de l'article A ou de l'article B ou de l'article C etc (bien que 2 articles peuvent avoir une même liste de taille). Je souhaiterai donc qu'en fonction d el'article choisit dans la première combobox, la liste qui soit dans la seconde soit celle qui va bien.
exemple : choix CBB1 : A => choix possible CCB2 : 7 / 8 / 9 / ... choix CBB1 : B => choix possible CCB2 : 36 / 38 / 40 / ... choix CBB1 : C => choix possible CCB2 : T0 / T1 / T2 / ... choix CBB1 : D => choix possible CCB2 : 36 / 38 / 40 / ... etc..
Peut-être que mon idée n'est pas la bonne et que cela n'est pas réalisable mais je ne vois pas comment faire sinon.