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 :

Erreur référence variable [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Analyste financier
    Inscrit en
    Septembre 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste financier
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2018
    Messages : 2
    Par défaut Erreur référence variable
    Bonjour à tous,
    J'essaie de développer mes compétences en VBA dans le cadre de mon stage dans une institution financière. Je suis assez débutant et je n'arrive pas à identifier la source de mon problème (qui doit pourtant être plutôt simple). J'ai l'erreur classique 1004 et j'ai l'impression que celle-ci vient de la référence à mes variables. k, m et n font références à des cellules sur ma feuilles qui sont remplies par des fonctions qui donnent des nombres entiers (ce nombre entier est un numéro de ligne). Malheureusement je n'arrive pas à résoudre ce problème. Mon code est certes laborieux mais devrait pouvoir fonctionner sans ce défaut je suppose. Merci d'avance pour votre aide. Ci-dessous le code.

    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
    Sub AlerteFonds()
     
    Dim i, j, k, l, m, n, p, q, v As Integer
     
     
    Worksheets("perf fonds").Select
     
     
    k = 0
    m = 0
    n = 0
    q = 0
    p = Cells(24, 49).Value
     
    For j = 5 To 24
     
                m = Cells(j, 47).Value
                n = Cells(j, 48).Value
                k = Cells(j, 49).Value
                q = Cells(k, 44).Value
     
    For i = m To n
     
                If Cells(i, 44).Value > q + 2 Then 'Si il y en a une qui correspond
                Cells(i, 34).Interior.ColorIndex = 6
                Else
                End If
     
    Next i
     
    Next j
     
     
    v = 0
     
    For l = 1 To p
     
               If Cells(l, 34).Interior.ColorIndex = 6 Then
               v = v + 1
               Else
               End If
    Next l
              If v >= 1 Then
              MsgBox "Alerte " & v & " fonds décalent"
              Else
              End If
     
    End Sub

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Pablo27 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim i, j, k, l, m, n, p, q, v As Integer
    Pour commencer, quand tu déclares des variable comme ça, seule "v" est déclarée en tant qu'Integer.
    Toutes les autres variables sont déclarées en tant que Variant.

  3. #3
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    k étant égal à 0, cette ligne

    fait référence à la cellule située en ligne 0, ce qui provoque ton erreur

    par ailleurs, il faut bien préciser le type de chaque variable ici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim i, j, k, l, m, n, p, q, v As Integer
    seul v est in Integer, les autres sont des Variant, il faut faire un As Integer pour chaque variable

  4. #4
    Candidat au Club
    Homme Profil pro
    Analyste financier
    Inscrit en
    Septembre 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste financier
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2018
    Messages : 2
    Par défaut
    Merci pour la remarque sur les variables, je ne me rappelais pas de ça.
    Concernant la valeur de q je ne comprends pas, certes j'initialise k = 0 mais ensuite je redéfinis k (cf code).

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/06/2006, 17h02
  2. [VBA-E]erreur 91: variable objet ou variable de bloc With...
    Par cdk dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/03/2006, 14h19
  3. erreur de variable
    Par bobic dans le forum ASP
    Réponses: 8
    Dernier message: 15/11/2005, 11h20
  4. erreur déclaration variables
    Par bobic dans le forum ASP
    Réponses: 4
    Dernier message: 13/09/2005, 10h11
  5. Réponses: 1
    Dernier message: 19/08/2005, 12h33

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