Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Fonction Date en excel 2011 Mac

JNR91

XLDnaute Nouveau
Bonjour,

Je suis récemment passé de excel 2007 PC à excel 2011 Mac.
Certaines macros ne fonctionnent plus comme avant.
En particulier, la fonction Date n'est plus la même.

Sur excel 2007, on peut écrire par exemple :
Dim A as date
A="23/12/2011"
et le tour est joué, on récupère dans A la date normalisée.

Mais il n'en va plus de même sur excel 2011 Mac car l'instruction ci-dessus est refusée.

Après de nombreux essais, recherches en tout genre, j'en suis venu à réécrire une fonction Date qui
convient au problème, plus performante que celle de Microsoft =DATE(an,mois,jour) qui est utilisable seulement dans la feuille de calcul et qui ne traite d'ailleurs pas les dépassements de nombres de jours selon le mois concerné.

Je vous livre ci-dessous le code de ma fonction à toutes fins utiles :

Function DateVB2011(an, mois, jour)
' macro qui retourne le nombre entier correspondant à la date
' créée pour les besoins du passage de excel 2007 à excel 2011
' retourne 1 (correspond à 1/1/1900) si an <1900 ou si mois >12 ou si nb jours incompatible
' avec le numéro de mois ou si 29 fév d'une année non bissextile

Dim T() As Variant
T = Array(0, 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334)
If an < 1900 Or mois < 1 Or mois > 12 Or jour > 31 Then
DateVB2011 = 1
Exit Function
End If
If ((mois = 4 Or mois = 6 Or mois = 9 Or mois = 11) And jour > 30) Or (mois = 2 And jour > 29) Then
DateVB2011 = 1
Exit Function
End If
CorFev = 0
If ((an - Int(an / 4) * 4) = O) And mois > 2 Then CorFev = 1 ' si année est bissextile

If an > 1900 Then
nb4 = Int((an - 1901) / 4) + 1
Else
nb4 = 0
End If
n = (an - 1900) * 365 + nb4 + jour + T(mois) + CorFev
DateVB2011 = n
End Function
 

JNR91

XLDnaute Nouveau
Re : Fonction Date en excel 2011 Mac

Superbe ! Cela fonctionne en X2011 Mac.

Je suis bluffé car la commande fonctionne aussi bien avec la date libellée avec le texte du mois que dans une écriture de type 12/2/1969. En plus il y a traitement du dépassement de jour du mois.

Merci

Merci
 

Discussions similaires

Réponses
5
Affichages
243
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…