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 :

pbm de quantificateur


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Inscrit en
    Juillet 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 8
    Par défaut pbm de quantificateur
    Bonjour je suis encore débutant en programation VBA ,
    j'essaye de crée un programme calculant des moyennes partir de données déja saisies dans une feuille mais, lorque je j'essaye d'executer mon programme excel me répond "Qualificateur incorect"
    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
    Type personne
     nom As String
     age As Integer
     anc_A As Integer
     anc_M As Integer
     sexe As Boolean ' 0: femme 1 : homme
     statut As Boolean '0: non cadre 1 cadre
     conge As Integer '
    End Type
     
    Sub recuperation(n As Integer, donnee() As personne)
    Dim F As Worksheet
    Dim i As Integer
    Set F = Worksheets("Feuil1")
     
    For i = 1 To n
    donnee(i).nom = F.Cells(i + 1, 1).Value ' i+1 car la ligne 1 est l'intitulé "nom,..."
    donnee(i).age = F.Cells(i + 1, 2).Value
    donnee(i).statut = F.Cells(i + 1, 3).Value
    donnee(i).sexe = F.Cells(i + 1, 4).Value
    donnee(i).anc_A = F.Cells(i + 1, 5).Value
    donnee(i).anc_M = F.Cells(i + 1, 6).Value
    Next i
    End Sub
     
    Function moyenne(donnee() As Integer, nb_pers As Integer)
    Dim i As Integer
    Dim moypartielle As Double
     
    moypartielle = 0
     
    For i = 1 To nb_pers
        moypartielle = moypartielle + donnee(i).age
    Next i
     
    moyenne = moypartielle
     
    End Function
     
    Sub test_moyenne()
     
     
     
    Dim y As Worksheet
    Set y = Worksheets("Feuil2")
     
    Dim i As Integer
    Dim tableau(1 To 2) As personne
    Call recuperation(2, tableau())
     
    y.Cells(1, 7).Value = moyenne(tableau().age, 2)
     
    End Sub
    j'espère que quelqu'un pourra m'aider
    merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : Canada

    Informations forums :
    Inscription : Février 2008
    Messages : 25
    Par défaut
    As-tu essayé d'éxécuter ton code en mode pas-à-pas?

    Ou sinon, a quelle ligne est-ce que ca plante?

  3. #3
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonjour


    Refait un essai ainsi :

    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
    Option Explicit
     
    Type personne
     nom As String
     age As Integer
     anc_A As Integer
     anc_M As Integer
     sexe As Boolean ' 0: femme 1 : homme
     statut As Boolean '0: non cadre 1 cadre
     conge As Integer '
    End Type
     
    Sub recuperation(n As Integer, donnee() As personne)
    Dim F As Worksheet
    Dim i As Integer
    Set F = Worksheets("Feuil1")
     
    For i = 1 To n
    donnee(i).nom = F.Cells(i + 1, 1).Value ' i+1 car la ligne 1 est l'intitulé "nom,..."
    donnee(i).age = F.Cells(i + 1, 2).Value
    donnee(i).statut = F.Cells(i + 1, 3).Value
    donnee(i).sexe = F.Cells(i + 1, 4).Value
    donnee(i).anc_A = F.Cells(i + 1, 5).Value
    donnee(i).anc_M = F.Cells(i + 1, 6).Value
    Next i
    End Sub
     
    Function moyenne(donnee() As personne, nb_pers As Integer)
        Dim i As Integer
        Dim moypartielle As Double
     
        moypartielle = 0
     
        For i = 1 To nb_pers
            moypartielle = moypartielle + donnee(i).age
        Next i
     
        moyenne = moypartielle
    End Function
     
    Sub test_moyenne()
     
     
     
    Dim y As Worksheet
    Set y = Worksheets("Feuil2")
     
    Dim i As Integer
    Dim tableau(1 To 2) As personne
    Call recuperation(2, tableau())
     
    y.Cells(1, 7).Value = moyenne(tableau(), 2)
     
    End Sub


    bon week end
    michel

  4. #4
    Membre habitué
    Inscrit en
    Juillet 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 8
    Par défaut
    Cela va rendre les choses plus longues mais çà marche
    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. petit pbm allocation dynamique de stringGrid
    Par AnneOlga dans le forum C++Builder
    Réponses: 10
    Dernier message: 17/01/2004, 11h59
  2. [nouveau]installation compilateur borland c++ et pbm paramét
    Par marc olivier dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 17/11/2003, 09h57
  3. [ PostgreSQL ] Pbm migration base d'un serveur à un autre
    Par TiSteph dans le forum Administration
    Réponses: 3
    Dernier message: 06/03/2003, 18h04
  4. [Crystal Report 8.5 + VB6] Pbm déploiment
    Par La Gillasse dans le forum SDK
    Réponses: 2
    Dernier message: 14/10/2002, 15h19
  5. Pbm avec les '&'...
    Par AmaX dans le forum Composants VCL
    Réponses: 2
    Dernier message: 19/08/2002, 11h08

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