Recalcul de Cellule

Résolu
FGIO51 Messages postés 29 Date d'inscription mardi 29 novembre 2005 Statut Membre Dernière intervention 17 janvier 2014 - 14 janv. 2014 à 17:44
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 - 14 janv. 2014 à 21:00
Bonjour à Tous,

Habituellement, je trouve toujours des solutions à mes problèmes en farfouillant sur le site ou ailleurs, mais là je suis en rade complet.

Voici la partie de ma macro qui pose problème
Range("AB25").Select
ActiveCell.Formula = "=Somme(Somme(Z24:Z25)-Somme(Y24:Y25))"

mais la case n'est pas recalculé à la sortie et affiche #NOM?.
Par contre une fois la macro arrêtée, un F2 + Entrée actualise bien la valeur dans la case.

J'ai essayé la solution d'ajouter un Calculate ou de faire un changement de symbole par
ActiveCell.Replace "=", "µµµ", xlPart
ActiveCell.Replace "µµµ", "="
ou d'utiliser les fonctions
Application.Calculation = xlCalculationManual
Application.Calculation = xlCalculationAutomatic


Rien ni fait, alors si vous avez d'autres pistes je suis preneur.

Merci de votre aide et meilleurs voeux pour cette nouvelle année.
PAB

--

2 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 14/01/2014 à 18:21
Bonjour,
Par ailleurs (en plus, donc, de ce sont a parlé Wismeril, que je salue)
L'utilisation de la propriété Formula appelle la notation anglaise (SUM et non SOMME)

PS : on ne répètera jamais assez, enfin, qu'il est toujours lourdaud et maladroit de travailler à coups de "select", activecell, etc ...
Et donc (conjugaison des deux remarques), ton :
Range("AB25").Select
ActiveCell.Formula = "=Somme(Somme(Z24:Z25)-Somme(Y24:Y25))"
est tout bêtement à écrire ainsi :

Range("AB25").Formula = "=SUM(Z24:Z25)-SUM(Y24:Y25)

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
1
FGIO51 Messages postés 29 Date d'inscription mardi 29 novembre 2005 Statut Membre Dernière intervention 17 janvier 2014
14 janv. 2014 à 18:16
Merci, c'était tout simple.
Effectivement en changeant somme pour sum, le problème est réglé.
Vraiment parfois je cherche trop loin.

Merci aussi à Whismeril pour sa remarque.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
14 janv. 2014 à 18:23
Lis quand-même mon post-scriptum (rédigé après ta réponse)
0
FGIO51 Messages postés 29 Date d'inscription mardi 29 novembre 2005 Statut Membre Dernière intervention 17 janvier 2014
14 janv. 2014 à 18:29
Exact, merci.
0
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 656
14 janv. 2014 à 21:00
Bonsoir, Uc!
0
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 656
Modifié par Whismeril le 14/01/2014 à 17:55
Bonsoir, je suis loin de maitriser VBA, mais il me semble qu'il faut soit un range soit deux arguments à Somme, or dans
=Somme(Somme(Z24:Z25)-Somme(Y24:Y25))


Somme(Z24:Z25)-Somme(Y24:Y25)
étant le résultat d'une soustraction, c'est un nombre et donc un seul argument.


Si tu veux additionner les 2 zones ceci devrait marcher (je n'ai pas essayé)
=Somme(Z24:Z25 ; Y24:Y25)

ou même
=Somme(Z24 ; Z25 ; Y24 ; Y25)
puisque tes 2 zones font 2 cases chacune
voire même
=Somme(Z24:Y25)


Penser aux balises de coloration syntaxique: bouton <>, préciser le langage :<code csharp>.
Quand la solution est trouvée, mettre la discussion Résolue.
0
Rejoignez-nous