IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Aide VBA (sujet annale 2)


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2
    Points : 2
    Points
    2
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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


    LE FICHIER du sujet se présente sous la forme suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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"

  2. #2
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    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
    C'est poutant simple, il te faut compter le nombre de joueurs afin de dimensionner le tableau pour récupérer toutes les valeurs. Il t'est demandé une procédure Sub car l'argument est passé par référence et il est donc modifié dans la Sub :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    Type Joueur
     
        Nom As String
        Prénom As String
        Date As Date
        Parcours As String
        trou(18) As Byte
     
    End Type
     
    Sub Chargement_Base()
     
        Dim Joueurs() As Joueur
        Dim Nb_Joueurs As Integer
        Dim X As Integer
        Dim Y As Integer
     
        Range("A3").Select
     
        'appelle la proc pour le comptage des joueurs
        Compte_Joueurs Nb_Joueurs
     
        '-1 pour base 0
        ReDim Joueurs(Nb_Joueurs - 1)
     
        'charge les différentes valeurs dans le tableau
        For X = 0 To Nb_Joueurs - 1
     
            Joueurs(X).Nom = ActiveCell.Offset(X, 0).Value 'colonne A
            Joueurs(X).Prénom = ActiveCell.Offset(X, 1).Value 'colonne B
            Joueurs(X).Parcours = ActiveCell.Offset(X, 2).Value 'colonne C
            Joueurs(X).Date = ActiveCell.Offset(X, 3).Value 'colonne D
     
            'les trous Aller, à partir de la colonne E jusqu'à la colonne M
            For Y = 0 To 8
     
                Joueurs(X).trou(Y) = ActiveCell.Offset(X, 4 + Y).Value
     
            Next Y
     
            'les Trous Retour, à partir de la colonne N jusqu'à la colonne V
            'le tableau étant déjà dimentionné, cette boucle est inutile, la
            'ligne de code "Joueurs(X).trou(Y + 9) = ActiveCell.Offset(X, 14 + Y).Value"
            'pourrait se trouver sous celle ci-dessus
            For Y = 0 To 8
     
                Joueurs(X).trou(Y + 9) = ActiveCell.Offset(X, 14 + Y).Value
     
            Next Y
     
        Next X
     
    End Sub
     
    Sub Compte_Joueurs(NbJoueur As Integer)
     
        With Worksheets("Base")
     
            '-2 pour éviter les entêtes et il est sensé ne pas y avoir de ligne vide
            NbJoueur = .Cells(.Rows.Count, 1).End(xlUp).Row - 2 'sur colonne A
     
        End With
     
    End Sub
    Hervé.

Discussions similaires

  1. Aide au sujet de requete pour XL VBA
    Par Nono Sto dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 09/10/2013, 08h03
  2. Problème affichage Aide VBA
    Par airbeone dans le forum Access
    Réponses: 6
    Dernier message: 19/06/2006, 16h32
  3. [Wanted] Recherche fichier VBAXL8.HLP (Aide VBA Excel 97)
    Par USV dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/04/2006, 22h04
  4. Demande d'aide au sujet de VB .Net
    Par robert.michel9 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 27/10/2005, 13h15
  5. [JSP] Aide au sujet d'un projet
    Par besco dans le forum Servlets/JSP
    Réponses: 13
    Dernier message: 09/09/2004, 15h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo