Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Relations conditionnelles entre 2 combobox et remplissage à partir d'une feuille excel (vba)

7 réponses
Avatar
Dospace
Bonjour,
Apprentie en vba, je me suis lancée dans un "codage" plus dur que prévu...

Ma feuille excel se nomme "Projets":
Sur cette feuille, un tableau (compliqué donc je résume)
Colonne P (à partir de la 8ème ligne) : Les Sites
Colonne E (à partir de la 8ème ligne) : les Projets
(Il y a plusieurs projets par site donc sur mon tableau par exemple:
(...) Colonne E (...)Colonne P (...)
Projet 1 ===>Epices
Projet2====>Epices
Projet3===>Epices
Projet4===>Condiments
Projet5====>Condiments

Sur VBA:
J'ai un userform (UsFConsult) dans lequel il y a 2 combobox :
ma première : ComboSite a été rempli via
UsFConsult.ComboSite.AddItem ("Epices")
UsFConsult.ComboSite.AddItem ("Condiments")
etc (7 items en tout).
(Ces items sont retrouvés dans la colonne P)

Quand je sélectionne un item dans la comboSite, je voudrai (enfin plutôt
j'ai espéré hihi) que cela sélectionne automatiquement les Projets (colonne
E de ma feuille Excel) et que cela les insère dans ma seconde ComboBox
appelée "ComboProjet".
Par exemple, si je sélectionne "Epices" Dans ma ComboSite, ma comboProjet me
déroulera Projet1, Projet2 et Projet3. Et si je sélectionne "Condiments"
dans ma ComboSite, ma ComboProjet me déroulera : Projet4 et Projet5.

Voilà ce que j'ai donc tenté:

Private Sub ComboSite_Change()
Dim i
Dim VarProjet As String

If UsFConsult.ComboSite.Value = "Epices" Then
i = 8
Do While Sheets("Projets").Cells(i, 16).Value = "Epices"
VarProjet = Sheets("Projets").Cells(i, 5).Value
UsFConsult.ComboProjet.AddItem (VarProjet)
i = i + 1
Loop
End If

End Sub

Mais cela ne fonctionne pas.
J'ai vérifier les majuscules et minuscules (erreur de débutante que je fais
souvent), j'ai vérifié que la partie -If UsFConsult.ComboSite.Value =
"Epices" Then- était bien reconnu en insérant une msgbox après,cela
fonctionne bien.
Mais ma boucle ne fonctionne pas.

Détail troublant, si je remplace "Do While" par "Do Until" cela fonctionne
(mais cela fait évidemment le cojntraire de ce que je voudrais).

J'espère avoir été claire dans mes explications et je vous remercie par
avance de votre aide.
Dospace

7 réponses

Avatar
Youky
Private Sub ComboSite_Change()
UsFConsult.ComboProjet.Clear
With Sheets("Projets")
For i = 8 To .[P65536].End(xlUp).Row
If UsFConsult.ComboSite.Value = .Cells(i, 16) Then
UsFConsult.ComboProjet.AddItem .Cells(i, 5)
End If
End Sub

Je pense que ceci doit faire l'affaire ...non testé
Youky

"Dospace" a écrit dans le message de news:

Bonjour,
Apprentie en vba, je me suis lancée dans un "codage" plus dur que prévu...

