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 :

Somme avec une variable [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 68
    Par défaut Somme avec une variable
    Bonjour,

    Ma feuille obtient via une base de données des résultats cependant ceux-ci diffère en nombre à chaque fois.
    Je dois effectué un total de ces résultats mais je n'arrive pas à effectuer une somme avec une variable qui correspond au nombre de résultat de la requête.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Range("A65536").End(xlUp).Offset(0, 1).Select
        ActiveCell.FormulaR1C1 = "=SUM(R[-40]C:R[-1]C)"
        Selection.Font.Bold = True
        With Selection
            .HorizontalAlignment = xlRight
            .VerticalAlignment = xlBottom
            .WrapText = False
            .Orientation = 0
            .AddIndent = False
            .IndentLevel = 0
            .ShrinkToFit = False
            .ReadingOrder = xlContext
            .MergeCells = False
        End With
    Il faudrait qu'à la place du -40 je puisse y mettre une variable "result" qui contient mon nombre de résultat.
    Je 'ai essayé avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SUM(R[-& result]C:R[-1]C)
    mais sans succès...

    Cordialement,
    eXqO

  2. #2
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Bonjour,
    Tu y étais presque il faut juste marquer la fin de la chaine de caractère avant le &

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "=SUM(R[ -" & result & "]C:R[-1]C)"

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 68
    Par défaut
    Il m'annonce une erreur...

    "Erreur d'exécution '1004':
    Erreur définie par l'application ou par l'objet"


    EDIT: Résolu ! Ca venait de l'espace avant le "-"

  4. #4
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    montre le code une fois la modif de faite
    et au passage vérifie le contenue de ta variable result
    juste avant la ligne qui plante
    Vérifie aussi que la cellule sur laquel tu es -result ligne ca ne te fait pas remonté au dessus de la première ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox selection.row-result
    (tjs juste avant la ligne qui pose problème)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 68
    Par défaut
    Oui mon problème venait aussi du fait que ma variable passait au dessus de la ligne 1

    J'ai une autre question, comme faire pour mettre une variable dans un intervalle de cellule ?

    Au lieu du 44 j'aimerai mettre ma variable "result"+1.

    J'ai pensé à faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A4:B& result &+1").Select
    (mais c'est plus du bidouillage qu'autre chose )

  6. #6
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Les " permette de délimiter le début et la fin d'une chaine de caractère.
    result+1 n'est pas une chaine de caractère, le & non plus
    essaye ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    dim a as integer, b as integer
    a=5
    b=6
    msgbox "La première variable vaut : a"
    msgbox "La première variable vaut : & a"
    msgbox "La première variable vaut : " & "a"
    msgbox "La première variable vaut : " & a
    msgbox "Le produit des variable vaut : & a*b "
    msgbox "Le produit des variable vaut : " & "a*b "
    msgbox "Le produit des variable vaut : " & a*b
    Après ca tu devrais avoir la solution

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 68
    Par défaut
    Apparemment mon cas se rapprocherai plus de la dernière proposition.

    Cependant j'vois toujours pas comment l'intégrer à mon intervalle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A4":"B" "& cpt + 1).Select



    EDIT : Erreur dem a part, il y a un " en trop !

    Nouveau code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A4:B" & cpt + 1).Select

  8. #8
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Voila tu as trouvé
    Tu veux si cpt =45 tu veux ecrit
    ta chaine de caractère est donc "A4:B46"
    donc c'est bien

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 68
    Par défaut
    Je viens d'essayer de mettre une variable de part et d'autre de l'intervalle afin de rester sur la même ligne, cependant il m'annonce qu'il manque un séparateur alors que j'ai suivi la même démarche que précédemment, voilà le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("B" & semaine+5":L" & semaine+5).Select
    'L'erreur se situe au niveau du ":L"...

  10. #10
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    il te manque un & tu doit en mettre entre chaque chaine de caractère que tu veu acoller (si tu met une variable c'est ca valeur qui est transformer en chaine de caractère)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("B" & semaine+5 & ":L" & semaine+5).Select

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

Discussions similaires

  1. Calcul d'une d'une double somme avec deux variables en entrée
    Par beauvaim dans le forum Mathématiques
    Réponses: 4
    Dernier message: 20/11/2011, 04h31
  2. Réponses: 5
    Dernier message: 25/06/2005, 11h35
  3. Réponses: 2
    Dernier message: 14/05/2004, 14h32
  4. Comparaison d'un registre 8 bits avec une variable 32 bits
    Par tupperware dans le forum x86 32-bits / 64-bits
    Réponses: 3
    Dernier message: 15/10/2002, 10h25
  5. Désigner une variable avec une variable?
    Par littleman dans le forum Paradox
    Réponses: 4
    Dernier message: 12/08/2002, 11h21

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