Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

problème de date en VBA

C

C@thy

Guest
Bonjour foromeuses, foromeurs,

ouali ouala : zé un petit problème de conversion de date : comment transformer en VBA un nombre en date (par exemple 37895 en 24/10/2003)????

Names("PremJour").RefersTo = DateSerial(Year(Now), Month(Now), 1)
' j'obtiens 37895
DateCour = cDate(PremJour) * forcément c'est pas ça!!!
ensuite je veux décaler au 1er du mois suivant par rapport à ce résultat :
Names("PremJour").RefersTo = DateSerial(Year(CurDate), Month(CurDate) + 1, 1).

Je marne là-dessus depuis ce matin aux zorores! Merci à toutes celles et ceux qui pourront me donner un coup de main sur le sujet et à bientôt.

ma signature, c'est Vériland.
Au fait, il est où Véri, et tous ceux qui nous mettent plein de gifs dans leurs fils??? Ca manque de gifs en ce moment, vous trouvez pas? (au passage, je cherche toujours désespérément un gif représentant une main qui s'agite en sortant de l'eau pour demander de l'aide, y'a kekun ka ça?)

 
C

chriis

Guest
Bonjour
En fait 37895 est bien une date pour Excel.
Donc si tu enlèves la ligne DATECOUR il me sempble que cela devrait marcher.
Attention tu emploies ensuite Curdate et non Datecour : le nom doit être le même ou alors garde Premjour.
Chris
 
C

C@thy

Guest
Ben sauf que ça marche pas du tout,

évidemment j'ai essayé et je me fuis caffé les dents... lol!!!!

(incompatibilité de type!!!)

Names("PremJour").RefersTo = DateSerial(Year(Now), Month(Now), 1)
Names("PremJour").RefersTo = DateSerial(Year(CurDate), Month(CurDate) + 1, 1)

 
C

C@thy

Guest
j'avais oublié la 1ère ligne :

CurDate = Names("PremJour").Value
Names("PremJour").RefersTo = DateSerial(Year(Now), Month(Now), 1)
Names("PremJour").RefersTo = DateSerial(Year(CurDate), Month(CurDate) + 1, 1)

 
D

Dan

Guest
Bonjour Cathy,

Si tu places cette macro :

Sub MyDate()
Dim MyDate, Curdate, Nextdate
MyDate = DateSerial(Year(Now), Month(Now) , 1) ' Définit la date - Ici tu obtiens la date du 01/10/03.
Curdate = CDate(MyDate)
Range("A1") = Curdate
Nextdate = DateSerial(Year(Curdate), Month(Curdate) + 1, 1) 'ici to obtiens la valeur Mydate + 1 mois
Range("A2") = Nextdate
End Sub

C'est cela que tu veux faire ? ou je n'ai rien compris !

Dans l'attente de te lire

@+

Dan
 
C

C@thy

Guest
euh non, comme ça :

Names("PremJour").RefersTo = DateSerial(Year(Now), Month(Now), 1)
CurDate = Names("PremJour").Value
Names("PremJour").RefersTo = DateSerial(Year(CurDate), Month(CurDate) + 1, 1)

mais c'est kif kif

 
C

C@thy

Guest
Ben justement je ne dois pas les écrire,

donc j'ai choisi de définir un nom auquel je donne la valeur de la date de début, et comme mon planning utilise ce nom, c'est OK.

 
C

chris

Guest
Re
En fait côté date ça calcule bien.
Moi ce qui me pose PB c'est le Names("PremJour").RefersTo
(dont j'ignore à quoi il sert.

Si c'est pour attribuer un nom dans la feuille (Comme avec insertion nom définir), je ne sais pas si cela marche en cas de protection.

Donc si on fait
Premjour = DateSerial(Year(Now), Month(Now), 1)
Premjour = DateSerial(Year(Premjour), Month(Premjour) + 1, 1)

on a bien le 01/11/2003 comme valeur de Premjour

après je ne sais pas quoi faire de cette donnée par rapport à ton objectif.

Chris
 
C

C@thy

Guest
Merci Chris,

mon problème est le suivant :

j'ai un zoli planning, et en A3 j'ai la formule :

= Premjour

ce que je veux c'est modifier Premjour par macro pour qu'il prenne la valeur de la date voulue (je choisis le mois au moyen d'une scrollbar). Donc je ne modifie rien du tout dans ma feuille et c'est bon quand même... enfin ce serait le rêve!!!

CurDate = Names("PremJour").Value
Names("PremJour").RefersTo = DateSerial(Year(CurDate), Month(CurDate) + 1, 1)

= incompatibilité de type!

comme dirait la pub pour Bio de Danone : "t'as une solution?"

 
C

C@thy

Guest
Ah, je suis sur une piste :

dans curdate je n'ai pas un nombre mais "=le nombre",
donc y faut que je récupère juste la partie numérique derrière le =

z'avez une idée?

Merci

 

Discussions similaires

C
Réponses
9
Affichages
3 K
T
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…