Ma feuille excel se nomme "Projets":
Sur cette feuille, un tableau (compliqué donc je résume)
Colonne P (à partir de la 8ème ligne) : Les Sites
Colonne E (à partir de la 8ème ligne) : les Projets
(Il y a plusieurs projets par site donc sur mon tableau par exemple:
(...) Colonne E (...)Colonne P (...)
Projet 1 ===>Epices
Projet2====>Epices
Projet3===>Epices
Projet4===>Condiments
Projet5====>Condiments

Sur VBA:
J'ai un userform (UsFConsult) dans lequel il y a 2 combobox :
ma première : ComboSite a été rempli via
UsFConsult.ComboSite.AddItem ("Epices")
UsFConsult.ComboSite.AddItem ("Condiments")
etc (7 items en tout).
(Ces items sont retrouvés dans la colonne P)

Quand je sélectionne un item dans la comboSite, je voudrai (enfin plutôt
j'ai espéré hihi) que cela sélectionne automatiquement les Projets
(colonne E de ma feuille Excel) et que cela les insère dans ma seconde
ComboBox appelée "ComboProjet".
Par exemple, si je sélectionne "Epices" Dans ma ComboSite, ma comboProjet
me déroulera Projet1, Projet2 et Projet3. Et si je sélectionne
"Condiments" dans ma ComboSite, ma ComboProjet me déroulera : Projet4 et
Projet5.

Voilà ce que j'ai donc tenté:

Private Sub ComboSite_Change()
Dim i
Dim VarProjet As String

If UsFConsult.ComboSite.Value = "Epices" Then
i = 8
Do While Sheets("Projets").Cells(i, 16).Value = "Epices"
VarProjet = Sheets("Projets").Cells(i, 5).Value
UsFConsult.ComboProjet.AddItem (VarProjet)
i = i + 1
Loop
End If

End Sub

Mais cela ne fonctionne pas.
J'ai vérifier les majuscules et minuscules (erreur de débutante que je
fais souvent), j'ai vérifié que la partie -If UsFConsult.ComboSite.Value =
"Epices" Then- était bien reconnu en insérant une msgbox après,cela
fonctionne bien.
Mais ma boucle ne fonctionne pas.

Détail troublant, si je remplace "Do While" par "Do Until" cela fonctionne
(mais cela fait évidemment le cojntraire de ce que je voudrais).

J'espère avoir été claire dans mes explications et je vous remercie par
avance de votre aide.
Dospace



Avatar
Youky
Oups!!!!!!!!!
J'ai oublié le Next

Private Sub ComboSite_Change()
UsFConsult.ComboProjet.Clear
With Sheets("Projets")
For i = 8 To .[P65536].End(xlUp).Row
If UsFConsult.ComboSite.Value = .Cells(i, 16) Then
UsFConsult.ComboProjet.AddItem .Cells(i, 5)
End If
Next
End Sub


"Youky" a écrit dans le message de news:

Private Sub ComboSite_Change()
UsFConsult.ComboProjet.Clear
With Sheets("Projets")
For i = 8 To .[P65536].End(xlUp).Row
If UsFConsult.ComboSite.Value = .Cells(i, 16) Then
UsFConsult.ComboProjet.AddItem .Cells(i, 5)
End If
End Sub

Je pense que ceci doit faire l'affaire ...non testé
Youky

"Dospace" a écrit dans le message de news:

Bonjour,
Apprentie en vba, je me suis lancée dans un "codage" plus dur que
prévu...

Ma feuille excel se nomme "Projets":
Sur cette feuille, un tableau (compliqué donc je résume)
Colonne P (à partir de la 8ème ligne) : Les Sites
Colonne E (à partir de la 8ème ligne) : les Projets
(Il y a plusieurs projets par site donc sur mon tableau par exemple:
(...) Colonne E (...)Colonne P (...)
Projet 1 ===>Epices
Projet2====>Epices
Projet3===>Epices
Projet4===>Condiments
Projet5====>Condiments

Sur VBA:
J'ai un userform (UsFConsult) dans lequel il y a 2 combobox :
ma première : ComboSite a été rempli via
UsFConsult.ComboSite.AddItem ("Epices")
UsFConsult.ComboSite.AddItem ("Condiments")
etc (7 items en tout).
(Ces items sont retrouvés dans la colonne P)

Quand je sélectionne un item dans la comboSite, je voudrai (enfin plutôt
j'ai espéré hihi) que cela sélectionne automatiquement les Projets
(colonne E de ma feuille Excel) et que cela les insère dans ma seconde
ComboBox appelée "ComboProjet".
Par exemple, si je sélectionne "Epices" Dans ma ComboSite, ma comboProjet
me déroulera Projet1, Projet2 et Projet3. Et si je sélectionne
"Condiments" dans ma ComboSite, ma ComboProjet me déroulera : Projet4 et
Projet5.

Voilà ce que j'ai donc tenté:

Private Sub ComboSite_Change()
Dim i
Dim VarProjet As String

If UsFConsult.ComboSite.Value = "Epices" Then
i = 8
Do While Sheets("Projets").Cells(i, 16).Value = "Epices"
VarProjet = Sheets("Projets").Cells(i, 5).Value
UsFConsult.ComboProjet.AddItem (VarProjet)
i = i + 1
Loop
End If

End Sub

Mais cela ne fonctionne pas.
J'ai vérifier les majuscules et minuscules (erreur de débutante que je
fais souvent), j'ai vérifié que la partie -If UsFConsult.ComboSite.Value
= "Epices" Then- était bien reconnu en insérant une msgbox après,cela
fonctionne bien.
Mais ma boucle ne fonctionne pas.

Détail troublant, si je remplace "Do While" par "Do Until" cela
fonctionne (mais cela fait évidemment le cojntraire de ce que je
voudrais).

J'espère avoir été claire dans mes explications et je vous remercie par
avance de votre aide.
Dospace







Avatar
Youky
Re oups décidément j'aurai dut tester
il manque aussi le end with
C'est la der... Youky

Private Sub ComboBox1_Change()
UsFConsult.ComboProjet.Clear
With Sheets("Projets")
For i = 8 To .[P65536].End(xlUp).Row
If UsFConsult.ComboSite.Value = .Cells(i, 16) Then
UsFConsult.ComboProjet.AddItem .Cells(i, 5)
End If
Next
End With
End Sub

"Youky" a écrit dans le message de news:

Oups!!!!!!!!!
J'ai oublié le Next

Private Sub ComboSite_Change()
UsFConsult.ComboProjet.Clear
With Sheets("Projets")
For i = 8 To .[P65536].End(xlUp).Row
If UsFConsult.ComboSite.Value = .Cells(i, 16) Then
UsFConsult.ComboProjet.AddItem .Cells(i, 5)
End If
Next
End Sub


"Youky" a écrit dans le message de news:

Private Sub ComboSite_Change()
UsFConsult.ComboProjet.Clear
With Sheets("Projets")
For i = 8 To .[P65536].End(xlUp).Row
If UsFConsult.ComboSite.Value = .Cells(i, 16) Then
UsFConsult.ComboProjet.AddItem .Cells(i, 5)
End If
End Sub

Je pense que ceci doit faire l'affaire ...non testé
Youky

"Dospace" a écrit dans le message de news:

Bonjour,
Apprentie en vba, je me suis lancée dans un "codage" plus dur que
prévu...

Ma feuille excel se nomme "Projets":
Sur cette feuille, un tableau (compliqué donc je résume)
Colonne P (à partir de la 8ème ligne) : Les Sites
Colonne E (à partir de la 8ème ligne) : les Projets
(Il y a plusieurs projets par site donc sur mon tableau par exemple:
(...) Colonne E (...)Colonne P (...)
Projet 1 ===>Epices
Projet2====>Epices
Projet3===>Epices
Projet4===>Condiments
Projet5====>Condiments

Sur VBA:
J'ai un userform (UsFConsult) dans lequel il y a 2 combobox :
ma première : ComboSite a été rempli via
UsFConsult.ComboSite.AddItem ("Epices")
UsFConsult.ComboSite.AddItem ("Condiments")
etc (7 items en tout).
(Ces items sont retrouvés dans la colonne P)

Quand je sélectionne un item dans la comboSite, je voudrai (enfin plutôt
j'ai espéré hihi) que cela sélectionne automatiquement les Projets
(colonne E de ma feuille Excel) et que cela les insère dans ma seconde
ComboBox appelée "ComboProjet".
Par exemple, si je sélectionne "Epices" Dans ma ComboSite, ma
comboProjet me déroulera Projet1, Projet2 et Projet3. Et si je
sélectionne "Condiments" dans ma ComboSite, ma ComboProjet me déroulera
: Projet4 et Projet5.

Voilà ce que j'ai donc tenté:

Private Sub ComboSite_Change()
Dim i
Dim VarProjet As String

If UsFConsult.ComboSite.Value = "Epices" Then
i = 8
Do While Sheets("Projets").Cells(i, 16).Value = "Epices"
VarProjet = Sheets("Projets").Cells(i, 5).Value
UsFConsult.ComboProjet.AddItem (VarProjet)
i = i + 1
Loop
End If

End Sub

Mais cela ne fonctionne pas.
J'ai vérifier les majuscules et minuscules (erreur de débutante que je
fais souvent), j'ai vérifié que la partie -If UsFConsult.ComboSite.Value
= "Epices" Then- était bien reconnu en insérant une msgbox après,cela
fonctionne bien.
Mais ma boucle ne fonctionne pas.

Détail troublant, si je remplace "Do While" par "Do Until" cela
fonctionne (mais cela fait évidemment le cojntraire de ce que je
voudrais).

J'espère avoir été claire dans mes explications et je vous remercie par
avance de votre aide.
Dospace











Avatar
Dospace
Cela fonctionne à merveille!
Tu es un génie!!!!
Mille fois merci :)


"Youky" a écrit dans le message de news:

Re oups décidément j'aurai dut tester
il manque aussi le end with
C'est la der... Youky

Private Sub ComboBox1_Change()
UsFConsult.ComboProjet.Clear
With Sheets("Projets")
For i = 8 To .[P65536].End(xlUp).Row
If UsFConsult.ComboSite.Value = .Cells(i, 16) Then
UsFConsult.ComboProjet.AddItem .Cells(i, 5)
End If
Next
End With
End Sub

"Youky" a écrit dans le message de news:

Oups!!!!!!!!!
J'ai oublié le Next

Private Sub ComboSite_Change()
UsFConsult.ComboProjet.Clear
With Sheets("Projets")
For i = 8 To .[P65536].End(xlUp).Row
If UsFConsult.ComboSite.Value = .Cells(i, 16) Then
UsFConsult.ComboProjet.AddItem .Cells(i, 5)
End If
Next
End Sub


"Youky" a écrit dans le message de news:

Private Sub ComboSite_Change()
UsFConsult.ComboProjet.Clear
With Sheets("Projets")
For i = 8 To .[P65536].End(xlUp).Row
If UsFConsult.ComboSite.Value = .Cells(i, 16) Then
UsFConsult.ComboProjet.AddItem .Cells(i, 5)
End If
End Sub

Je pense que ceci doit faire l'affaire ...non testé
Youky

"Dospace" a écrit dans le message de news:

Bonjour,
Apprentie en vba, je me suis lancée dans un "codage" plus dur que
prévu...

Ma feuille excel se nomme "Projets":
Sur cette feuille, un tableau (compliqué donc je résume)
Colonne P (à partir de la 8ème ligne) : Les Sites
Colonne E (à partir de la 8ème ligne) : les Projets
(Il y a plusieurs projets par site donc sur mon tableau par exemple:
(...) Colonne E (...)Colonne P (...)
Projet 1 ===>Epices
Projet2====>Epices
Projet3===>Epices
Projet4===>Condiments
Projet5====>Condiments

Sur VBA:
J'ai un userform (UsFConsult) dans lequel il y a 2 combobox :
ma première : ComboSite a été rempli via
UsFConsult.ComboSite.AddItem ("Epices")
UsFConsult.ComboSite.AddItem ("Condiments")
etc (7 items en tout).
(Ces items sont retrouvés dans la colonne P)

Quand je sélectionne un item dans la comboSite, je voudrai (enfin
plutôt j'ai espéré hihi) que cela sélectionne automatiquement les
Projets (colonne E de ma feuille Excel) et que cela les insère dans ma
seconde ComboBox appelée "ComboProjet".
Par exemple, si je sélectionne "Epices" Dans ma ComboSite, ma
comboProjet me déroulera Projet1, Projet2 et Projet3. Et si je
sélectionne "Condiments" dans ma ComboSite, ma ComboProjet me déroulera
: Projet4 et Projet5.

Voilà ce que j'ai donc tenté:

Private Sub ComboSite_Change()
Dim i
Dim VarProjet As String

If UsFConsult.ComboSite.Value = "Epices" Then
i = 8
Do While Sheets("Projets").Cells(i, 16).Value = "Epices"
VarProjet = Sheets("Projets").Cells(i, 5).Value
UsFConsult.ComboProjet.AddItem (VarProjet)
i = i + 1
Loop
End If

End Sub

Mais cela ne fonctionne pas.
J'ai vérifier les majuscules et minuscules (erreur de débutante que je
fais souvent), j'ai vérifié que la partie -If
UsFConsult.ComboSite.Value = "Epices" Then- était bien reconnu en
insérant une msgbox après,cela fonctionne bien.
Mais ma boucle ne fonctionne pas.

Détail troublant, si je remplace "Do While" par "Do Until" cela
fonctionne (mais cela fait évidemment le cojntraire de ce que je
voudrais).

J'espère avoir été claire dans mes explications et je vous remercie par
avance de votre aide.
Dospace















Avatar
Dospace
Bonjour!
Alors j'ai voulu être un génie aussi mais ça a pas fonctionné !!

Vu que tu m'as fait quelque chose de super, et qui me paraissait facile,
j'ai voulu encore corsé la chose:

Explication:
Ma feuille excel se nomme (toujours...) "Projets":
Sur cette feuille, un tableau (compliqué donc je résume)
Colonne P (à partir de la 8ème ligne) : Les Sites
Colonne E (à partir de la 8ème ligne) : les Projets
Colonne C (à partir de la 8ème ligne) : les Années
Cela donne:
Colonne C(...) Colonne E (...)Colonne P (...)
1999 Projet 1 ===>Epices
2000 Projet2====>Epices
2001 Projet3===>Epices
1999 Projet4===>Condiments
2000 Projet5====>Condiments

Sur VBA:
J'ai un userform (UsFConsult) dans lequel il y a 3 combobox :
ma première : ComboSite a été rempli via
UsFConsult.ComboSite.AddItem ("Epices")
UsFConsult.ComboSite.AddItem ("Condiments")
etc (7 items en tout).
(Ces items sont retrouvés dans la colonne P)

Ma seconde : ComboAnnee (remplie à l'aide de la colonne C)
Ma troisième: ComboProjet (remplie à l'ai de la colonne E)

Je voudrais que quand on sélectionne dans la ComboSite, cela permette de
sélectionner dans la ComboAnnee les années correspondantes (colonne C)
(===>jusque là pas de soucis j'ai simplement modifié le code que tu m'as
donné) mais je voudrais que le fait de sélectionner une Annee dans la
ComboAnnee fasse ressortir les Projets correspondants dans la ComboProjet.
Par exemple, je sélectionne Epices dans la ComboSite, j'aurais donc 3 choix
dans ma ComboAnnee (1999,2000,2001). Puis je sélectionne 2000 dans la
comboAnnee et j'obtiens Projet2 dans ma ComboProjet.
(Pour tout dire ensuite je validerai et un autre userform s'ouvrira avec
toutes les caractéristiques du Projet sélectionné).

Voici mon code:
Private Sub ComboSite_Change()
UsFConsult.ComboAnnee.Clear
With Sheets("Projets")
For i = 8 To .[P65536].End(xlUp).Row
If UsFConsult.ComboSite.Value = .Cells(i, 16) Then
UsFConsult.ComboAnnee.AddItem .Cells(i, 3)
End If
Next
End With
End Sub

Private Sub ComboAnnee_Change()
UsFConsult.ComboProjet.Clear
With Sheets("Projets")
For i = 8 To .[C65536].End(xlUp).Row
If UsFConsult.ComboAnnee.Value = .Cells(i, 3) Then
UsFConsult.ComboProjet.AddItem .Cells(i, 5)
End If
Next
End With
End Sub

La première Private Sub fonctionne parfaitement (je n'ai aucun mérite). Mais
la seconde non. La ComboProjet reste vide...
J'ai tenté de mettre dans la même Private Sub, j'ai tenté de remplacer i par
j dans la seconde Private Sub.

Et aussi (tant qu'à être embêtante...), j'a plusieurs fois la même année
pour chaque Site, donc quand je sélectionne un site 1999 m'apparait
plusieurs fois, est ce possible qu'une même année n'apparaisse qu'une fois
tout en permettant à tous les projets de cette année de se mettre dans la
ComboProjet ?

J'espère avoir été claire et je vous remercie par avance de votre aide.
Dospace


"Dospace" a écrit dans le message de news:
%
Cela fonctionne à merveille!
Tu es un génie!!!!
Mille fois merci :)


"Youky" a écrit dans le message de news:

Re oups décidément j'aurai dut tester
il manque aussi le end with
C'est la der... Youky

Private Sub ComboBox1_Change()
UsFConsult.ComboProjet.Clear
With Sheets("Projets")
For i = 8 To .[P65536].End(xlUp).Row
If UsFConsult.ComboSite.Value = .Cells(i, 16) Then
UsFConsult.ComboProjet.AddItem .Cells(i, 5)
End If
Next
End With
End Sub

"Youky" a écrit dans le message de news:

Oups!!!!!!!!!
J'ai oublié le Next

Private Sub ComboSite_Change()
UsFConsult.ComboProjet.Clear
With Sheets("Projets")
For i = 8 To .[P65536].End(xlUp).Row
If UsFConsult.ComboSite.Value = .Cells(i, 16) Then
UsFConsult.ComboProjet.AddItem .Cells(i, 5)
End If
Next
End Sub


"Youky" a écrit dans le message de news:

Private Sub ComboSite_Change()
UsFConsult.ComboProjet.Clear
With Sheets("Projets")
For i = 8 To .[P65536].End(xlUp).Row
If UsFConsult.ComboSite.Value = .Cells(i, 16) Then
UsFConsult.ComboProjet.AddItem .Cells(i, 5)
End If
End Sub

Je pense que ceci doit faire l'affaire ...non testé
Youky

"Dospace" a écrit dans le message de news:

Bonjour,
Apprentie en vba, je me suis lancée dans un "codage" plus dur que
prévu...

Ma feuille excel se nomme "Projets":
Sur cette feuille, un tableau (compliqué donc je résume)
Colonne P (à partir de la 8ème ligne) : Les Sites
Colonne E (à partir de la 8ème ligne) : les Projets
(Il y a plusieurs projets par site donc sur mon tableau par exemple:
(...) Colonne E (...)Colonne P (...)
Projet 1 ===>Epices
Projet2====>Epices
Projet3===>Epices
Projet4===>Condiments
Projet5====>Condiments

Sur VBA:
J'ai un userform (UsFConsult) dans lequel il y a 2 combobox :
ma première : ComboSite a été rempli via
UsFConsult.ComboSite.AddItem ("Epices")
UsFConsult.ComboSite.AddItem ("Condiments")
etc (7 items en tout).
(Ces items sont retrouvés dans la colonne P)

Quand je sélectionne un item dans la comboSite, je voudrai (enfin
plutôt j'ai espéré hihi) que cela sélectionne automatiquement les
Projets (colonne E de ma feuille Excel) et que cela les insère dans ma
seconde ComboBox appelée "ComboProjet".
Par exemple, si je sélectionne "Epices" Dans ma ComboSite, ma
comboProjet me déroulera Projet1, Projet2 et Projet3. Et si je
sélectionne "Condiments" dans ma ComboSite, ma ComboProjet me
déroulera : Projet4 et Projet5.

Voilà ce que j'ai donc tenté:

Private Sub ComboSite_Change()
Dim i
Dim VarProjet As String

If UsFConsult.ComboSite.Value = "Epices" Then
i = 8
Do While Sheets("Projets").Cells(i, 16).Value = "Epices"
VarProjet = Sheets("Projets").Cells(i, 5).Value
UsFConsult.ComboProjet.AddItem (VarProjet)
i = i + 1
Loop
End If

End Sub

Mais cela ne fonctionne pas.
J'ai vérifier les majuscules et minuscules (erreur de débutante que je
fais souvent), j'ai vérifié que la partie -If
UsFConsult.ComboSite.Value = "Epices" Then- était bien reconnu en
insérant une msgbox après,cela fonctionne bien.
Mais ma boucle ne fonctionne pas.

Détail troublant, si je remplace "Do While" par "Do Until" cela
fonctionne (mais cela fait évidemment le cojntraire de ce que je
voudrais).

J'espère avoir été claire dans mes explications et je vous remercie
par avance de votre aide.
Dospace



















Avatar
Youky
Bonjour, j'aime bien quand on c'est que ca marche...Merci
Voici la suite, j'ai fais un fichier cette fois, je n'ai pas remis tous tes
noms je te laisse les modifier
Parfois il a fallut mettre cells(....).Text car la combo renvoie du text
Je tiens mon fichier à dispo si tu as un souci.
Youky

Private Sub ComboBox1_Change()
' ComboSite_Change() mets les années sans doublons
Dim vu As Boolean
ComboBox2.Clear
With Sheets("Projets")
For i = 8 To .[P65536].End(xlUp).Row
If ComboBox1.Value = .Cells(i, 16) Then
vu = False
For k = 1 To ComboBox2.ListCount
If .Cells(i, 3).Text = ComboBox2.List(k - 1) Then vu = True
Next
If vu = False Then ComboBox2.AddItem .Cells(i, 3)
End If
Next
End With
End Sub


Private Sub ComboBox2_Change()
'pour remplir les projets
ComboBox3.Clear
With Sheets("Projets")
For i = 8 To .[P65536].End(xlUp).Row
If ComboBox2.Text = .Cells(i, 3).Text Then 'ici j'ai rajouté .text
If ComboBox1.Text = .Cells(i, 16) Then
ComboBox3.AddItem .Cells(i, 5)
End If
End If
Next
End With
End Sub
Avatar
Dospace
Bon alors que te dire à part Merci , Merci, mille fois Merci.
Je réitère: tu es mon bon génie!!
J'espère ne plus avoir à t'embêter!
Très cordialement
Dospace

"Youky" a écrit dans le message de news:
eu7rJd%
Bonjour, j'aime bien quand on c'est que ca marche...Merci
Voici la suite, j'ai fais un fichier cette fois, je n'ai pas remis tous
tes noms je te laisse les modifier
Parfois il a fallut mettre cells(....).Text car la combo renvoie du
text
Je tiens mon fichier à dispo si tu as un souci.
Youky

Private Sub ComboBox1_Change()
' ComboSite_Change() mets les années sans doublons
Dim vu As Boolean
ComboBox2.Clear
With Sheets("Projets")
For i = 8 To .[P65536].End(xlUp).Row
If ComboBox1.Value = .Cells(i, 16) Then
vu = False
For k = 1 To ComboBox2.ListCount
If .Cells(i, 3).Text = ComboBox2.List(k - 1) Then vu = True
Next
If vu = False Then ComboBox2.AddItem .Cells(i, 3)
End If
Next
End With
End Sub


Private Sub ComboBox2_Change()
'pour remplir les projets
ComboBox3.Clear
With Sheets("Projets")
For i = 8 To .[P65536].End(xlUp).Row
If ComboBox2.Text = .Cells(i, 3).Text Then 'ici j'ai rajouté .text
If ComboBox1.Text = .Cells(i, 16) Then
ComboBox3.AddItem .Cells(i, 5)
End If
End If
Next
End With
End Sub