probleme surformule de cycle de travail en VBA Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
D
Davy83
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 24 juillet 2014
Version d'Excel : 2013

Message par Davy83 » 14 août 2014, 12:36

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!! :oops: :oops:
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
ausecours.xlsm
(74.45 Kio) Téléchargé 27 fois
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 7'945
Appréciations reçues : 240
Inscrit le : 16 juin 2013
Version d'Excel : 2013 UK Windows 10

Message par h2so4 » 14 août 2014, 13:02

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.
D
Davy83
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 24 juillet 2014
Version d'Excel : 2013

Message par Davy83 » 14 août 2014, 13:47

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.
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 7'945
Appréciations reçues : 240
Inscrit le : 16 juin 2013
Version d'Excel : 2013 UK Windows 10

Message par h2so4 » 14 août 2014, 14:04

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)
D
Davy83
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 24 juillet 2014
Version d'Excel : 2013

Message par Davy83 » 14 août 2014, 14:26

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
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message