Erreur 13: incompatibilité de Type

Bonjour à tous,

J'ai créé une macro qui vient récupérer les coefficients dans un tableau pour ensuite calculer une puissance.

Mon programme fonction mais toute les 1651 lignes j'ai cette erreur :

capture

et si je relance mon programme à la ligne où il c'est arrêté ceux là fonction pour les 1651 lignes d'après et ensuite le même message apparait.

Mon code est le suivant :

Sub Puissance()

Worksheets("Filtre2").Activate
Range("D2").Select

Set jour = Worksheets("Filtre2").Range("A2")
Set heure = Worksheets("Filtre2").Range("A2")
Set x = Worksheets("Filtre2").Range("B2")

While Range("D40000") = ""

    jour1 = Application.Evaluate("=WEEKDAY(""" & jour & """)")
    heure1 = Application.Evaluate("=HOUR(""" & heure & """)")

    ActiveCell.Value = SP(jour1, heure1, x)

    ActiveCell.Offset(1, 0).Select

    Set jour = jour.Offset(1, 0)
    Set heure = heure.Offset(1, 0)
    Set x = x.Offset(1, 0)

Wend

Range("D2").Select

End Sub

Function SP(jour, heure, x)

a = Application.Evaluate("=SUMPRODUCT((WEEKDAY(Equa!A2:A169)=" & jour & ")*(HOUR(Equa!B2:B169)=" & heure & ")*Equa!C2:C169)")
b = Application.Evaluate("=SUMPRODUCT((WEEKDAY(Equa!A2:A169)=" & jour & ")*(HOUR(Equa!B2:B169)=" & heure & ")*Equa!D2:D169)")
c = Application.Evaluate("=SUMPRODUCT((WEEKDAY(Equa!A2:A169)=" & jour & ")*(HOUR(Equa!B2:B169)=" & heure & ")*Equa!E2:E169)")

SP = a * x * x + b * x + c

End Function

Je vous joint aussi mon fichier Excel,

Si quelqu'un à une solution ou une piste de solution je suis preneur

Merci d'avance pour votre aide,

Cordialement,

10test.zip (1.21 Mo)

Bonjour,

Votre problème vient du fait que ce n'est pas le jour qui pris comme valeur "jour" mais le mois, ce qui fait que, dès que la valeur que vous croyez être le jour et qui est en vérité le mois, dépasse 12 (puisqu'il n'y a que 12 mois) cela déclenche une erreur.

Cdlt

Bonjour Auturo83,

Merci de ton retour,

Pourrais-tu me dire l'endroit de mon programme ou se trouve mon erreur, je n'arrive pas à la trouver.

Bien Cordialement,

jour1 = Application.Evaluate("=WEEKDAY(""" & jour & """)")

Renvoi le mois (le 5) et non le jour (le 1), en fait la date est inversée entre le mois et jour

Votre fichier avec le code rectifié

Autre façon de faire (meilleur, plus rapide)

*************************************************************************

edit: remplace le fichier 1(quelques petits oublis)

Super Merci Beaucoup cela fonctionne parfaitement !

Bien Cordialement

Rechercher des sujets similaires à "erreur incompatibilite type"