calcul de jours entre premiere date de saisie et les suivantes.

babylonzoo

XLDnaute Nouveau
Bonjour a tous

j'ai un petit souci pour effectuer un calcul entre 2 dates differentes, je m'explique,

j'ai céé un userform afin de saisir des données 1 a 2 fois par semaine. j'ai dans une cellule le date de saisie qui apparait

Sheets("mesures").Range("B65536").End(xlUp).Offset(1, 0).Value = Me.TextBoxDate.Text

j'aimerai que dans la cellule contigu (C) apparaisse le nombre de jours entre la premiere saisie ( considéré comme DAY 0) et les saisie suivantes.

je pense qu'il faut sans doute declarer les dates en variables mais je debute et apres pas mal d'essai je demande de l'aide.


merci encore

babylonzoo
 

job75

XLDnaute Barbatruc
Re : calcul de jours entre premiere date de saisie et les suivantes.

Bonjour babylonzoo,

Si la première saisie met la date en B2, vous pouvez écrire le code :

Code:
Dim cel As Range
'----------------
Set cel = Sheets("mesures").Range("B65536").End(xlUp).Offset (1, 0)
cel.Value = TextBoxDate.Text
cel.Offset(0, 1).Value = cel.Value - Range("B2").Value

la colonne C étant au format Nombre 0.

Edit : bonjour pierrejean, tu as raison je vais un peu trop vite...

A+
 

babylonzoo

XLDnaute Nouveau
Re : calcul de jours entre premiere date de saisie et les suivantes.

bonjour à tous,

ci joint un fichiers permettant de comprendre ma demande

pour l'instant j'ai fait calculer les jours par difference de cellules. cela ne me satisfait pas car j'ai un signe"-" et le valeur 39315 qui apparait des les cellules non calculées ( cette table servira a faide des courbes) donc je pense qu'il serai mieux de faire calculer les jours directement dans le code vba afin qu'il soit inscrit dans le collonne D.
j'ai essayé pas mal de trucs mais je sèche.
merci pour votre aide
Babylonzoo
 

Pièces jointes

  • saisie_jour_entre_deux_dates.zip
    35.4 KB · Affichages: 39

job75

XLDnaute Barbatruc
Re : calcul de jours entre premiere date de saisie et les suivantes.

Babylonzoo,

Apparemment, c'est en colonne D de la feuille poids que vous voulez les valeurs, et la ligne de base est la 5.

Donc le code :

Code:
Dim cel As Range
'----------------
Set cel = Sheets("poids").Range("B65536").End(xlUp).Offset (1, 0)
cel.Value = TextBoxDate.Text
cel.Offset(0, 2).Value = cel.Value - Range("B5").Value

Pour le reste, pas essayé de comprendre ce que vous faites dans l'USF.

A+
 

job75

XLDnaute Barbatruc
Re : calcul de jours entre premiere date de saisie et les suivantes.

Re,

Il y avait plusieurs choses qui n'allaient pas en effet :

- la cellule B5 était du texte, il faut cliquer dans la formule et valider pour la transformer en date

- mettre toute la colonne B au format date jj-mmm-aa ou jj-mmmm-aaaa

- pour entrer dans la cellule la date de la TextBox, utiliser CDate

- enfin il faut définir la feuille de la cellule B5 (ça c'est de ma faute) :

Code:
Dim cel As Range
Set cel = Sheets("poids").Range("B65536").End(xlUp).Offset(1, 0)
cel.Value = [COLOR="Red"]CDate[/COLOR](TextBoxDate)
cel.Offset(0, 2).Value = cel.Value - [COLOR="Red"]Sheets("poids").[/COLOR]Range("B5").Value

A+
 
Dernière édition:

babylonzoo

XLDnaute Nouveau
Re : calcul de jours entre premiere date de saisie et les suivantes.

Salut a tous,
j'ai trouvé un solution a mon probleme en utilisant le format conditionel excel.
le principe :
la premiere date saisie ( en B5 ) est considérée comme Day 0 soit dans la cellule D5 la formule =B5-B$5
Pour les cellules suivantes, incrémenter la formule =SI(B6-B$5<0;0;B6-B$5) , ce qui veut dire que si la valeur de la cellule est inferieure a 0 ( ce qui est le cas si on garde B6-B$5 ) la cellule prend la valeur 0.
Ensuite aller dans outils/options/affichage et décocher "valeurs zéro" ainsi les zeros disparaissent du tableaux et le tour est joué. c'est tres utile si les tableaux servent a faire des courbes !

je laisse le post ouvert si quelqu'un trouve la manip pour coder en vba directement.

a+
Babylonzoo
 

Discussions similaires

Réponses
9
Affichages
589

Statistiques des forums

Discussions
312 430
Messages
2 088 365
Membres
103 831
dernier inscrit
Benjaminlutz