Pb de presénts

Parseq Messages postés 5 Date d'inscription dimanche 13 novembre 2011 Statut Membre Dernière intervention 30 août 2012 - 30 août 2012 à 09:14
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 30 août 2012 à 12:08
Bonjour à tous,

Dans le cadre d'une école maternelle (mon amie est instit ), j'ai fait des lignes de code pour une activité du
matin des enfants, le comptage des absents et des présents.
Mon problème est le suivant en rajoutant la présence d'un élève tout se passe bien, mais en enlevant la présence d'un
élève (dans le cas ou l’élève sélectionne une 'case' déjà remplie et valide sans rien, le décompte ne se fait pas.????

MERCI


Voici les lignes :


Public present As Integer

Private Sub Form_Load()

present = 0

TITRE.Caption = UCase(Format(Date, "dddd - dd mmmm yyyy"))

End Sub

Private Sub Command_Click(Index As Integer)

Text(Index).Text = ""
Text(Index).SetFocus

End Sub


Private Sub Text_click(Index As Integer)

Text(Index).Text = ""

End Sub


Private Sub Text_KeyPress(Index As Integer, KeyAscii As Integer)

If KeyAscii = 13 Then
Text(Index).BackColor = RGB(0, 255, 0)
Command(Index).BackColor = RGB(0, 255, 0)
present = present + 1
TextFOCUS.SetFocus
Else
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End If

If KeyAscii 13 And Text(Index) "" Then
Text(Index).Text = "......"
Text(Index).BackColor = RGB(255, 0, 0)
Command(Index).BackColor = RGB(255, 0, 0)
present = present - 1
End If

End Sub


Private Sub PRESENTS_Click()

PRESENTS.Caption = "PRESENTS " & present
TextFOCUS.SetFocus

End Sub

Private Sub ABSENTS_Click()

ABSENTS.Caption = "ABSENTS " & 20 - present
TextFOCUS.SetFocus
End Sub


4 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
30 août 2012 à 11:11
Bonjour,
Tout cela me parait bien "tortueux" pour compter les présents et les absents.
Et je ne comprends pas :
dans le cas ou l'élève sélectionne une 'case' déjà remplie et valide sans rien

Ce sont les élèves, en maternelle, qui se "pointent" eux-mêmes sur le PC ? Euh ...
Pour être sérieux :
- on a une liste d'appel (une listbox fait l'affaire)
- on "appelle" les élèves un par un depuis cette listbox (article par article, en boucle)
- les présents étant en général beaucpoup plus nombreux que les absents, on se contente de recenser les absents. La liste et le comptage des deux catégories est toujours possible sur cette seule base.
Tu as là la base d'un mécanisme simple à mettre en oeuvre?.
Nul besoin de groupes de contrôles indexés !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
30 août 2012 à 11:59
Pour que tu comprennes ce que j'ai voulu dire par "tortueux" et que tu aies de meilleures idées ===>>
Regarde ce que ferait ce minuscule bout de code, sur un Form avec un bouton de commande et deux listboxes, tout bêtement :

Private Sub Command1_Click()
   List1.Clear
   List2.Clear
   mes_eleves = Array("jacques", "Pierre", "Jean", "Paul", "Bernard")
   For i = 0 To UBound(mes_eleves)
     present = MsgBox(mes_eleves(i) & " est-il présent ?", vbYesNo)
     If present = vbYes Then
       List1.AddItem mes_eleves(i)
     Else
       List2.AddItem mes_eleves(i)
     End If
   Next
   MsgBox "j'ai compté " & List1.ListCount & " élève(s) présent(s( et " & List2.ListCount & " élève(s( absent(s)" & vbCrLf & _
   "si pas conforme : recliquer sur command1)"
End Sub

Ce n'est là qu'un exemple à cent sous boliviens. On pourrait même "faire" sans aucune listbox, en plus !


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
Parseq Messages postés 5 Date d'inscription dimanche 13 novembre 2011 Statut Membre Dernière intervention 30 août 2012
30 août 2012 à 12:04
En effet, j'ai crée des boutons (commandboutton) avec du texte devant juste pour un confort d'utilisation, parce-que certains élèves (les petits) doivent juste trouver (lire) et cliquer leur prénom (déjà affiché dans un gros bouton rouge) et d'autres élèves (les grands) doivent écrire leur prénom (dans un gros bouton rouge avec du texte devant "......")
donc l' élève clique sur le texte ou sur le bouton (indifféremment) et rentre son prénom, le bouton change de couleur et valide dans le total une présence en plus.
Mais si un élève par erreur ré-clique sur un bouton déjà validé et ne rentre pas son prénom (juste validation par entrée) le bouton rechange bien de couleur en rouge mais le décompte des présents ne se fait pas . ?????????

P.S. J'ai utilisé du texte devant le bouton pour centrer verticalement mon texte.

MERCI
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
30 août 2012 à 12:08
Ah ! Si ce sont les élèves eux-mêmes qui font l'appel, ma foi ...
Tu vas avoir des surprises (et pas uniquement à cause d'un code)
Un appel, c'est sérieux.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
Rejoignez-nous