Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Somme avec variable

  • Initiateur de la discussion Initiateur de la discussion Nanir
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Nanir

XLDnaute Occasionnel
Bonjour à tous,

J'ai besoin d'aide concernant une formule en vba.
Avec l'enregistreur j'obtiens ceci :
ActiveCell.FormulaR1C1 = '=SUM(RC[-35]:RC[-1])'

En gros, c'est la somme de 35 colonnes avant AL17 sur ma feuille de calcul.

Le problème c'est que le nombre de colonne peut varier...et je ne sais comment traduire...

Quelqu'un peut m'aider?
Merci beaucoup.
 
bonjour nannir, eric

pas sur d'avoir compris, mais peut etre comme ceci :

Dim cellule As String

cellule = ActiveCell(1, 0).End(xlToLeft).Address
ActiveCell.FormulaLocal = '=somme(' & cellule & ':' & ActiveCell(1, 0).Address & ')'


salut
 
Bonjour Éric,

En fait je ne connais pas les cellules pour la somme.

Voici un bout de code :
Last = Range('IV7').End(xlToLeft).Column
Set Lastcol = Cells(17, Last)
Cells(17, Last).Activate
ActiveCell.FormulaR1C1 = '=SUM(RC[-35]:RC[-1])'

Grâce à ce code je connais Last (ligne 17 et dernière colonne) mais il me faut la somme entre cette cellule et D17.
Je ne sais pas si je suis clair...
Merci.
 
re

le point important pour nous guider est de savoir si tu souhaites mettre une formule dans une cellule (mon approche)et dans ce cas laquelle ? ou si tu souhaites faire un calcul dans une macro.

ton code calcule la somme jusqu'à la dernière colonne-1: est-ce logique ?

A+
 
Oui, je souhaite mettre une formule dans une cellule et la dernière ligne du code du précédent post est fausse.
Ce code :

Last = Range('IV7').End(xlToLeft).Column
Set Lastcol = Cells(17, Last)
Cells(17, Last).Activate

active la dernière cellule soit AM17 dans mon cas.
J'aimerai avoir la somme de D17:AL17 dans AM17.
C'est ca que je n'arrice pas à faire.

Le code d'Hervé est bien sauf qu'il fait la somme de C17:AL17.

Comment faire?
Une fois encore merci pour votre participation.
 
re

last = Range('IV1').End(xlToLeft).Column
Cells(1, last + 1).FormulaR1C1 = '=SUM(R1C2:R1C' & last & ')'

un essai sur ligne1, la formule s'inscrit un ecolonne après la dernière trouvée

A+
 
re,

Éric, j'ai adapté ton code ca fonctionne parfaitement. Maintenent le petit bout de code ressemble à ca :

Last = Range('IV7').End(xlToLeft).Column
Set Lastcol = Cells(17, Last)
Cells(17, Last).Activate
ActiveCell.FormulaR1C1 = '=SUM(R17C4:R17C' & Last & ')'

Merci Éric et Hervé pour votre participation et votre patience!
Amicalement,
 
re

le code que j'ai donné, recherche la premiere cellule non vide en partant de la cellule active

cellule = ActiveCell(1, 0).End(xlToLeft).Address

si tu as des données de la colonne c à z (sans vide) par exemple ce code trouvera la colonne c

puis place une formule somme partant de la cellule trouvé jusqu'a la cellule à gauche de ta cellule active (sinon, référence circulaire)

mais comme je l'avis dit dans mon premier post, j'ai pas dû tout comprendre.

salut
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
472
W
Réponses
5
Affichages
720
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…