Ajouter 1 jour à une varible

  • Initiateur de la discussion Initiateur de la discussion roby
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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

@+
 
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
 
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
 
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
 
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
 
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
 
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.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
1 K
  • Question Question
XL pour MAC Recherche date
Réponses
5
Affichages
2 K
Réponses
9
Affichages
1 K
Retour