opérations sur date

  • Initiateur de la discussion Initiateur de la discussion samplaibien
  • 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 !

S

samplaibien

Guest
Bonjour,

je débute en excel et je cherche à faire quelques opérations sur des cellules en champ date.

Exemple: j'ai une cellule A1 qui contient '01/01/2002' et je souhaiterais y ajouter ou soustraire 1 ou plusieurs années dans la cellule A2.

Comment faire puisqu'excel ne me soustrait/ajoute qu'en jour ?

Merci d'avance.
 
Bonjour,

Voir sur le fichier joint, pour ajouter ou enlever jour, mois, ou annee

Bonne journée [file name=moidate.zip size=1590]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/moidate.zip[/file]
 

Pièces jointes

Bonjour Sam Plait Bien, Mr Spock, le Forum

Je pense que l'on doit pouvoir le faire par Formule, mais ce n'est pas mon truc (voir si notre Fée Monique passe par là, ou encore Jean-Marie)

Pour l'instant le voici en Sub VBA :

Sub TheDateAnalyzor()
Dim TheDate As Date, TheNewDate As Date
Dim TheYear As Integer, TheMonth As Byte, TheDay As Byte

If Not IsDate(ActiveCell) Then Exit Sub
   
    TheDate = ActiveCell
   
    TheYear = Year(TheDate) - 1
    TheMonth = Month(TheDate)
    TheDay = Day(TheDate)
   
    TheNewDate = DateSerial(TheYear, TheMonth, TheDay)
    MsgBox TheNewDate

End Sub



Et aussi en Fonction Personalsée dans la Foulée !

Public Function DateLessOneYear(ByRef R As Range, ByVal Y As Integer)
Application.Volatile

Dim TheDate As Date, TheNewDate As Date
Dim TheYear As Integer, TheMonth As Byte, TheDay As Byte

If Not IsDate(R.Value) Then Exit Function

    TheDate = R.Value
   
    TheYear = Year(TheDate) - Y
    TheMonth = Month(TheDate)
    TheDay = Day(TheDate)
   
    TheNewDate = DateSerial(TheYear, TheMonth, TheDay)
    DateLessOneYear = TheNewDate


End Function


NB on peut donc utiliser cette fonction directement dans une Feuille comme une Formule existante comme ceci:

=DateLessOneYear(A1,1)

Syntax :
=DateLessOneYear(Cellule Contenant Date à Traiter, Nombre d'Années à retrancher)

Bon appétit
@+Thierry
 
Bonjour Claude

Désolé je ne t'avais point vu, mais donc oui en formule c'est donc tout à fait réalisable, merci à toi, comme ça nos amis auront l'embarras du Choix 😉

D'ailleurs c'est très cousin du VBA niveau syntax en Formule sur une version américaine d'Excel :

=DATE(YEAR(A1)-1,MONTH(A1),DAY(A1))

Bon Appétit
@+Thierry
 
Bonjour Ândré, cher ami et compatriote !

Ah je t'ai aussi lamenatblement oublié dans cette phrase 'voir si notre Fée Monique passe par là, ou encore Jean-Marie' que j'aurai bien entendu dû rédiger ainsi :

'Voir si notre Fée Monique passe par là, ou encore Jean-Marie, ou encore Ândré si il nous sort un barbatruc de derrière les fagots de houblon jaillissant directement de la mousse de sa Duvel' !!!!

Merci à Toi et Excellent Appétit !
@+Thierry
 
Bonjour les Gens, le Forum, Sam 😉

Je me suis permis d'améliorer le fichier de Claude

Les $ c'est pour permettre à Excel de toujours prendre la ligne 1 lorsque tu recopies les formules vers le bas

Et si tu modifies les données dans h i et j 4 ça fait le calcul tout seul 😉

Bonne journée


Samantha [file name=moidate1.zip size=1845]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/moidate1.zip[/file]
 

Pièces jointes

Bonjour tout le monde

Une formule un peu plus longue, mais qui ne nécessite pas une macro complémentaire.

=Date(année(A1)-x;mois(A1);jour(A1))

Attention à l'utilisation de cette formule si la date est 29/2/2004 la valeur retournée sera le 1/03/03, et non le 28/2/03.

@+Jean-Marie
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
15
Affichages
772
Réponses
6
Affichages
636
Réponses
4
Affichages
428
Retour