Probleme surformule de cycle de travail en VBA

Bonjour,

je débute en VBA et je rencontre un soucis sur la retranscription d'une formule qui fonctionne bien sous excel mais lorsque je l'utilise dans un code VBA ne fonctionne plus!!

je m'explique cette formule incremente automatiquement un cycle de travail dans un calendrier. si je prends comme date de depart dans la feuille parametre le 01/01/2014 il n'y a aucuns soucis pour les années suivantes (2014. 2015 ....) mais pour l'année 2013 cela ne fonctionne pas.

Et si je prends par exemple la date du 05/01/2014 là le code ne fonctionne plus.

y aurait il une ame charitable qui pourrait et voudrait bien m'aider SVP

Merci

34ausecours.xlsm (74.45 Ko)

Bonjour,

depart = (date_du_jour - Sheets("parametres").Range("deb"))
    ref = depart Mod equ
    Cycle = WorksheetFunction.Index(Sheets("parametres").Range("cycle"), ref + 1)

dans ce code tu calcules une variable départ. cette valeur est négatiive lorsque la date du jour est plus petite que la date de début.

dans ce cas ref est aussi négatif et la fonction index se plante.

h2so4 a écrit :

Bonjour,

depart = (date_du_jour - Sheets("parametres").Range("deb"))
    ref = depart Mod equ
    Cycle = WorksheetFunction.Index(Sheets("parametres").Range("cycle"), ref + 1)

dans ce code tu calcules une variable départ. cette valeur est négatiive lorsque la date du jour est plus petite que la date de début.

dans ce cas ref est aussi négatif et la fonction index se plante.

Bonjour, merci de t'interessé a mon petit soucis qui me rend bien fou!!

je me suis rendu compte de ce que tu me dis mais même en multipliant ma variable depart par -1 afin de retrouver une valeur positive la formule ne fonctionne pas.

Bonjour,

et en quoi ne fonctionne-t-elle pas ?

as-tu un message d'erreur ?

moi plutôt que de changer le signe j'aurais modifié la formule ainsi , mais c'est toi qui sais ce que tu veux faire.

    ref = depart Mod equ
    If ref < 0 Then ref = equ + ref '<----------
    Cycle = WorksheetFunction.Index(Sheets("parametres").Range("cycle"), ref + 1)

cela plante tout simplement avec le message d'erreur suivant:

"Erreur d'execution '1004':

Impossible de lire la propriété Index de la classe WorksheetFunction.

Je vais essayé ce que tu me propose et voir ce que cela donne; merci

je te tiens au jus


Je viens de tester ce que tu m'as proposé et cela fonctionne impeccable. Il ne me reste plus qu'à comprendre.

Je te remercie beaucoup car je dois reconnaitre que je commencais a avoir le moral a zero.

Merci tu es un king .

Davy

Rechercher des sujets similaires à "probleme surformule cycle travail vba"