Bonjour,
Dans un programme VBA destiné à insérer des formules de calcul dans un document Excel, j'ai utilisé le code suivant (extrait) :
Le but de la formule est d'effectuer le calcul suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Dim Quote Dim Formule As String Dim Formule2 as String Quote = """" With maFeuille Formule = "=SUMPRODUCT((BJ" & CStr(Debut) & ":BJ" & CStr(Fin) & "=" & Quote & "-1" & Quote & ")*(BN" & CStr(Debut) & ":BN" & CStr(Fin) & ">0))" Formule2 = "=SUMPRODUCT(BJ" & CStr(Debut) & ":BJ" & CStr(Fin) & "=" & Quote & "-1" & Quote & ")" .Range(sCol05 & Fin + indexLigne).Formula = Formule & "/" & Formule2 .Range(sCol05 & Fin + indexLigne).NumberFormat = "0.00%" .Range(sCol05 & Fin + indexLigne).Font.ColorIndex = 3 ' Rouge End With
Compter le nombre de lignes où la colonne BJ contient "-1" et où la colonne BN contient une valeur > 0.
Diviser ce résultat par le nombre de lignes où la colonne BJ contient "-1"
Si je n'utilise pas le contenu de Formule 2 en remplaçant la ligne qui affecte la formule par
alors j'obtiens un résultat numérique cohérent.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 .Range(sCol05 & Fin + indexLigne).Formula = Formule
Par contre, si je garde la ligne :
j'obtiens un message indiquant une division par zéro dans la formule, ce qui semble prouver que la formule contenue dans Formule2 retourne 0.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 .Range(sCol05 & Fin + indexLigne).Formula = Formule & "/" & Formule2
Pouvez vous m'indiquer d'où vient le problème, car il me semble pourtant que le contenu de Formule2 est une formule tout à fait légitime (pour info, SUMPRODUCT correspond en français à SOMMEPROD) ?
Merci de votre aide.
Partager