OVH Cloud OVH Cloud

Traduction VBA

17 réponses
Avatar
Michel
Bonsoir
j'essaie de récupérer cette variable dans un msgbox
mais ma traduction VBA est plus que chaotique
Merci
Michel

x =(SOMMEPROD((Travail_date<>"")*(JOURSEM(Travail_date;2)>5))
msgbox x

7 réponses

1 2
Avatar
Daniel.M
Bonjour,

Ta formule initiale cause problème s'il y a des entrées textes dans ta plage
Travail_date.
En effet, elle va quand même appliquer la fonction Weekday à toutes les cellules
de ta plages, y compris les entrées texte.

Essaie plutôt:

Msgbox [=SUM(IF(ISNUMBER(travail_date),--(WEEKDAY(travail_date,2)>5)))]

Remarque la manière avec laquelle le IF() empêche la comparaison lorsque les
cellules ne sont pas des nombres.

Le "--" sert à convertir un booléen (le résultat du test) en nombre. Vrai ==> 1.

Attention, si tu l'utilises dans une cellule, c'est une matricielle.

Salutations,

Daniel M.


"Michel" wrote in message
news:
Bonjour AV
Cela ne fonctionne pas
il me renvoie Erreur 13
Michel


"AV" a écrit dans le message de news:

MsgBox [sumproduct((travail_date<>"")*(weekday(travail_date,2)>5))]

AV








Avatar
Michel
Merci beaucoup cela fonctionne parfaitement
pourtant dans ma plage, je n'ai que des dates, je ne comprends donc pas
pourquoi la soluce d'AV ne fonctionne pas.
Michel

"Daniel.M" a écrit dans le message de
news: %
Bonjour,

Ta formule initiale cause problème s'il y a des entrées textes dans ta
plage
Travail_date.
En effet, elle va quand même appliquer la fonction Weekday à toutes les
cellules
de ta plages, y compris les entrées texte.

Essaie plutôt:

Msgbox [=SUM(IF(ISNUMBER(travail_date),--(WEEKDAY(travail_date,2)>5)))]

Remarque la manière avec laquelle le IF() empêche la comparaison lorsque
les
cellules ne sont pas des nombres.

Le "--" sert à convertir un booléen (le résultat du test) en nombre. Vrai
==> 1.

Attention, si tu l'utilises dans une cellule, c'est une matricielle.

Salutations,

Daniel M.


"Michel" wrote in message
news:
Bonjour AV
Cela ne fonctionne pas
il me renvoie Erreur 13
Michel


"AV" a écrit dans le message de news:

MsgBox [sumproduct((travail_date<>"")*(weekday(travail_date,2)>5))]

AV












Avatar
Daniel.M
Bonjour,

S'il n'y a pas de cellules vides ou quasivides (formule retournant ""), je ne
comprends pas non plus (micro-climat?)

S'il n'y a que des dates et rien que des dates, envoie le fichier sur
http://cjoint.com pour voir (en nous indiquant le lien) car cela m'intrigue.

Salutations,

Daniel M.

"Michel" wrote in message
news:
Merci beaucoup cela fonctionne parfaitement
pourtant dans ma plage, je n'ai que des dates, je ne comprends donc pas
pourquoi la soluce d'AV ne fonctionne pas.
Michel



Avatar
Michel
Bonsoir
je ne veux pas faire mon Rick, mais le fichier est réellement très gros.
J'ai des cellules vides dans ma plage. Travail_date va de C3:C5000, le
fichier est abondé au fur et à mesure. La formule de base fonctionne très
bien :
=(SOMMEPROD((Travail_date<>"")*(JOURSEM(Travail_date;2)>5))
Je pensais qu'il serait aisé de la transformer en VBA
Mais la formule d'AV me renvoie Erreur d'exécution 13 ???
Michel



"Daniel.M" a écrit dans le message de
news: %
Bonjour,

S'il n'y a pas de cellules vides ou quasivides (formule retournant ""), je
ne
comprends pas non plus (micro-climat?)

S'il n'y a que des dates et rien que des dates, envoie le fichier sur
http://cjoint.com pour voir (en nous indiquant le lien) car cela
m'intrigue.

Salutations,

Daniel M.

"Michel" wrote in message
news:
Merci beaucoup cela fonctionne parfaitement
pourtant dans ma plage, je n'ai que des dates, je ne comprends donc pas
pourquoi la soluce d'AV ne fonctionne pas.
Michel







Avatar
AV
Mais la formule d'AV me renvoie Erreur d'exécution 13 ???


Je confirme : Tu es bien victime d'un micro-climat défavorable !
http://cjoint.com/?fhjlfRpO76

AV

Avatar
Michel
Bonjour AV
Ton fichier en PJ fonctionne très bien, et je t'en remercie.
En revanche, après intégration sur le mien, il me renvoie "Erreur 13"
Si tu veux, je peux t'envoyer mon fichier zipper dans ta bal ?
Michel

"AV" a écrit dans le message de news:

Mais la formule d'AV me renvoie Erreur d'exécution 13 ???


Je confirme : Tu es bien victime d'un micro-climat défavorable !
http://cjoint.com/?fhjlfRpO76

AV





Avatar
AV
Ok
Remplace PFFF par un point et envoie (simplement le stric nécessaire)

AV
1 2