[excel] fonction VBA [Résolu]

Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Dernière intervention
30 septembre 2011
- - Dernière réponse : cs_casy
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
- 27 juil. 2007 à 09:47
Bonsoir,

Je souhaite écrire dans une cellule une formule du type:
ActiveCell.Formula = "=SOMME(A2:" & ActiveCell.Offset(1, 0) & ")"

Mais la syntaxe n'est pas correct.
Merci pour votre aide!

Liro
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
3
Merci
ActiveCell.Formula = "=SUM(A2:" & ActiveCell.Offset(1, 0).Address(False, False, xlA1) & ")"

Et pour Offset, c'est à toi de voir, mais perso j'aurais plutot mis -1

---- Sevyc64  (alias Casy) ---- <hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 99 internautes ce mois-ci

Commenter la réponse de cs_casy
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
0
Merci
utilises FormulaLocal, dans ton cas, vu que tu utilises SOMME et non SUM

je te conseille donc d'utiliser la version traduite

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Commenter la réponse de Renfield
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Dernière intervention
30 septembre 2011
0
Merci
Merci mais le problème ne vient pas de là.

Je fais référence à A2 et à la cellule à côté de celle ou je suis (activecell.offset).

La cellule est placée dans la case mais A2 et entouré de ' comme ça 'A2' du coup au lieu d'afficher le résultat il est écrit #NOM.

Liro
Commenter la réponse de cs_Liro
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
0
Merci
donnes nous ton code actuel

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Commenter la réponse de Renfield
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Dernière intervention
30 septembre 2011
0
Merci
Merci Casy.

Je ne comprends pas -1?

Liro
Commenter la réponse de cs_Liro
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Dernière intervention
30 septembre 2011
0
Merci
C'est bon ça marche!
Merci à tous les deux, je voudrais juste comprends

Casy à dit:
"Et pour Offset, c'est à toi de voir, mais perso j'aurais plutot mis -1"

Dernière petite question:
Vous faites comment pour apprendre ces trucs?
J'utilise l'aide, j'enregistre des macros et je lis le code enregistré, je lis les forums... mais pour savoir ou trouver qu'il fallait ajouter
Address(False, False, xlA1)
sur ma formule.... je sais pas comment vous faites! :)

Liro
Commenter la réponse de cs_Liro
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
0
Merci
Pour le -1 je vais t'expliquer.

Si on reprend ton code (donc avec 1) et en supposant que la cellule active soit A9, tu va écrire en A9 la formule suivante "= SUM(A2:A10).
Offset(1,0) de A9 = A10
Ainsi tu englobe dans la plage de cellules à sommer, la cellule contenant la formule et donc le résultat de la somme. Ca ne peut pas marcher.

Dans ce c as précis j'aurais plutot dit que tu voulais faire la somme de A2 à A8 avec le résultat en A9. Donc A8 par rapport à A9 donne Offset(-1,0)

Et pour "apprendre ces truc", ben comme tout le monde, avec l'aide.

Petite astuce. Quant tu as affaire à des objets comme ça (ActiveCell.Offset(1, 0) pointe vers un objet cellule) si tu rajoute un . de suite après, l'ide de VBA devrais t'ouvrir pendant quelques instants un petit popup te donnant la liste des propriétés ou methodes associées à cet objet. Il suffit de reperer celle(s) qui pourrait + ou - à ce que tu cherche et regarder dans l'aide la signification. .Address, je ne l'ai pas inventé, c'est VBA qui me l'a proposer.

---- Sevyc64  (alias Casy) ---- <hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Commenter la réponse de cs_casy

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.