XL 2016 Sélectionner une feuille parmi plusieurs pour en afficher les données dans un formulaire.

DJISA

XLDnaute Occasionnel
Bonjour! Je reviens avec le même problème mais en joignant cette fois ci un fichier pour plus de concret.
Pour ceux qui n'ont pas lu la discussion, je ferez un rappel
VbaProject(Gestion des notes): Feuil1(3èmeA); Feuil2(3èmeB); Feuil3(4èmeA); Feuil4(4èmeB); Feuil5(5èmeA); Feuil6(5èmeB); Feuil7(6èmeA); Feuil8(6èmeB)
Mon souhait est de pouvoir afficher les prénom, nom...et les notes d'un élève quelconque dans un formulaire en sélectionnant d'abord sa classe via un combox et puis en tapant son code dans un textbox (Une recherche en deux étapes).
Je voudrais aussi pouvoir, à partir du formulaire, modifier, supprimer des données.
Je crois que vous pourrez voir le formulaire associé en passant par l'onglet développeur.
Merci d'avance.
 

Pièces jointes

  • Gestion des notes.xlsm
    971 KB · Affichages: 60

DJISA

XLDnaute Occasionnel
Bonjour Robert, le Forum
MD: Moyenne des devoirs
COMP: Composition (Note obtenue en composition)
MS ou M.S Moyenne semestrielle obtenue dans une matière(Les appréciations sont faites en fonction de la MS); par exemple, si un élève a
18 en math c'est Excellent; 17 c'est Très bien...Dans chaque matière il y a une appréciation par rapport à la MS (Pour les formules se référer au critères dans la discussion précédente).
La MS se calcule ainsi: (MD + COMP)/2
Merci
DJISA
 

DJISA

XLDnaute Occasionnel
Bonjour ChTi160, Robert, Le Forum
Merci de ton soutien quand même, ChTi160! Je reconnais qu'il y a eu beaucoup d'insuffisance de mon côté. Le projet a été mal conçu alors que tout part de là. J'essayerai de faire mieux la prochaine fois.
DJISA
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonsoir le fil, bonsoir le forum,

Mais une question: Comment devais-je organiser mes données pour que l'impression de deux bulletins (élève A et élève B) sur une page soit possible?

Je me suis dit : mais pourquoi il change d'avis alors qu'il avait demandé 2 bulletins par page ? J'ai relu le fil pour m'apercevoir que c'est moi qui avait mal compris. Alors, pour éviter toute confusion, deux questions.
1. À l'impression d'un seul élève la demi-page du bas reste vierge ?
2. À l'impression de toute la classe on imprime l'élève 1 page 1 en haut, l'élève 2 page 1 en bas etc... ?
C'est ça ?

@Jean_Marie : il y a le code qui, lui, devrait être unique. Si je ne dis pas de bêtises (ce qui est rare...)
 

DJISA

XLDnaute Occasionnel
Bonsoir Robert, Le Forum
J'ai essayé de reprendre le même code du Userform1(Multipage) sur un autre PC avec presque la même base mais il y a un problème au niveau de la combobox "Code" qui charge les numéros de ligne plutôt que les codes des élèves. C'est étonnant parce que de la colonne A à la J je n'ai rien modifié.
Merci DJISA
 

DJISA

XLDnaute Occasionnel
Bonsoir Robert, Le Forum
Une énième révision de mon formulaire Bulletin. Cette fois-ci je veux pas te fatiguer. Toutefois voudrais-tu jeter un coup d'oeil sur les changements apportés au niveau du formulaire et de la base? J'ai essayé d'appliquer ton code mais j'ai rencontré une difficulté: les comboboxes intitulées cboco pour la Semestre 1 et cboco2 pour la page semestre 2 chargent les numéros de ligne plutôt que les codes des élèves. J'ai essayé de trouver le problème mais en vain. Tu peux télécharger le fichier via le lien ci-dessous.
https://transfernow.net/15gu34f7hvc5
Un coup de pouce me fera du bien
Merci
DJISA
 

ChTi160

XLDnaute Barbatruc
Bonjour DJISA
Bonjour Robert ,Le Forum
si je peut me permettre
le problème vient du fait que tes Combobox ont deux colonnes(Lignes et Codes) et que la colonne a afficher n'a pas était définie
si tu avais inversé l'ordre des colonnes (Colonne 0 (Code) et la Colonne 1 (Ligne) tu aurais eu le bon Affichage.
Tu peux aussi mettre Ex Semestre 1
VB:
With cboco2 'prend en compte la ComboBpx "cbocd1"
        .ColumnCount = 2 'le Combobx aura Deux Colonnes
        .ColumnWidths = "0;1"  'La deuxième sera Visible (Code)
        .Clear                              'On efface le ComboBox
    For I = 16 To DL 'boucle sur les lignes 16 à DL
        .AddItem I 'ajoute un élément à la ComboBox on récupère le numéro de ligne I dans la colonne 0 (cachée) de la ComboBox
        .Column(1, .ListCount - 1) = O.Cells(I, "B")  'récupère le code dans la colonne 1 de la ComboBox
    Next I 'prochaine ligne de la boucle
Idem pour le Semestre 2
j'ai aussi ajoute une ligne dans la procédure
VB:
Private Sub cboco_Change()
CLA = Me.cbocl.Value 'définit la variable CLA (déclarée publique dans le module [Moduile 1])
If COD = "" Then Exit Sub 'Si vide on Quitte<-----ICI
COD = Me.cboco.Value 'définit la variable COD (déclarée publique dans le module [Moduile 1])
If CLA = "" Then Exit Sub 'sort de la procédure si la variable CLA est vide
LI = Me.cboco.Column(0, Me.cboco.ListIndex) 'définit la ligne LI (récupérée dans la colonne cachée de la ComboBox "cbocd1")
pour évité une erreur.
Idem pour le Semestre 2
VB:
Private Sub cboco2_Change()
CLA = Me.cbocl2.Value 'définit la variable CLA (déclarée publique dans le module [Moduile 1])
If COD = "" Then Exit Sub 'Si vide on Quitte <-----ICI
COD = Me.cboco2.Value 'définit la variable COD (déclarée publique dans le module [Moduile 1])
If CLA = "" Then Exit Sub 'sort de la procédure si la variable CLA est vide
LI = Me.cboco2.Column(0, Me.cboco2.ListIndex)  'définit la ligne LI (récupérée
Encore une fois beau travail(Robert)
jean marie
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour le fil, bonjour le forum,

Djisa, comme je te l'avait annoncé, j'ai repris le travail et je suis beaucoup moins disponible. De plus, ta dernière version est très différente et je n'ai ni l'envie, ni le courage de tout reprendre. Désolé mais je passe la main... Bonne chance !
 

Statistiques des forums

Discussions
312 215
Messages
2 086 330
Membres
103 187
dernier inscrit
ebenhamel