Récupérer l'année d'un format date au format integer

Lsg

XLDnaute Nouveau
Bonjour.
Je veux récupérer l'année d'une date contenue dans la cellule A5 de la feuille 1.
Cette celule est au format JJ/MM/AAA et contient 24/08/2008 (dans mon exemple).
Je voudrais l'importer dans une variable integer.
(dim Annee as integer)

Ai tenté :
a) Annee = Year (Sheets(1).Range("A5"))
b) Annee = val (Year(Sheets(1).Range("A5")))
et même
c) Annee = val (cstr(Year(Sheets(1).Range("A5"))))

mais j'ai toujours un erreur de type (erreur d'xécution 13, incompatibilité de type).

Pourriez vous m'aider svp.

Merci.



Lsg
 

Lsg

XLDnaute Nouveau
Re : Récupérer l'année d'un format date au format integer

Bonjour

je viens de faire ceci et pas de problème

Sub toto()
Dim annee As Integer
annee = Year(Sheets(1).Range("A5"))
End Sub

=> Avais tu bien encodé une date complète dans une cellule déclarée comme étant de format date ? Je viens encore de le tester, toujours le même message d'erreur !
 
Dernière édition:

Lsg

XLDnaute Nouveau
Re : Récupérer l'année d'un format date au format integer

Bon, il y a manifestement un truc qui m'échappe :
1) Mon code initial fonctionne chez PascalXLD, pas ici...
2) Le code de Papou me retourne... le jour (au lieu de l'année)!

Je vais donc me dépanner avec
"Annee = Val(Right(Format(Feuil1.Range("a5"), "yyyy"), 4))"
Ce code marche mais ça fait gros bricolage tout de même...

Mais je reste ouvert à toute tentative d'explication pou autre formulation plus propre
 

Paritec

XLDnaute Barbatruc
Re : Récupérer l'année d'un format date au format integer

Bonsoir Lsg, Pascal le forum
Moi j'avais essayé chez moi avec mon code et j'avais bien le retour de l'année!!!!
Je pense que ton souci est dans le format de ta cellule A5
car yyyy qui retourne le jour j'ai jamais vu cela !!
bref quand tu auras trouvé n'hésites pas a nous dire quoi car perso je ne sais plus quoi te dire de plus.
bonne soirée
papou
 

Pierrot93

XLDnaute Barbatruc
Re : Récupérer l'année d'un format date au format integer

Bonsoir à tous

une autre solution peut être...

Code:
annee = Year(CDate(Sheets(1).Range("A5").Value))

A voir, comment est considéré par Excel le contenu de ta cellule.

nonne soirée
@+
 

Catrice

XLDnaute Barbatruc
Re : Récupérer l'année d'un format date au format integer

Bonsoir,

J'obtiens le message de Lsg si par exemple je fait :

Sub Test()
Annee = Year(Sheets(1).Range("A5"))
End Sub

Et que dans A5, il y a par exemple 12345678
voir le fichier joint.

Peut etre Lsg pourrait poster un morceau de fichier avec la date qu'il utilise ...
 

Pièces jointes

  • Classeur1.xls
    23.5 KB · Affichages: 152
  • Classeur1.xls
    23.5 KB · Affichages: 152
  • Classeur1.xls
    23.5 KB · Affichages: 161
Dernière édition:

Lsg

XLDnaute Nouveau
Re : Récupérer l'année d'un format date au format integer

Tout d'abord, merci à tous de votre aide !!!

Je deviens fou.... Ai repris le fichier de test de Catrice : Dans le fichier test, il fonctionne. Dans mon fichier, pas (malgré le format de la cellule qui est identique) !!!

Conclusion : Il doit y avoir quelque chose de lié à la cellule ou au classeur qui vient "pourrir" l'exécution du code... A moins que ce ne soit parce que j'ai Visual Basic installé sur mon pc qui vienne interagir avec VBA ???

Je vais donc reproduire tout cela sans un NOUVEAU classeur et sur un autre pc pour être fixé.
 

Discussions similaires

Statistiques des forums

Discussions
312 495
Messages
2 088 969
Membres
103 993
dernier inscrit
Essens