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 contenant des references absolues et relatives [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 74
    Par défaut Somme contenant des references absolues et relatives
    Bonjour,

    J aimerais faire la somme d une colonne de taille variable qui commence toujours en E9 et qui se termine toujours en ActiveCell.Offset(-5,0). J ai tente de mettre des references absolues et relatives dans la fonction somme mais ca ne fonctionne pas, si quelqu un peut donner un petit coup de main, ca serait

    Merci d'avance.

  2. #2
    Membre émérite
    Inscrit en
    Décembre 2006
    Messages
    897
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 897
    Par défaut bonjour FFGUY,
    la formule ne se place pas sur la feuille ?


    Toute la colonne "E" sauf les 5 dernières lignes et avant E9 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim Rg As Range
    Dim s As Double '<-à voir
    Set Rg = ActiveCell.Offset(-5, 0)
     
    s = 0
    For Each c In Range("E9:" & Rg.Address)
       s = s + c.Value
    Next
    MsgBox "somme = " & s
    Set Rg = Nothing
    ESVBA

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 74
    Par défaut
    Merci pour ta reponse.

    Le probleme c est que je ne peux pas ajouter toute la colonne car j ai d autres valeurs dans la colonne.

  4. #4
    Membre émérite
    Inscrit en
    Décembre 2006
    Messages
    897
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 897
    Par défaut
    une question avant de corriger mais bétises : la cellule active est telle dans la colonne "E" ?

    ESVBA

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 74
    Par défaut
    Non, la cellule active se situe colonne D et la derniere reference de la colonne E a ajouter est en fait ActiveCell(-5,1).


    Pour Gorfael, l information ActiveCell me semblait judicieuse pour indiquer ou se situer la derniere cellule a prendre en compte.

  6. #6
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Application.WorksheetFunction.Sum(Range("E9:E" & ActiveCell.Row - 5))

  7. #7
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 74
    Par défaut
    Bonjour,

    J ai essaye ce code mais j'obtiens une "compile error: Expected: end of statement"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ActiveCell.Offset(0, 1).FormulaR1C1 = "=R[-15]C[2]-R[-5]C[2]"
        ActiveCell.Offset(-1, 1).FormulaR1C1 = "=R[-1]C+R[-2]C"
        ActiveCell.Offset(-2, 1).FormulaR1C1 = Range("F8")
        ActiveCell.Offset(-3, 1).FormulaR1C1 = "=Sum(Range("E9:E" & ActiveCell.Row - 5))"


    Si qqun peut m expliquer pourquoi ca ne fonctionne pas?

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut FFGUY et le forum
    J aimerais faire la somme d une colonne de taille variable qui commence toujours en E9 et qui se termine toujours en ActiveCell.Offset(-5,0).
    Pas sûr de comprendre : ActiveCel est une référence qui se contrefout des données. C'est juste celle qui est active à un moment donnée. tu parles de fonction somme (c'est une référence de feuille de calcul) et d'ActiveCel (c'est une référence VBA). Si tu expliquais, sans chercher un pseudo code, peut-être qu'on serait plus efficace pour t'aider.
    Par formule, ça donnerait (une possibilité) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Somme(INDIRECT("E9:E" & ligne()-5))
    faire la somme de la colonne E de la ligne 9 à 5 lignes au-dessus de celle de la cellule contenant la formule.
    A+

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

Discussions similaires

  1. Corrélation par SAD (somme des différences absolues)
    Par nomadstorm dans le forum MATLAB
    Réponses: 9
    Dernier message: 30/03/2012, 13h08
  2. Somme sur des réels avec msquery
    Par renardchan dans le forum Langage SQL
    Réponses: 2
    Dernier message: 27/03/2012, 17h36
  3. [RegEx] Desactivation des references arrieres ? (chaine contenant $1)
    Par imikado dans le forum Langage
    Réponses: 5
    Dernier message: 13/10/2009, 18h23
  4. export d'un formulaire contenant des sommes
    Par novice06 dans le forum IHM
    Réponses: 3
    Dernier message: 19/03/2009, 09h34
  5. [Excel] Activer Reference absolu et relative
    Par comme de bien entendu dans le forum Excel
    Réponses: 4
    Dernier message: 17/12/2007, 12h38

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