Aide VBA (sujet annale 2)
"Bonjour"
Question 1 :
Dans le module appelé « Résultats », créez un nouveau type de variable, appelé « Joueur »
comportant les caractéristiques suivantes :
« Nom » de type « String »,
« Prénom » de type « String »,
« Date » de type « Date » ,
« Parcours » de type « String »
« Trou » (champ tableau comportant 18 emplacements) de type « Byte ».
=> Je pense qu'il faut écrire:
Code:
1 2 3 4 5 6 7
| Type Joueur
Nom as string
Prénom as string
Date as Date
Parcours as String
trou(18) as byte
end Type |
Question 2 :
Améliorez la lisibilité de la procédure « Chargement_Base ».
=> Je crois qu'il faut ajuster à la marge les différentes instructions
Question 3 :
Écrivez une procédure1 devant s'exécuter à l'ouverture du classeur et assurer les tâches
suivantes :
• appeler la procédure « Chargement_Base » ;
• afficher la boîte de dialogue ci-contre ; "Voulez vous saisir un nouveau parcours (Bouton OUI) ou examiner les résultats (Bouton NON) ?
• si l'opérateur appuie sur « Oui », appeler
la procédure « Entrée » ;
• si l'opérateur appuie sur « Non », appeler
la procédure « Analyse ».
=> J'ai mis:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| Private Sub Workbook_Open()
Call Chargement_Base
Sub Select_Case()
Dim Réponse As Byte
Réponse = MsgBox("Voulez vous saisir un nouveau parcours(bouton OUI) ou examiner les résultats (bouton NON).", vbYesNo)
Select Case Réponse
Case 6
Call Entrée
Case 7
Call Analyse
End select
End Sub |
Question 4 :
Dans le module « Résultat », créez une procédure appelée « Compte_Joueurs » déterminant le
nombre de lignes de la feuille « Base » comportant des résultats de joueurs.
=> Pas du tout compris :aie:
LE FICHIER du sujet se présente sous la forme suivante :calim2::
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| Sub Chargement_Base()
Dim Joueurs() As Joueur
Dim Nb_Joueurs As Integer
Dim x As Integer
Range("A3" ).Select
Call Compte_Joueurs(Nb_Joueurs)
ReDim Joueurs(Nb_Joueurs - 1)
For x = 0 To Nb_Joueurs - 1
Joueurs(x).Nom = ActiveCell.Offset(x, 0).Value
Joueurs(x).Prénom = ActiveCell.Offset(x, 1).Value
Joueurs(x).Parcours = ActiveCell.Offset(x, 2).Value
Joueurs(x).Date = ActiveCell.Offset(x, 3).Value
For y = 0 To 8
Joueurs(x).Trou(y) = ActiveCell.Offset(x, 4 + y).Value
Next
For y = 0 To 8
Joueurs(x).Trou(y + 9) = ActiveCell.Offset(x, 14 + y).Value
Next
Next
End Sub |
Pouvez m'aider pour cette question 4 ????? :?
Schématiquement (puisque je ne peux pas copier le tableau):
Participant
Nom Prénom Parcours Date
Potreau Gilles Forêt Verte 10/10/2011
B ... ... ...
C
D
E
F
Trou1 Trou 2 Trou3 Trou4 Trou5 Trou6 Trou7 Trou8 Trou9 Aller
Trou10 Trou11 Trou12 Trou13 ... Trou 18 Retour Total
=> La range "A3" Correspond donc à Potreau. La case Total correspond à Y1 (Y2: nombre de coups qu'on doit normalement faire, Y3: coups du joueur 1 (ici Potreau). Donc A3:Y3 forme bien une seule et même ligne, correspondant aux divers caractéristiques du joueur1 (potreau).
"Merci"