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

  • Initiateur de la discussion Initiateur de la discussion Ziouda
  • Date de début Date de début
  • Mots-clés Mots-clés
    vba

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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:
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.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour