Bonjour tout le monde,

Après lecture du lien ci-dessous (et je dois l'avouer, peu de compréhension de ce qui y est décrit ), je me décide à poster pour vous expliquer mon problème.

http://silkyroad.developpez.com/VBA/LesVariables/#LIV

J'ai créé une bête fonction dont l'objectif est de renvoyer le numéro de la dernière ligne non vide d'un tableau :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Function derniereLigneOccupee(cel As range)
    derniereLigneOccupee = cel.End(xlUp).Row
End Function
Dans une procédure, je trouve la valeur de cette dernière ligne

Code : Sélectionner tout - Visualiser dans une fenêtre à part
dlo = derniereLigneOccupee(range("B10"))
et je me sers du résultat dans une autre fonction

Code : Sélectionner tout - Visualiser dans une fenêtre à part
calculSommeDistanceModePose(dlo)
dont le code est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
Function calculSommeDistanceModePose(nomb As Integer)
    calculSommeDistanceModePose = 0
For i = 1 To nomb
 
    calculSommeDistanceModePose = calculSommeDistanceModePose + range("B4").Offset(i - 1 - 4, 0).Value * range("d4").Offset(i - 1 - 4, 0).Value
 
Next i
 
End Function
L'erreur renvoyée par Excel lors de l'exécution de la macro est le classique "type d'argument byref incompatible"..
Je ne trouve pas d'où provient l'erreur, d'autant plus que l'utilisation du résultat "dlo" ne pose aucun souci quand je l'utilise avec une autre fonction..

Merci d'avance de vos explications