Programme pour remplacer formules Excel

  • Initiateur de la discussion Initiateur de la discussion pascal82
  • 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 !

pascal82

XLDnaute Occasionnel
Bonjour à tous et à toutes,

J'aimerai remplacer les formules Excel par un programme.
je réalise le test avec les formules Excel, mais vraiment très long et fastidieux avec le risque d'erreur.
Le test doit déterminer le % max (est en G4) en balayant les nombres de 0 à 58 dans les cellules (C3 et C4)
C3 étant la valeur min de l'encadrement, C4 la valeur max.
de plus il faut que F3+F4 soit > B3
formule en F3 => NB.SI(F$9:F$1618;0)
formule en F4 => NB.SI(F$9:F$1618;1)
formule de F9 à F1618 => SI(ET(D9>$C$3;D9<$C$4;A9=1);1;SI(ET(D9>$C$3;D9<$C$4;A9=0);0;2))
exemple: Si C3=40; C4=45 alors F3=34; F4=19; et comme F3+F4>40 on retiendra G4=35,8
exemple: Si C3=40; C4=46 alors F3=42; F4=22; et comme F3+F4>40 on retiendra G4=34,4 mais non retenu car < 35,8

Cordialement
 
Dernière édition:
Re : Programme pour remplacer formules Excel

Bonjour à tous et a toutes,

J’ai un peu avancé dans le programme.
J’arrive à réaliser la boucle avec la variable « C », les résultats se copient en colonne I et J. Par contre je n’arrive pas à réaliser la 2° boucle avec la variable « D ». Le but est l’incrémentation de cette variable de 10 à 45 et de copier les résultats en « I et J » lorsque D =10 en « K et L » lorsque D=11 etc jusqu’a ce que D =45.
J’ai également en vain essayé de convertir NB.SI(G$9:G$1009;0)en VBA mais en vain

Merci par avance.
 

Pièces jointes

Re : Programme pour remplacer formules Excel

Bonjour à tous et à toutes,

Merci paritec, je teste l’instruction. Par contre je n’arrive toujours pas ou, comment et quelle instruction pour copier coller le résultat de la boucle «variable D ». Actuellement la boucle se réalise mais écrase les résultats précédents.

VB:
 Sub Test_avec_deux_variables()
Dim C&, D&
Dim Deb As Currency
Deb = Timer
With Sheets("A")
  For D = 10 To 45
     For C = 1 To 58
     
     Range("G9").FormulaR1C1 = "=IF(AND(RC[-3]>" & C & ",RC[-3]<" & D & ",RC[-6]=1),1,IF(AND(RC[-3]>" & C & ",RC[-3]<" & D & ",RC[-6]=0),0,2))"
     Range("G9").AutoFill Destination:=Range("G9:G1009"), Type:=xlFillDefault
 
        .Range("G1").FormulaR1C1 = "=100*R4C7/(R3C7+R4C7)"
        .Range("I1").Offset(C, 0).Value = .Range("G1").Value
                
            .Range("G2").FormulaR1C1 = "=(R3C7+R4C7)"
            .Range("J1").Offset(C, 0).Value = .Range("G2").Value
                      
     Next C
  Next D
End With
  ActiveWorkbook.Save
  Range("A1") = (Timer - Deb) & " sec"
End Sub [/Highlight ] sans espaces avant ]

Merci
 
- 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

Réponses
2
Affichages
3 K
N
Réponses
4
Affichages
1 K
P
Réponses
0
Affichages
981
Plukrax
P
Retour