OVH Cloud OVH Cloud

Date

9 réponses
Avatar
alain.suinot
bonjour
j'ai des cellules ou je dois rentrer des dates jj/mm/aa
je voudrai que la date que je rentre soit incrementé de 365 jous
automatiquement
comment doit je mis prendre
merci
AL1

9 réponses

Avatar
Francois L
bonjour
j'ai des cellules ou je dois rentrer des dates jj/mm/aa
je voudrai que la date que je rentre soit incrementé de 365 jous
automatiquement
comment doit je mis prendre
merci
AL1




Bonjour,

Avant de répondre, trois questions
- il s'agit bien de remplacer la date saisie par cette date + 365 jours ?
- c'est + 365 jours où + 1 an ?
- y-a-t'il une zone particulière ou ces date sont saisies (une ligne,
une colonne, un groupe de cellule, etc.)

--
François L

Avatar
JB
Bonjour,

On suppose que les dates sont saisies dans la colonne A:

Clic-droit onglet puis visualiser le code.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then
Application.EnableEvents = False
Target = DateSerial(Year(Target) + 1, Month(Target), Day(Target))
Application.EnableEvents = True
End If
End Sub

Cordialement JB



bonjour
j'ai des cellules ou je dois rentrer des dates jj/mm/aa
je voudrai que la date que je rentre soit incrementé de 365 jous
automatiquement
comment doit je mis prendre
merci
AL1


Avatar
Francois L
Bonjour,

On suppose que les dates sont saisies dans la colonne A:

Clic-droit onglet puis visualiser le code.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then
Application.EnableEvents = False
Target = DateSerial(Year(Target) + 1, Month(Target), Day(Target))
Application.EnableEvents = True
End If
End Sub



Bonsoir,

Oui mais, s'il y a une année bissextile !

--
François L
pinailleur :-)

Avatar
JB
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then
m = Month(Target)
Application.EnableEvents = False
Target = DateSerial(Year(Target) + 1, Month(Target), Day(Target))
If Month(Target) <> m Then Target = Target - 1
Application.EnableEvents = True
End If
End Sub

JB

Bonjour,

On suppose que les dates sont saisies dans la colonne A:

Clic-droit onglet puis visualiser le code.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then
Application.EnableEvents = False
Target = DateSerial(Year(Target) + 1, Month(Target), Day(Target))
Application.EnableEvents = True
End If
End Sub



Bonsoir,

Oui mais, s'il y a une année bissextile !

--
François L
pinailleur :-)



Avatar
MichDenis
Tu me permettras ce petit commentaire pour le bénéfice des lecteurs :

A ) La procédure ne s'assure pas que l'entrée saisie est une date
avec par exemple : If isdate(target) then
conséquence : si l'usager fait une faute en saisissant un format
de date erronée, il aura un message d'erreur de type 13
probablement incompréhensible pour lui...Tandis que le isdate()
permet de renvoyer un message clair dans le Else de ce dernier
en cas d'erreur.

B ) And Target.Count = 1
C'est quand même très limitatif : Une cellule à la fois
- Ne permet aucun copier coller de plus d'une cellule
- Ne permet pas non plus d'utiliser la croix de recopie
sur plus d'une cellule à la fois...
Ceci étant, peut être certaine application exige-t-elle ces restrictions ...


"JB" a écrit dans le message de news:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then
m = Month(Target)
Application.EnableEvents = False
Target = DateSerial(Year(Target) + 1, Month(Target), Day(Target))
If Month(Target) <> m Then Target = Target - 1
Application.EnableEvents = True
End If
End Sub

JB

Bonjour,

On suppose que les dates sont saisies dans la colonne A:

Clic-droit onglet puis visualiser le code.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then
Application.EnableEvents = False
Target = DateSerial(Year(Target) + 1, Month(Target), Day(Target))
Application.EnableEvents = True
End If
End Sub



Bonsoir,

Oui mais, s'il y a une année bissextile !

--
François L
pinailleur :-)



Avatar
Francois L
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then
m = Month(Target)
Application.EnableEvents = False
Target = DateSerial(Year(Target) + 1, Month(Target), Day(Target))
If Month(Target) <> m Then Target = Target - 1
Application.EnableEvents = True
End If
End Sub



Re,

En fait, nous ne savons pas vraiment ce que le questionneur voulait...

S'il veut ajouter un an date à date, je ne vois pas l'intérêt de saisir
par exemple 1/1/01 pour obtenir 1/1/02 ! Pourquoi ne pas alors saisir
directement "1/1/02" ?

Ou alors, il veut absolument 365 jours, même s'il y a un 29 février
compris dans la période, et alors, j'utiliserais ça :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not IsDate(Target) Then
Exit Sub
End If
Application.EnableEvents = False
Target = DateSerial(Year(Target), Month(Target), Day(Target)) + 365
Application.EnableEvents = True
End Sub


--
François L
chipoteur ?

Avatar
DarthMac
Hello,

là je dois avouer que je me suis posé la même question...

S'il pouvait nous éclairer là-dessus, nous avancerions grandement dans
l'énigme !

Mac


"Francois L" a écrit dans le message de news:


S'il veut ajouter un an date à date, je ne vois pas l'intérêt de saisir
par exemple 1/1/01 pour obtenir 1/1/02 ! Pourquoi ne pas alors saisir
directement "1/1/02" ?


Avatar
Francois L
Hello,

là je dois avouer que je me suis posé la même question...

S'il pouvait nous éclairer là-dessus, nous avancerions grandement dans
l'énigme !



Bonsoir,

Il a reposé la même question tout à l'heure... dans un nouveau fil en
disant qu'il voulait + 1 an (365 jours). Doit vivre avec un calendrier
sans année bissextile.

--
François L

Avatar
DarthMac
oui je viens de lire son autre fil... Lui aussi s'emmêle le pauvre ,-)

je réitère néanmoins, quand il nous en dira plus, nous saurons ce qui peut
l'aider vraiment

Mac

"Francois L" a écrit dans le message de news:
%234aVH%
Hello,

là je dois avouer que je me suis posé la même question...

S'il pouvait nous éclairer là-dessus, nous avancerions grandement dans
l'énigme !



Bonsoir,

Il a reposé la même question tout à l'heure... dans un nouveau fil en
disant qu'il voulait + 1 an (365 jours). Doit vivre avec un calendrier
sans année bissextile.

--
François L