N'affiche pas les bonnes données en fonction d'une sélection dans 1 listbox

Bonjour à tous,

J'ai un formulaire Recherche, dans lequel je peux choisir un nom de professeur...en fonction du choix il me donne le cours ou les cours , degrés...

je peux choisir d'activer le degré ou le jour pour ma recherche... un à la fois cela fonction super....

Par contre quand je sélectionne les deux. si je choisis un degré , il n'affiche pas les bonnes données, il affiche l’ensemble des jours disponibles pour ce cours...

Donc j'aimerais garder : les deux choix d'activation (un ou l'autre) et résoudre le problème quand les deux sont sélectionnés. exemple : je sélectionne un degré qu'il me donne le bon jour(il peut y avoir une multi- sélection au niveau des degrés).

Je vous remercie par avance

Oli

28registre-test19.xlsm (637.42 Ko)

Bonjour,

Je m'y suis essayé et je m'y suis cassé les dents.

ric

Bonjour Ric,

Merci d'avoir essayer.... , difficile à ce point ?

Si quelqu'un sur le forum, peut apporter son aide ?

Merci d'avance

Oli

Bonjour,

Dis-moi, dis-moi ...

S'il peut y avoir de la multisélection dans "Choix du degré", y aura-t-il en même temps de la multisélection dans "Choix de cours ?

Où même encore plus ... de la multisélection en même temps dans "Choix du professeur" ??

ric

Salut Speedy,

Salut Ric,

ben, oui, il y a du multi-select dans chaque ListBox... ce qui peut poser problème!

En effet,

  • si aucun cours n'est choisi dans ListBox2 pour un professeur, doit-on considérer que TOUS ses cours sont sélectionnés ?
  • si aucun degré n'est sélectionné en ListBox3, doit-on considérer que TOUS les degrés sont sélectionnés ?
  • etc...

J'imagine que oui!

A+

Salut TheSpeedy,

Salut Ric,

premier jet...

Concernant le message précédent concernant le Multi-Select des ListBox 1 et 2, dans cette version-ci, j'ai strictement interprété ta demande initiale qui stipulait implicitement que seuls les degrés étaient en mode Multi-Select.

J'y ai ajouté les jours, malgré tout.

Il y a encore des incohérences entre degrés et jours mais, à chaque nuit suffit sa peine : je regarderai demain, après un premier test et d'éventuelles précisions quant à tes attentes, pour soigner tout cela.

    iRowPC1 = .Range("A:A").Find(what:=sNom, lookat:=xlWhole, LookIn:=xlValues, searchdirection:=xlNext).Row
    iRowPC2 = .Range("A:A").Find(what:=sNom, lookat:=xlWhole, LookIn:=xlValues, searchdirection:=xlPrevious).Row
    iRowPC1 = .Range("B" & iRowPC1 & ":" & "B" & iRowPC2).Find(what:=sCours, lookat:=xlWhole, LookIn:=xlValues, searchdirection:=xlNext).Row
    iRowPC2 = .Range("B2:B" & iRowPC2).Find(what:=sCours, lookat:=xlWhole, LookIn:=xlValues, searchdirection:=xlPrevious).Row
    '
    For x = 0 To Me.ListBox3.ListCount - 1
        If Me.chkLevel.Value = True And (Me.ListBox3.Selected(x) = True Or Me.chkAll_L.Value = True) Then
            sLevel = Me.ListBox3.List(x, 0)
            iRowL1 = .Range("C" & iRowPC1 & ":C" & iRowPC2).Find(what:=sLevel, lookat:=xlWhole, LookIn:=xlValues, searchdirection:=xlNext).Row
            iRowL2 = .Range("C" & iRowPC1 & ":C" & iRowPC2).Find(what:=sLevel, lookat:=xlWhole, LookIn:=xlValues, searchdirection:=xlPrevious).Row
            For y = 0 To Me.ListBox4.ListCount - 1
                If Me.chkDays.Value = True And (Me.ListBox4.Selected(y) = True Or Me.chkAll_D.Value = True) Then
                    sDay = Me.ListBox4.List(y, 0)
                    iRowD1 = .Range("D" & iRowL1 & ":D" & iRowL2).Find(what:=sDay, lookat:=xlWhole, LookIn:=xlValues, searchdirection:=xlNext).Row
                    iRowD2 = .Range("D" & iRowL1 & ":D" & iRowL2).Find(what:=sDay, lookat:=xlWhole, LookIn:=xlValues, searchdirection:=xlPrevious).Row
                    iRowT = sWk.Range("C" & Rows.Count).End(xlUp).Row + 1
                    For Z = iRowD1 To iRowD2
                        For k = 1 To 12
                            sWk.Cells(iRowT, k + 2) = .Cells(Z, Choose(k, 5, 3, 6, 7, 8, 9, 10, 11, 12, 13, 4, 2))
                        Next
                    Next
                End If
            Next
        End If
    Next

A+

12speedy-registre.xlsm (640.52 Ko)

Bonjour le Forum

Bonjour @Ric

Bonjour @ Curulis57,

Merci à tout les deux, de m'aider à résoudre ce problème....

Pour le choix des professeurs, pas besoin d'une multi-select, par contre au niveau des cours oui, exemple : un prof peut donner 2 cours ou plus à des jours différents....

Une idée en passant, en sélectionnant le ou les degrés, la lisbox jour indiquerait le jour suivit de cours (ex: mercredi(Clarinette), mercredi(Saxophone)... bien sur les listbox degré et jours sont multi-select .

Je me tiens à votre dispo, pour de plus ample information...

Oli

Salut Speedy,

je reprends ton excellente idée de coupler Jour/Cours dans ListBox4...

Réflexion et coding en cours...

A+

Bonjour,

Je vous conseille d'utiliser ce pgm générique.

Boisgontier

Nouvelle version

Boisgontier

Bonjour Jacques Boisgontier,

Je vous remercie pour vos bons conseils...je teste votre fichier....

Encore Merci

Bonne Journée....

Oli

Nouvelle version.

Boisgontier

Bonjour Jacques,

Merci pour cette nouvelle version...

J'ai une petite question, pourquoi dans le choix des jours, il y a des doublons et ils ne sont pas classés par ordre alphabétique comme dans les autres choix ?

Merci

Bonne Journée

Oli

Bonjour,

  • Il y a des doublons parce que la casse n'est pas la même
  • L'ordre est bien alphabétique

Boisgontier

re,

Merci pour la mise à jour...

Pour l'ordre alphabétique, je n'étais pas encore bien réveillé.....

Salut TheSpeedy,

Salut Ric,

Maître Boisgontier,

comme promis, un premier jet.

J'ai caché ici les ChekBox "Degrés" et "Jours", ne sachant pas trop, finalement, ce que tu en attendais. Une petite explication serait la bienvenue.

Pour le reste, le bouton rouge est le bouton commandant une nouvelle recherche.

A tester, comme on dit!

A+

Bonjour curulis57,

Merci à toi pour cette proposition

Après 1er test, cela fonctionne, juste que dans la recherche, après chaque nouveau degré, j'aimerais avoir une ligne vide.....comme dans mon fichier original....

Merci

Très bonne journée...

Oli

re,

Curulis57,

En fait dans ma recherche...je choisis le nom du professeur, le(s) cours apparaisse(nt)....en sélectionnant le cours, les degrés apparaissent....

La recherche final, je dois avoir le choix, soit la recherche par degré ou alors par jour

La finalité :

dans un registre c'est d'avoir les élèves de degrés divers et du même jour (noms, degré par ordre alphabétique et une ligne entre chaque nouveau degré...

Dans une feuille d'évaluation c'est d'avoir les élèves par degré(ou groupe de degré), Ordre alphabétique et toujours avec une ligne vide entre chaque nouveau degré.

J'espère que c'est plus clair pour toi maintenant.

Oli

Boisoir Jacques Boisgontier

@Boisgontier,

J'ai une petite demande....

Dans votre userform, j'aurais besoin d'une extraction spécifique....

La voilà : Formation Musicale Q1

Formation Musicale QA1

et tous les autres cours avec le degré Q5 et QA4: au niveau de l'extraction c'est les mêmes colonnes...

Chose que je sais pas faire actuellement avec votre Userform....si possible l'ajouter....avec extraction en feuille résultat 2 par exemple...

ce qui donnerait :

Je vous en remercie vivement

Oli

donnees

Bonjour,

J'ai ajouté un bouton Additionne ListBox dans résultat et un bouton inverse cours

Boisgontier

Rechercher des sujets similaires à "affiche pas bonnes donnees fonction selection listbox"