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 :

Problème avec fonction VBA [XL-2007]


Sujet :

Macros et VBA Excel

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Problème avec fonction VBA
    Bonjour à tous !

    J'ai débuté VBA hier (je pars absolument de 0 !) et je bloque déjà sur un petit exercice. Pourriez-vous m'aider à comprendre pourquoi ça ne marche pas s'il vous plait ?


    Les données :

    Je dispose d'une plage X de notes, il a 2 lignes et 2 colonnes.

    J'ai une plage N de coefficients, 2 lignes 2 colonnes aussi

    Et je dois créer une fonction sous VBA me calculant la moyenne arithmétique avec ces deux tableaux.

    Il nous a été demandé d'inclure dans la fonction un test pour vérifier que le nombre de lignes et de colonnes sont compatibles.

    Voici mon programme (c'est la dernière des 35 versions que j'ai testées )

    Le message d'erreur qui apparait me dit : "Référence de variable de contrôle incorrecte dans Next"

    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
    Function moyarit(X As Range, N As Range) As Double
     
    Dim c As Integer
    Dim l As Integer
    Dim i As Integer
    Dim j As Integer
    Dim moy As Double
    Dim k As Integer
    Dim coeff As Integer
     
    c = X.Columns.Count
    l = X.Rows.Count
    moy = 0
    coeff = 0
     
    Select Case True
        Case (X.Rows.Count = N.Rows.Count And X.Columns.Count = N.Columns.Count)
            For i = 1 To l
            For j = 1 To c
                moy = (moy + X.Cells(i, j) * N.Cells(i, j))
            Next i
            Next j
        End Select
     
    For i = 1 To l
    For j = 1 To c
     
        coeff = coeff + N.Cells(i, j)
     
    Next i
    Next j
     
     
    moyarit = moy / coeff
     
     
    End Function

    Ca serait très gentil si quelqu'un pouvait m'aider, je galère depuis des heures...

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Points : 2 502
    Points
    2 502
    Par défaut
    Bonjour

    Les boucles NEXT associé aux FOR imbriquées doivent être dépiler dans l'ordre.
    => inverse les lignes 21<=>22 et ligne 30<=>31

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            For i = 1 To l
                 For j = 1 To c
                    moy = (moy + X.Cells(i, j) * N.Cells(i, j))
                 Next j
            Next i
    P.S : stp pense à utiliser l'icône <#> après avoir sélectionner ton code, afin d'insérer ton code.
    Merci à Philippe JOCHMANS pour la correction de mise en forme.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup !

    Dire que j'ai perdu tant d'heures sur une erreur si bête

    Bonne journée !

  4. #4
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Points : 2 502
    Points
    2 502
    Par défaut
    De rien.
    Content que voir que tout soit rentré dans l'ordre pour toi

    Bonne journée également.

    PS. Merci de penser à noter le sujet résolu (bouton <Résolu>)

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

Discussions similaires

  1. [XL-2010] Problème avec fonction VBA pour extraire un numéro de téléphone
    Par Kanigui dans le forum Macros et VBA Excel
    Réponses: 33
    Dernier message: 15/11/2014, 16h38
  2. [XL-2010] Problème recalcul fichier Excel avec fonctions VBA
    Par julio44 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/07/2014, 15h07
  3. [MFC][WINSOCK] Problème avec fonction recv
    Par Le Farfadet dans le forum MFC
    Réponses: 4
    Dernier message: 23/09/2005, 11h00
  4. Problème avec fonction d'envoie de mail
    Par zyg dans le forum Réseau/Web
    Réponses: 1
    Dernier message: 23/02/2005, 08h48
  5. [Requête] Problème avec fonction "DATE_FORMAT()"
    Par sekiryou dans le forum Requêtes
    Réponses: 4
    Dernier message: 11/01/2005, 21h52

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