J'essaie de faire un calcul dans Excel VBA mais j'obtiens l'erreur

Erreur définie par l'application ou par l'objet

C'est le code que j'essaye d'exécuter. L'erreur se produit sur la ligne .FormulaR1C1 = ..., mais je ne sais pas pourquoi.

Function CalcNumDays()
Dim d1 As Date, d2 As Date, NoofDays As Variant
d1 = "01/01/2017"
d2 = "03/01/2017"

NoofDays = Application.WorksheetFunction.NetworkDays(d1, d2)

With Sheets("ALL")
    With .Range("K2:K" & .Cells(.Rows.Count, "A").End(xlUp).Row)
        .FormulaR1C1 = "=IFERROR(SUM((RC[-8]+RC[-7]/RC[-4])*NoofDays,0)"
        .Value = .Value
    End With
End With

End Function

Sample Data

2
BellHopByDayAmetuerCoderByNigh 4 avril 2017 à 15:52

2 réponses

Meilleure réponse

Essaye ça

.FormulaR1C1 = "=IFERROR(SUM(RC[-8]+RC[-7]/RC[-4])*" & NoofDays & ",0)"
2
user3598756 4 avril 2017 à 12:56

Votre problème est cette ligne:

.FormulaR1C1 = "=IFERROR(SUM((RC[-8]+RC[-7]/RC[-4])*NoofDays,0)"

Vous souhaitez inclure la variable NoofDays, elle doit donc tomber en dehors de la chaîne, concaténer les chaînes en utilisant une esperluette &

.FormulaR1C1 = "=IFERROR(SUM((RC[-8]+RC[-7]/RC[-4])*" & NoofDays & ",0)"

Il vous manquait également une parenthèse pour terminer le SUM, donc la correction finale est

.FormulaR1C1 = "=IFERROR(SUM((RC[-8]+RC[-7]/RC[-4])*" & NoofDays & "),0)"
1
Wolfie 4 avril 2017 à 13:03