XL 2016 Appel d'une fonction avec Jour/heure/minute

Ziouda

XLDnaute Nouveau
EDIT:
Il semble que le problème vient du fait que j'appel ma fonction de la sheet 1 et que les données sont dans la sheet 2

Quand j'appel ma fonction dans la sheet 2, ça fonctionne.

Du coup comment régler le soucis ?
Je pense que le pb vient de cette partie de la fonction :
Code:
    tableau = Sheets("DATA").Range(Cells(i, col), Cells(i + nbligne - 1, col))

Need help :)



Bonjour tout le monde,

Je sèche sur une fonction que j'ai crée avec deux variables "string et date"

Quand j'appel cette fonction via un call j'ai aucun soucis:

Code:
Sub test()
    Dim z As Double
  
    z = VariationTime("ID001", "00:30:00")
End Sub

Cependant si j'appel la fonctionne depuis excel, j'ai un #VALEUR!

Exemple :
=VariationTime("ID001";"00:15:00")


Voici la fonction
VB:
Public Function VariationTime(ID As String, timevar As Date) As Double
    Dim nbligne As Integer, i As Integer, l As Integer, col As Integer
    Dim Timeloop As Date
    Dim tableau As Variant
    Dim c As Range
    Dim First As Double, Last As Double, diff As Double



    Set c = Sheets("DATA").Rows(1).Find(ID, LookIn:=xlValues, LookAt:=xlWhole)
    col = c.Column


    Timeloop = "00:05:00"
    nbligne = timevar / Timeloop

    i = 3

    tableau = Sheets("DATA").Range(Cells(i, col), Cells(i + nbligne - 1, col))

    First = tableau(1, 1)
    Last = tableau(nbligne, 1)

    VariationTime = First - Last


End Function

Nom du module : Mes_Fonctions
Nom de la fonction : VariationTime
Extention fichier : xlsm
Macros activées : Oui
D'autres macros fonctionnent : Oui
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonsoir.
Je pense que le pb vient de cette partie de la fonction :
Code:
tableau = Sheets("DATA").Range(Cells(i, col), Cells(i + nbligne - 1, col))
C'est bien possible si la feuille active n'est pas la DATA puisqu'à défaut il assume Sheets("DATA").Range(ActiveSheet.Cells(i, col), ActiveSheet.Cells(i + nbligne - 1, col))
À mon avis il serait souhaitable que cette plage soit transmise As Range en 3ème argument.
 

Discussions similaires

Réponses
17
Affichages
760

Statistiques des forums

Discussions
311 720
Messages
2 081 900
Membres
101 834
dernier inscrit
Jeremy06510