Ajouter 1 jour à une varible

roby

XLDnaute Occasionnel
bonjour le forum,


je n'arrive pas à résoudre le problème suivant et je pense que cela doit etre tout simple(lol):

dans un USF, j'utilise un calendrier (calendar1) et une textbox1 qui restitue la date sans problème, un autre bouton commandbutton1 valide la saisie,

j'aimerai que dans ma textbox1 s'affiche le jour suivant si je ne quitte pas ma boite de dialogue pour saisir des données suivante.

je n'ai rien déclare ( dim Nouveaujour as ??)
style de code employe:

Private Sub CommandButton1_Click()
'Validation de la saisie
'-----------------------
If UsfSuivi.TextBox3.Value = "" Then Exit Sub
ActiveCell.Offset(0, 0).Value = UsfSuivi.TextBox1.Value 'Date
ActiveCell.Offset(0, 1).Value = UsfSuivi.TextBox2.Value 'Heure
ActiveCell.Offset(0, 4).Value = UsfSuivi.TextBox3.Value 'Indice HP
ActiveCell.Offset(0, 8).Value = UsfSuivi.TextBox4.Value 'Indice HC
ActiveCell.Offset(0, 14).Value = UsfSuivi.TextBox5.Value 'Indice S/Compteur Chauffage
ActiveCell.Offset(0, 21).Value = UsfSuivi.TextBox6.Value 'Mois Concerné
ActiveCell.Offset(0, 17).Value = UsfSuivi.TextBox7.Value 'Indice S/Compteur Chauffe Eau
ActiveCell.Offset(0, 22).Value = UsfSuivi.TextBox8.Value 'Observations
If UsfSuivi.OptionButton2 = True Then
ActiveCell.Offset(0, 2).Select
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
End If
'Champs vides
UsfSuivi.TextBox2.Value = "" 'Heure
UsfSuivi.TextBox3.Value = "" 'Indice HP
UsfSuivi.TextBox4.Value = "" 'Indice HC
UsfSuivi.TextBox5.Value = "" 'Indice S/Compteur Chauffage
UsfSuivi.TextBox7.Value = "" 'Indice S/Compteur Chauffe Eau
UsfSuivi.TextBox8.Value = "" 'Observations
''''UsfSuivi.TextBox1.Value = Format(Day(UsfSuivi.TextBox1) + 1 & "/" & Month(UsfSuivi.TextBox1) & "/" & Year(UsfSuivi.TextBox1), "dd/mm/yyyy")
UsfSuivi.OptionButton2 = True
Call DerniereLigne("A")
NouveauJour = ActiveCell.Offset(-1, 0) + 1
UsfSuivi.TextBox1.Value = Format(NouveauJour, "dd/mm/yyyy")
UsfSuivi.TextBox2.SetFocus
End Sub


merci d'avance Roby
 

malix

XLDnaute Nouveau
Re : Ajouter 1 jour à une varible

Salut,

Je pense que tu connais la notion des varible STATIC sous VBA bref voici ce que tu dois faire ( je pense) :

1 - Declare une variable globale au module Principale en statique :
Static dim JourSuivant

2 - Affect lui une valeur
JourSuivant = <code de la formule aujourdui> + 1

3 - renvois la valeurs dans le Textbox1
'''UsfSuivi.TextBox1.Value = JourSuivant


En quittant l'application a la prochaine Execution tu doit avoir l'ancienne valeur de la variable JourSuivant

@+
 

Caillou

XLDnaute Impliqué
Re : Ajouter 1 jour à une varible

Bonjour,

Attention, les variables statiques se déclarent de la façon suivante :
Static MaVar As type
Par exemple :
Static JourSuivant As Date

De plus les variables statiques conservent leur valeur pendant toute la durée de l'exécution du module, mais pas après redemmarage d'Excel !

Jean-Pierre
 

roby

XLDnaute Occasionnel
Re : Ajouter 1 jour à une varible

bonjour Malix, Caillou et le Forum

je suis d'accord pour déclarer ma variable, mais de quel type?
j'ai essaye en date, mais la variable prend la valeur de la date aujourdhui()

ma variable, en fait, correspond à:

ActiveCell.Offset(-1, 0)

qui correspond à la dernière date saisie (pas forcement la date du jour), et je voudrais lui ajouter 1 jour


merci d'avance roby
 

roby

XLDnaute Occasionnel
Re : Ajouter 1 jour à une varible

Re,

je suis désolé mais j'ai deja essaye cette methode et affiche une erreur de type:

incompatibilité de type

code employe:

Dim NJour As Date
NJour = ActiveCell.Offset(-1, 0) + 1

la variable NJ affiche 00:00:00
ActiveCell.Offset(-1, 0) + 1 affiche 31/03/2007 qui correspond à la dernière date saisie mais sans l'incrémentation souhaité


A vous relire Roby
 

bqtr

XLDnaute Accro
Re : Ajouter 1 jour à une varible

Bonjour,

En utilisant le control calendar peut-être:

UsfSuivi.OptionButton2 = True
Call DerniereLigne("A")
Me.Calendar1.NextDay
NouveauJour = Calendar1.value
UsfSuivi.TextBox1.Value = Format(NouveauJour, "dd/mm/yyyy")
UsfSuivi.TextBox2.SetFocus
End Sub
 

roby

XLDnaute Occasionnel
Re : Ajouter 1 jour à une varible

re bonjour Bqrt,


ta methode est peut etre bonne masi je ne veux pas avoir recours a chaque fois au calendar,

il faudrait simplement incrementer de 1 jour a chaque validation de la saisie




A+ Roby
 

bqtr

XLDnaute Accro
Re : Ajouter 1 jour à une varible

Re,

Autre solution à tester avec la fonction "DateAdd" :

UsfSuivi.OptionButton2 = True
Call DerniereLigne("A")
NouveauJour = Range("A65536").End(xlUp)
UsfSuivi.TextBox1.Value = Format(DateAdd("d", 1, NouveauJour), "dd/mm/yyyy")
UsfSuivi.TextBox2.SetFocus
End Sub

En supposant que les dates se trouvent dans la colonne A.
Ne pas oublier de déclarer la variable NouveauJour.
 

Discussions similaires

Statistiques des forums

Discussions
312 499
Messages
2 088 999
Membres
104 001
dernier inscrit
dessinbecm