Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

fonction si

judoka0209

XLDnaute Occasionnel
bonjour je souhaiterai faire
=SI(ET(H2="jeu";H5="A");6;"") en vba mais du 1 janvier au 31 decembre
sauf quand vba il m'ecris ca
ActiveCell.FormulaR1C1 = "=IF(AND(R[-16]C=""jeu"",R[-13]C=""A""),6,"""")"
Range("C18").Select
Selection.AutoFill Destination:=Range("C18:NC18"), Type:=xlFillDefault
Range("C18:NC18").Select
merci
 

Jacky67

XLDnaute Barbatruc
Bonjour,
Il y aura beaucoup plus de chance d'avoir une solution avec un fichier test
 

Jacky67

XLDnaute Barbatruc
Re..
Le code pour la formule telle que présentée pour la plage C14:NC14 (non pas C18:NC18) en vba serait:
VB:
Sub test()
    [c14:nc14].Formula = "=IF(AND(WEEKDAY(c$3,2)=4,c$4=""A""),6,"""")"
    [c14:nc14].Value = [c14:nc14].Value ' supprime la formule (facultatif)
End Sub

Il faudra aussi savoir comment la déclencher
-Par un bouton ?
-Par une action évènementielle ?
 

judoka0209

XLDnaute Occasionnel
autres chose j'ai modifier un peut ta formule par contre il me met que le dim ou lieu de ven/sam/dim
par contre je veux garder les 3 formule car si je dois les changer ca sera plus simple
merci
 

Pièces jointes

  • test vsd.xlsm
    168 KB · Affichages: 1

Jacky67

XLDnaute Barbatruc
autres chose j'ai modifier un peut ta formule par contre il me met que le dim ou lieu de ven/sam/dim
par contre je veux garder les 3 formule car si je dois les changer ca sera plus simple
merci
Re..
Heu...
On ne peut pas avoir 3 formules différentes sur une même plage, ce sera la dernière qui l'emporte
Si tu souhaites le ven/sam/dim
VB:
Sub test()
    [c14:nc14].Formula = "=IF(AND(WEEKDAY(c$3,2)>4,c$4=""A""),6,"""")"
    [c14:nc14].Value = [c14:nc14].Value ' supprime la formule (facultatif)
End Sub
Tu as sans doute remarqué que je travail sur le "jour de la semaine" de la ligne 3 (sur une date) et non pas sur du texte de la ligne 2
 

Jacky67

XLDnaute Barbatruc
VB:
[c14:nc14].Formula = "=IF(AND(WEEKDAY(R3C,2)>4,IFERROR(COUNTIF(OFFSET(R2C,0,-DAY(R3C)+1,1,DAY(R3C)-1),""ven"",""sam"",""dim""),0)=1,R4C=""N""),6,"""")"
j'ai ecrit ca mais ca me renvoie une erreur
RE
Rappel de la demande
Transformer cette formule en vba
=SI(ET(H2="jeu";H5="A");6;"") en vba mais du 1 janvier au 31 decembre
Ce que fait le code que j'ai donné
Maintenant s'il faut faire autre chose et si cette formule doit être constamment modifiable, il vaudrait mieux avoir une feuille avec les exclusions ou les paramètres qui faut prendre en compte.
A toi de voir
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…