Passage d'un SUMIF dans une cellule via VBA

Randolol Messages postés 1 Date d'inscription jeudi 7 juin 2012 Statut Membre Dernière intervention 7 juin 2012 - 7 juin 2012 à 12:35
CTAC Messages postés 133 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 8 juin 2012 - 8 juin 2012 à 16:53
Bonjour à tous,

J'étais inscrit ici fut il un temps, pour mes multiples interrogations VBA !

Je me retrouve à faire un peu de code rapide pour le boulot, et je suis bloqué par certainement une bêtise de VBA.

Pour expliquer le contexte, j'essaie de rentrer en dur une formule excel grâce à du code vba dans une cellule. j'ai réussi avec une formule sum toute simple, par contre dès que je passe à la sumif, on me renvoie systématiquement une erreur.

"=SUMIF(F5:F10,"=OUI",H5:H10)"

je l'ai passé directement dans la cellule avec une cells(x,y).formula, puis avec une variable intermédiaire, sans succès.
Au départ j'utilisais un TRUE , puis je me suis dit que VBA n'aimait peut être pas l'utilisation du mot, d'où ce 'OUI'.

Mais même avec ça, impossible !

Je m'en remets à vous, pour avoir des suggestions sur comment procéder.

Merci beaucoup

PS : Excel 2007, version UK, cela peut influer j'imagine.

3 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
7 juin 2012 à 13:00
Bonjour,
1) une booléenne (vrai ou true selobn ta version) n'est pas un yes/no !
2) que fait le 2ème signe "=" dans ta formule ? il n'y a pas sa place
3) si en formule et que tu utilises SUMIF , c'est que tu es en version anglaise ou que tu l'écris depuis VBA, en utilisant Formula. Or, dans ce que tu montres, on voit un sacré mélange de notation française et de notation anglaise !
Conclusion : tu devras être plus précis et clair (tu es sous VBA ou tu es en formule directe ? - ta version est française pou anglaise ? - quelles valeurs contient la plage considérée ? des booléennes ou autre chose et quoi ?)

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
ireallycare Messages postés 1 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 7 juin 2012
7 juin 2012 à 15:10
Bonjour à vous deux,

ucfoutu, si je comprends bien son problème est que lorsqu'on passe la formule par valeur avec un .formula, le TRUE testé depuis la cellule Excel peut être mal compris par VBA comme un booléen, alors que c'est un simple test sur une chaine de caractère dans Excel : d'où le changement en oui/non.

le deuxième = n'est il pas pour tester que la cellule soit égale à oui ?

Je pense également que ce doit être en anglais, Excel 2007 version UK comme précisé, selon toute logique c'est de l'anglais...
En ce qui concerne le VBA, pourquoi poster sous le forum VBA si c'est un problème Excel? là encore, ça me semble plutôt clair.

Conclusion : ce n'est peut être pas clair, mais ça l'est encore moins quand on lit le post en diagonale (et encore) ! :-)

Tu devrais essayer de regarder du côté des FormulaLocal.
0
CTAC Messages postés 133 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 8 juin 2012 5
8 juin 2012 à 16:53
Bonjour,

Pour écrire en B2:

[B2].Formula = "=SUMIF(F5:F10,""=OUI"",H5:H10)"


Cordialement

ctac
0
Rejoignez-nous