INSERER FORMULE EXCEL par le VBA

  • Initiateur de la discussion Initiateur de la discussion awa123
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

awa123

XLDnaute Occasionnel
Bonjour,

j'essaie de part ce code

Code:
 .Cells(19, 11).Formula = "=IF(OR(" & .Cells(19, 3).Address(0, 0) & "=" & """" & "," & .Cells(19, 8).Address(0, 0) & "=" & """" _
 & ")," & """" & ",(MOD(" & .Cells(19, 8).Address(0, 0) & "-" & .Cells(19, 3).Address(0, 0) & ",1)-IF(" & .Cells(19, 8).Address(0, 0) & ">" & .Cells(19, 3).Address(0, 0) & _
 ",MAX(0,MIN(" & .Cells(19, 8).Address(0, 0) & ",1)-MAX(" & .Cells(19, 3).Address(0, 0) & ",6/24)),MAX(0,1 - MAX(" & .Cells(19, 3).Address(0, 0) & ",6/24))+MAX(0,MIN(" & .Cells(19, 8).Address(0, 0) & ",1)-6/24))))"

d'insérer la formule excel suivante qui marche à merveille :
Code:
    =SI(OU(C19="";H19="");"";(MOD(H19-C19;1)-SI(H19>C19;MAX(0;MIN(H19;24/24)-MAX(C19;6/24));MAX(0;24/24-MAX(C19;6/24))+MAX(0;MIN(H19;24/24)-6/24))))

cependant un erreur subsiste dans le code VBA car il bloque lors du lancement de la macro.

si quelqu'un aurait une idée d'où ça peut venir...


merci
 
Dernière édition:
Re : INSERER FORMULE EXCEL par le VBA

Bonjour awa123.


Gaffe aux """""""""""""""""""""""""""""" ! Il en faut suffisamment mais pas trop...​
VB:
  .Cells(19, 11).Formula = "=IF(OR(" & .Cells(19, 3).Address(0, 0) & "=""""," & .Cells(19, 8).Address(0, 0) & "="""")" & _
    ","""",MOD(" & .Cells(19, 8).Address(0, 0) & "-" & .Cells(19, 3).Address(0, 0) & ",1)-IF(" & .Cells(19, 8).Address(0, 0) & ">" & _
    .Cells(19, 3).Address(0, 0) & ",MAX(0,MIN(" & .Cells(19, 8).Address(0, 0) & ",1)-MAX(" & .Cells(19, 3).Address(0, 0) & ",1/4)),MAX(0,1-MAX(" & _
    .Cells(19, 3).Address(0, 0) & ",1/4))+MAX(0,MIN(" & .Cells(19, 8).Address(0, 0) & ",1)-1/4)))"
et, plus simplement,​
VB:
  .Cells(19, 11).FormulaLocal = "=SI(OU(C19="""";H19="""");"""";MOD(H19-C19;1)-SI(H19>C19;MAX(0;MIN(H19;1)-MAX(C19;1/4));MAX(0;1-MAX(C19;1/4))+MAX(0;MIN(H19;1)-1/4)))"
ou​
VB:
  .Cells(19, 11).Formula = "=IF(OR(C19="""",H19=""""),"""",MOD(H19-C19,1)-IF(H19>C19,MAX(0,MIN(H19,1)-MAX(C19,1/4)),MAX(0,1-MAX(C19,1/4))+MAX(0,MIN(H19,1)-1/4)))"


Bonne journée.


ℝOGER2327
#7503


Dimanche 8 Phalle 141 (Sainte Léda, ajusteuse - fête Suprême Tierce)
1[SUP]er[/SUP] Fructidor An CCXXII, 0,3418h - prune
2014-W34-1T00:49:13Z
 
Dernière édition:
Re : INSERER FORMULE EXCEL par le VBA

Bonsour®

obtenu via l'enregisteur :
Code:
.Cells(19, 11).FormulaR1C1 ="=IF(OR(RC[-8]="""",RC[-3]=""""),"""",(MOD(RC[-3]-RC[-8],1)-IF(RC[-3]>RC[-8],MAX(0,MIN(RC[-3],24/24)-MAX(RC[-8],6/24)),MAX(0,24/24-MAX(RC[-8],6/24))+MAX(0,MIN(RC[-3],24/24)-6/24))))"
on notera :
- nom de fonction US
- séparateur d'argument = ","
- adresse relative "[ et ]"

🙄au sein d'une chaine VBA pour faire apparaitre les quotes il faut les doubler...

😎ou bien : (US A1)
Code:
.Cells(19, 11).Formula="=IF(OR(C19="""",H19=""""),"""",(MOD(H19-C19,1)-IF(H19>C19,MAX(0,MIN(H19,24/24)-MAX(C19,6/24)),MAX(0,24/24-MAX(C19,6/24))+MAX(0,MIN(H19,24/24)-6/24))))"
on notera :
- nom de fonction US
- séparateur d'argument = ","

😎ou encore : (FR A1)
Code:
.Cells(19, 11).FormulaLocal ="=SI(OU(C19="""";H19="""");"""";(MOD(H19-C19;1)-SI(H19>C19;MAX(0;MIN(H19;24/24)-MAX(C19;6/24));MAX(0;24/24-MAX(C19;6/24))+MAX(0;MIN(H19;24/24)-6/24))))"
on notera :
- nom de fonction FR
- séparateur d'argument = ";"

😎ou (FR L1C1)
Code:
.Cells(19, 11).FormulaR1C1Local ="=SI(OU(LC(-8)="""";LC(-3)="""");"""";(MOD(LC(-3)-LC(-8);1)-SI(LC(-3)>LC(-8);MAX(0;MIN(LC(-3);24/24)-MAX(LC(-8);6/24));MAX(0;24/24-MAX(LC(-8);6/24))+MAX(0;MIN(LC(-3);24/24)-6/24))))"
on notera :
- nom de fonction FR
- séparateur d'argument = ";"
- adresse relative "( et )"
- "R et C" deviennent "L et C"

Oupssss.... bonjour Roger 😉
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
180
Réponses
0
Affichages
467
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
658
Réponses
1
Affichages
529
Réponses
9
Affichages
897
Réponses
17
Affichages
2 K
  • Question Question
Microsoft 365 Programme trop lent
Réponses
12
Affichages
978
Retour