Alimentation d'un combobox en fonction d'une valeur dans une autre combobox

Bonjour,

Je voudrais alimenter une combobox en fonction d'une valeur contenue dans une autre combobox.

Je m'explique :

Dans un tableau de colonne A et B dans lequel A contient des valeurs de N° de semaine avec des dates de début et de fin et B contient la valeur des mois correspondants.

Je Voudrais que Mon combobox "Semaine" n'affiche que les semaines correspondantes à la valeur "mois" de mon autre combobox.

Merci par avance pour votre aide précieuse

Bonjour et bienvenu sur le forum

Un fichier est TOUJOURS le bienvenu

Ci joint ma solution

11semaine.xlsm (20.09 Ko)

A+ François

Bonjour et merci.
Mais comme tu me le précisais j'aurais dû joindre un fichier

Donc je répare l'erreur parce que même si ta solution me servira certainement, dans le cas précis qui m'occupe elle n'est pas entièrement correspondante.

Merci par avance et encore désolé de t'avoir fait travailler pour rien

8combosemaine.xlsx (10.53 Ko)

Je précise que ce fichier automatise les semaines chaque année et donc qu'il évolue dans les N° correspondants

Donc les plages de chaque mois sont variables

Bonjour

Ci joint ma solution

17combosemaine.xlsm (28.48 Ko)

A+ François

Bonjour Fanfan38,

Merci pour cette solution qui fonctionne à merveille.

Une dernière petite question : Est-il possible de définir une variable dans les déclarations public des mois ?

Je m'explique : Public janvier(5), fevrier(5), .... signifie donc que le nombre de lignes qui seront affichées dans mon COmboBox2 est d'autorité fixé à 5 mais ce nombre de lignes peut-être variable, est-il possible de remplacer ces 5 par un "n" qui serait défini en fonction du nombre réel de lignes concernées ?

Re Bonjour,

J'ai essayé de bidouiller mon propre code et j'ai fini par trouver quelque chose qui semble fonctionner :

Private Sub ComboBoxMois_Change()
Dim n: n = WorksheetFunction.CountIf(Sheets("Feuil1").Range("b2:b64"), Me.ComboBoxMois)
With Worksheets("Feuil1").Range("b2:b64")
Set C = .Find(Me.ComboBoxMois, LookIn:=xlValues)
If Not C Is Nothing Then
C = C.Address
Me.ComboBoxSemaine.Value = Sheets("Feuil1").Range(C).Offset(0, -1)
Me.ComboBoxSemaine.ListRows = n
Else
Exit Sub
End If
End With
End Sub

Qu'en penses-tu ? Y a-t-il un risque éventuel à utiliser ce code ?

janvier(5) donne 6 possibilités. Si tu veux plus que 6 semaines dans un mois tu mets janvier (365).... lol

A+ François

Oups !

Tentative d'interprétation d'un profane !

Donc suite à ta réponse j'imagine que la signification exacte était donc jusqu'à 6 possibilités de renvoi dans mon comboboxsemaine (ce qui effectivement est très largement suffisant)

Je réfléchirai plus à l'avenir !

Merci pour ta réponse

Rechercher des sujets similaires à "alimentation combobox fonction valeur"