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 automatique par macro [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é
    Profil pro
    Inscrit en
    Août 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2009
    Messages : 89
    Par défaut Somme automatique par macro
    Bonjour,


    Je cherche à faire une somme automatique par macro : je veux faire la somme de toute la plage de cellules adjacantes se trouvant au dessus de la cellule active, cette plage pouvant être variable. J'ai éssayé plusieurs codes sans résultat, je vois à peu près oû ça pèche mais je ne sais pas comment y remédier: je n'arrive pas à définir et ni a exprimer ma variable de la première cellule en haut de la plage :voici un des codes que j'ai éssayé :
    (avec ou sans les "&", cela ne change rien à l'erreur)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Macro1111111111111111()
    'ActiveCell.FormulaR1C1 = "=SUM(R[-14]C:R[-1]C)"  code donné par l'enregistreur le [-14] étant la variable
    ActiveCell.FormulaR1C1 = "=SUM(R[&ActiveCell.Offset(-1, 0).End(xlUp).Row&]C:R[-1]C)"
    End Sub
    ou encore celui là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Macro22222222222()
    Firstligne As Variant
    Set Firstligne = ActiveCell.Offset(-1, 0).End(xlUp).Row
    ActiveCell.FormulaR1C1 = "=SUM(R[&Firstligne&]C:R[-1]C)"
    End Sub
    je dois m'emméler les pinceaux entre l'objet Range et le nombre de lignes à retirer ex : -14
    J' ai également essayé des codes avec .Formula tout court mais sans résultat.

    Si quelqu'un avait une idée ...

    Merci beaucoup
    Cdlt

    Dom

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    salut,

    attention a ne pas confondre les notations de formules.

    Ici tu comptes utiliser la notation R[1]C[1] qui fonctionne en relatif et pas en R1C1 qui est de l'absolu.

    De tres bons tutoriaux a ce sujet ici : http://fauconnier.developpez.com/exc...es/references/
    et la
    http://bidou.developpez.com/article/VBA/

    Si tu veux avoir -14 il te faut alors soustraire ton numero de ligne de l'ActiveCell a celui de ta premiere ligne... Bref, pas forcement le plus facile selon moi.

    Une solution en partant sur du R1C
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.FormulaR1C1 = "=SUM(R" & ActiveCell.Offset(-1, 0).End(xlUp).Row & "C" & ActiveCell.Column & ":R" & ActiveCell.Row - 1 & "C" & ActiveCell.Column & ")"
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2009
    Messages : 89
    Par défaut
    Bonsoir JP

    Tout d'abord, merci de ta réponse, ton code fonctionne parfaitement.
    Je dois bien le décortiquer pour être sur de comprendre :

    Pour la cellule haute de la plage : en référence de Row, la cellule de haut de plage, référence de colonne, celle de activecell, et pour la cellule du bas de plage, en référence de Row, activecell -1 , et pour la colonne, encore une fois la colonne d'activecell...

    Je vais également bien regarder ces 2 tutos, je connais le principe du déplacement relatif et absolu avec le $ dans les formules excel, mais j'ai du mal à retranscrire tout ça en VBA. Et je bute aussi sur l'utilisation des paranthèses ou des crochets dans le code.

    Merci de ton aide

    Cdlt
    Dom

    Re bonjour,

    Après avoir fait un test approfondi, j'ai encore un souci :

    En fait , je ne cherche pas à obtenir une formule du genre :
    mais plutôt car je dois tirer ma formule ensuite sur plusieurs colonnes

    Cdlt
    Dom

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    OK, donc ici on a bien une formule qui se cree en consequence

    Si tu penses que le probleme est resolu, merci de tagger le fil
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2009
    Messages : 89
    Par défaut
    Le problème n'est pas résolu car avec le code j'obtiens toujours de l'absolu alors que je voudrai du relatif.
    ce que j' aimerai obtenir c'est:Je continu à chercher

    Cdlt
    Dom

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    en faisant un simple Replace cela semble etre bon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveCell.FormulaR1C1 = "=SUM(R" & ActiveCell.Offset(-1, 0).End(xlUp).Row & "C" & ActiveCell.Column & ":R" & ActiveCell.Row - 1 & "C" & ActiveCell.Column & ")"
    ActiveCell.Formula = Replace(ActiveCell.Formula, "$", "")
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2009
    Messages : 89
    Par défaut
    Bravo !

    C'est subtil et ça marche, je vais pouvoir tirer ma formule. C'était le bout de code qui me manquait entre 2 procédures, maintenant je vais pouvoir en faire une seule; Cela vas faire gagner pas mal de temp, c'est pour trier des données de production sur un trimestre...

    Un grand merci pour ta compréhension

    je mets Résolu
    Cdlt
    Dom

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

Discussions similaires

  1. [XL-2003] Filtre automatique par macro pour champ date et heure
    Par jedineofr dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 27/06/2011, 15h37
  2. Insérer Formule somme par macro
    Par joums dans le forum Conception
    Réponses: 21
    Dernier message: 21/10/2009, 12h11
  3. [E-03] Actualiser somme effectuée par macro
    Par Sclarck1 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 13/11/2008, 13h47
  4. Lancement d'un module de façon automatique par macro
    Par zouloute dans le forum VBA Access
    Réponses: 1
    Dernier message: 20/09/2007, 19h23
  5. problème macro et filtre automatique par une variable texte
    Par Drozo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/08/2007, 09h05

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