Problème de dates ... année

Problème de date

J’ai une version Excel 365 en Français.

En A3 j’ai un nombre 2024.

Au début, j’obtenais l’année 1905, mais j’ai compris que 2024 était interprété comme le nombre de jours depuis 1900, alors j’ai essayé de contourner le problème en passant par le format Serial number.

En Excel, en B3 j’utilise la fonction : =Annee(Date(A3 ;1 ;1)) et il me donne l’année exacte 2024.

Mais en VBA, en B3 j’utilise la fonction : =Year(DateSerial(A3,1,1)) et il me donne l’année 2000 ??

J’ai essayé de toutes les manières et avec diverses fonctions de date, sans succès.

Je sais qu’il y a 2 systèmes de dates avec 1900 et 1904, mais je ne sais s’il faut modifier le système ni comment.

Quelqu’un peut-il m’aider en VBA ?

Merci d’avance pour vos lumières et bonne soirée.

sylb

Bonjour Sylb

Oula.... "En A3 j'ai un nombre" oui très bien, mais que représente ce nombre pour vous

Bonjour,

Ne serait-ce pas plus simple de partager directement le fichier concerné

Slts

Bonsoir,

on ne définie pas une valeur de cellule par le nom de la cellule mais par un Range("B3") par exemple ou un [B3].
Pour info : DateSerial(année,mois,jour)

@ bientôt

LouReeD

Bonjour à tous.

Merci pour vos réponses rapides.

Le 2024 est l'année fournie par une donnée externe téléchargée d'internet et qui est censée représenter l'année.

Mais après vérification, dans Excel , c'est bien un nombre et pas une date.

Mais j'ai besoin de traiter cette donnée comme une année dans un programme de paiements.

Comme demandé je joins un fichier qui donne des réponses différentes dans Excel et dans VBA.

Bonne journée.

sylb

17classeur2.xlsm (16.30 Ko)

Comme le dit LouReeD "on ne définie pas une valeur de cellule par le nom de la cellule mais par un Range("B3") par exemple ou un [B3]."

Donc votre formule en VBA devrait être Range("B3") = Year(DateSerial([a3], 1, 1)) ou Range("B3") = Year(DateSerial(Range("a3"), 1, 1))

Une EXCELente pratique est de TOUJOURS ajouter Option Explicit au début de chaque module, ça vous aurait dit tout de suite que a3 n'était pas valable.

Menu Outils, Options, cocher "Déclaration des variables obligatoire" !

Bonjour à tous,

Honnêtement dans Excel

=ANNEE(DATE(A3;1;1))

avec le nombre 2024 en A3 donnera toujours le résultat 2024 qui est un nombre ! Transformation parfaitement inutile !

La notion d'année n'existe pas, seule existe la notion de date (qui est de toutes façons un nombre) et pour laquelle on peut n'afficher que l'année. Ou alors l'ami sylb ne nous dit pas tout.

Bonjour,

Merci à tous pour vos réponses, effectivement cela fonctionne parfaitement de cette façon.

Je n'ai pas fait assez attention au "Range" pour désigner la cellule.

Ce que je trouve bizarre c'est que la compilation ne me donnait pas d'erreurs.

Merci de m'avoir rappelé à l'ordre.

sylb

La compilation ne donnait pas d'erreur car il manquait Option Explicit en début de module

Syntaxtiquement, le code était correct.

Bonsoir,

merci de votre retour et remerciement !

@ bientôt

LouReeD

Rechercher des sujets similaires à "probleme dates annee"