Comment lancer F2 et ENT avec VBA Excel 2007

rorolidalgo -  
Patrice33740 Messages postés 8931 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai une macro qui crée la formule suivante:
.Formula = "=SOMME(" & Range(maCel.Offset(-2, 1).End(xlUp), maCel.Offset(-2, 4)).Address & ")"
En gros, elle crée la somme du bloc situé au-dessus.
Le problème est que ces cellules sont en fait des cellules fusionnées de 4 cellules. Doù le 4 dans le 2 iè offset.
Le problème est que la formule ne se valider car il croit faire la somme d'un bloc de cellules,
et il me faut faire F2 + entrée pour réellement valider la formule.
Sur un exemple, cela donne:
=SOMME($T$75:$W$77) "donne le résultat #NOM?
Cela donne l'impression qu'il y a 12 cellules à sommer, alors qu'il n'y en a que 3.

Du coup, j'ai cherché et tenté d'utiliser Sendkeys, juste après la définition de la formule ci-dessus, avec ça:
SendKeys "{F2}", True
Application.SendKeys "~", True 'pour ENTREE
CA NE MARCHE PAS!

Quelqu'un saurait-il me trouver la solution?
merci beaucoup

A voir également:

1 réponse

Patrice33740 Messages postés 8931 Date d'inscription   Statut Membre Dernière intervention   1 782
 
si les cellules sont fusionnées, la formule devrait être :
=SOMME($T$75:$T$77)
0
rorolidalgo
 
tu n'as pas tort! (cependant T75:W77 fonctionne aussi)
Mais le problème n'est pas là: il faut vraiment valider (ou activer, on va dire) la formule en faisant F2 (ou double clic) puis entrée. sans quoi, le seul fait d'"écrire" la formule par la macro ne l'active pas du tout, et retourne le résultat #NOM!.
J'ai également essayé ensuite maCel.Activate => rien.
Egalement: Calculate => nada. ça ne marche pas.
Donc je pense qu'il me faut un sendkeys F2 puis Entrée. Mais je n'ai pas réussi!
Merci de ton aide!
0
Patrice33740 Messages postés 8931 Date d'inscription   Statut Membre Dernière intervention   1 782
 
L'erreur #NOM! me parait normale, pour être plus précis, il y a 2 formulations possibles :
.FormulaLocal = "=SOMME($T$75:$T$77) "
ou
.Formula = "=SUM($T$75:$T$77)"
0
rorolidalgo
 
Tu as raison, et je te remercie. Mais encore une fois, le problème vient des cellules fusionnées. C'est pour ça que la formule retourne #NOM! à la simple écriture de cette formule par le code, et qu'elle ne devient active (et donc sans erreur) que quand elle retournée par ENTER (et donc F2 ou dble clic avant).
Saurais-tu me guider par rapport au Sendkeys qui ne fonctionne pas?
Merci d'avance.
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
bonjour,

Les cellules fusionnées sont à éviter au maximum

si elles sont horizontales, dé-fusionne et utilise l'option "centrer sur plusieurs colonnes du menu "alignement" pour garder une présentation agréable

par ailleurs: pourquoi veux tu écrire une formule puisque tu utilises une macro? sinon en dynamique et sans VBA tu pourrais utiliser les fonctions imbriquées SOMME(DECALER(....

et en VBA =application.sum(...... te renvoie le résultat
0
rorolidalgo
 
MERCI PATRICE! ET DESOLE POUR LA PERTE DE TEMPS
Le problème est résolu, c'était effectivement un FormulaLocal qui était attendu, et c'est le Formula (tout court) qui reoturnait l'erreur #NOM!
Bizarre, car il me semble avoir tjs utilisé Formula...
En tous cas, ça marche et c'est ça qui compte! Merci à tous
0