XL 2010 Sommeprod en VBA

CISCO

XLDnaute Barbatruc
Bonjour à tous


Je voudrais dans une macro mettre dans une variable x la valeur correspondant à un SOMMEPROD, la plage utilisée étant un tableau (constitué d'une seule ligne, et de 32 colonnes) et pas un Range. J'ai fait avec
Code:
x = Evaluate(" Sum(((Weekday(Tabjour) = 1) + (Weekday(Tabjour) = 7)) * 2 + ((Weekday(Tabjour) <> 1) * (Weekday(Tabjour) <> 7)) * 10)")
mais cela ne fonctionne pas (j'obtiens x=erreur 2029).

Cela doit additionner des 2 pour les samedis et les dimanches contenus dans le tableau Tabjour, et des 10 pour les autres jours de ce tableau.

Si je fais le calcul dans une cellule avec une formule, cela me donne
Code:
SOMMEPROD(((JOURSEM(D5:AH5)=1)+(JOURSEM(D5:AH5)=7))*2+((JOURSEM(D5:AH5)<>1)*(JOURSEM(D5:AH5)<>7))*10)
mais mon but n'est pas d'avoir le résultat dans une cellule mais dans la variable x.

Merci d'avance

@ plus

Je ne met pas le fichier car cela ne me semble pas indispensable, mais, s'il le faut vraiment... il est là, post #29
https://www.excel-downloads.com/threads/planning-de-garde.20011007/page-2
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Bonjour à tous, bonjour Job75

Re,

Tu pousses un peu CISCO...

Et j'ai fait 2 Edits intéressants à mon post #5.

A+

Tu réponds plus rapidement que ton ombre, Job75 : J'étais en train de tester chacune des possibilités proposées, celles de Pierrejean, de Lolote83 et les tiennes et je répondais à chacun, les uns après les autres, et pas pour les 3 en même temps. En plus, j'ai ma souris qui fait la capricieuse en ce moment. Grrrr... Elle sélectionne tout le code alors que je ne veux sélectionner qu'une ligne de ce code, fait du double-clic alors que je voulais faire un simple clic, ferme les fichiers... Ça doit être Parkinson qui toque à la porte...

@ plus
 

CISCO

XLDnaute Barbatruc
Re

Re CISCO,

Tâche de comprendre mes codes...

Et oui, j'avais lu et testé ta proposition trop rapidement, sans comprendre l'utilité du
Code:
ThisWorkbook.Names.Add "Tabjour", Tabjour 'nom défini dans le classeur
(Comme dans mon cas, Tabjour était déjà défini au début du code, je n'avais pas vu l'utilité de le redéfinir)


Dans mes solutions bien sûr que Tabjour est une variable VBA.

Mais dans l'évaluation de la formule on ne peut pas utiliser cette variable,
Dommage. Cela serait plus simple, mais c'est logique : Les formules utilisent des noms existant dans le gestionnaire, pas uniquement dans le code VBA.

Si je lui donne le même nom que la variable c'est parce que c'est plus amusant, ce n'est pas obligatoire...A+
Et c'est nettement plus compréhensible d'utiliser le même nom.

@ plus
 

Discussions similaires

Réponses
12
Affichages
252