IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Fonction Date résultat surprenant [XL-365]


Sujet :

Excel

  1. #1
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 363
    Par défaut Fonction Date résultat surprenant
    Bonjour,

    j'ai un module utilisé dans plusieurs Excel qui fait appel à la fcontion Date
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim dat as Date
     
    dat = Date
    la date récupérée est bien la date du jour, sauf dans un Excel ou "dat"est égal au 08/01/1900

    Je cherche, je cherche...

    Avez une idée de ce qui peut perturber le résultat ?

  2. #2
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 363
    Par défaut
    J 'ai opté pour une solution de contournement

  3. #3
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 623
    Par défaut
    Hello,

    pas très logique et je ne constate pas le problème.
    Même si vous avez trouvé une solution de contournement je vous conseillerais de :
    - redémarrer Excel
    si toujours même problème
    - redémarrer le PC
    si toujours...
    - tester sur un nouveau classeur
    si toujours...
    mettre le feu au PC

    Plus sérieux, n'auriez vous pas nommé une variable "Date" ?
    JièL
    Membre des AMIS
    Anti Macro Inutilement Superfétatoire

  4. #4
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 476
    Billets dans le blog
    3
    Par défaut
    Bonjour,

    J'ai jamais compris pourquoi MS a utiliser le terme Date pour désigner un type, une fonction et une instruction
    le truc qu'il faut éviter à tout prix normalement

    J'ai eu une fois un problème sur la fonction Date, qui plantait le code directement, ça venait d'une Référence manquante
    dans Visual Basic, Menu Outils-Références
    vérifier s'il y a une ligne indiquée MANQUANT
    si oui, décocher la case
    OK

  5. #5
    Membre averti
    Profil pro
    Chef de projet
    Inscrit en
    Septembre 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Septembre 2008
    Messages : 58
    Par défaut Trouver la valeur
    Cela ressemble à un effet de bord.
    Au moins on connais la valeur: 7. Les dates en excel sont des nombres qui représentent le nombre de jours depuis de 01/01/1900.
    Il faut donc chercher ce qui a pour valeur '7' dans le programme ou la feuille de calcul

  6. #6
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 623
    Par défaut
    @Rep.Movs, à un près vous l'aviez...
    C'est 8 la valeur du 08/01/1900
    JièL
    Membre des AMIS
    Anti Macro Inutilement Superfétatoire

  7. #7
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 363
    Par défaut
    Dans l'Excel en cause je fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Private Sub Workbook_Open()
    MsgBox Date
    MsgBox affiche "9"

    la même chose sur mes autres excel : j'ai bien la date du jour

    vos messages :
    #4
    vérifier s'il y a une ligne indiquée MANQUANT
    rien vu de tel

    #3
    Oui j'ai fait tout cela
    mettre le feu au PC
    Seule solution

    J'ai finalement remplacé "Date" par "Now" et cela semble marcher

    Moi pas compris...

    A suivre

  8. #8
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 476
    Billets dans le blog
    3
    Par défaut
    Bonjour,

    Peut-on avoir accès à ce fichier spécial ? (sans données confidentielles si possible)

  9. #9
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 623
    Par défaut
    Donc aujourd'hui c'est 9, ça avance de 1 par jour ? Plus que 46 212 jours pour être à la bonne date
    Supprimez les données confidentielles de votre classeur et mettez le en pièce jointe, sinon :
    Nom : FB_IMG_1780698333142.jpg
Affichages : 55
Taille : 21,2 Ko
    JièL
    Membre des AMIS
    Anti Macro Inutilement Superfétatoire

  10. #10
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 476
    Billets dans le blog
    3
    Par défaut
    Re,

    Donc aujourd'hui c'est 9, ça avance de 1 par jour ?
    Non, il y a 1 jour de différence dans la gestion des dates entre Excel et VBA pour les dates de début 1900 (je suppose sur la question 1900 est il une année bissextile ?)
    du côté Excel 8/1/1900 vaut 8
    du côté VBA 8/1/1900 vaut 9

    pour tester

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub test()
    Dim D As Date
        D = DateSerial(1900, 1, 8)
        MsgBox CLng(D)
    End Sub
    Edit : oui, l'écart disparait pour le 1/3/1900, correspondant à 61 pour les 2 systèmes

  11. #11
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 363
    Par défaut
    Plus que 46 212 jours pour être à la bonne date
    Mon ancien métier m'a appris à être patient, attendons

    Ceci dit je vais voir si je peux envoyer qq chose, pas facile c'est un excel avec bcp de macros (c'est surement la cause...)

  12. #12
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 623
    Par défaut
    @toto tu as raison, je n'ai jamais pu intégrer la """logique""" de cette différence entre une formule Excel et le VBA.
    @retraite83, il y a de fortes chance que vous ayez déclaré une variable en la nommant "Date", faites une recherche dans tout le projet VBA
    JièL
    Membre des AMIS
    Anti Macro Inutilement Superfétatoire

  13. #13
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 476
    Billets dans le blog
    3
    Par défaut
    Re,

    d'autant qu'on peut carrément redéfinir la date système en VBA avec l'instruction Date (que je viens de découvrir)

    https://learn.microsoft.com/fr-fr/of...date-statement

  14. #14
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 363
    Par défaut
    #12
    j'y ai pensé, j'ai fait recherche "Date as" dans tout le projet

    Pas trouvé.. ma recherche est-elle suffisante ?

  15. #15
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 623
    Par défaut
    @toto oui, ça modifie la date système (il m'est arrivé de l'utiliser pour garder un peu de temps sur des shareware excel, qui avaient un date limite)
    @retraite83 essayez alors une recherche avec "Date ="
    JièL
    Membre des AMIS
    Anti Macro Inutilement Superfétatoire

  16. #16
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 363
    Par défaut
    yes une piste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Public Enum TypeCsv
        Bit = 0         ' "Bit"
        Bool = 1        ' "Boolean"
        Bytes = 2       ' "Byte"
        Short = 3       ' "Short"
        Entier = 4      ' "Integer"
        EntierLong = 5  ' "Long"
        Signer = 6      ' "Single"
        numerique = 7   ' "Double"
        Reel = 8        ' "Float"
        Date = 9        ' "DateTime"
        text = 10       ' "Text"
        car = 11        ' "Char"
        txt = 12        ' "Memo"
        LonTXT = 14     ' "LongChar"
    End Enum
    Dans le requesteur d'accès à ACCES proposé ici par Thumb down (et qui marche fort bien)

  17. #17
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 623
    Par défaut
    Ben voilà, vous avez le fautif !
    Maintenant je ne sais pas quel serait l'effet de modifier le "Date = " dans l'énumération, je serais quand même tenté de le renommer "Date_ =" par exemple et de vérifier si tout fonctionne correctement
    JièL
    Membre des AMIS
    Anti Macro Inutilement Superfétatoire

  18. #18
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 363
    Par défaut
    Oui ca me fait peur de modifier ce module qui me parait très complexe...

    Je pense que le plus sage est de rester avec "Now" au lieu de "Date" dans mes excels utilisant ce module externe. Pas de risque inconsidéré..

  19. #19
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 476
    Billets dans le blog
    3
    Par défaut
    Re,

    En testant le module que j'ai retrouvé ici
    https://www.developpez.net/forums/d2.../#post12112774
    en renommant Date en DateT, je n'ai eu aucun soucis de fonctionnement
    visiblement le plus important est que le type date soit associé à la valeur 9 dans le code

  20. #20
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 663
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 663
    Par défaut
    bonjour,
    personnellement j'espère que le problème est plus complexe que dans l'exemple car passer par dat As date pour récupérer la date me semble ridicule Vu date fait très bien le djob !

    TypeCsv est un enumerateur qui permet de définir le type de champ vue par Acces pour définir le fichier shema.ini nous sommes bien loing d'excel.

    cet enumerateur fait partie d'un paramètre d'une fonction publique d'un module de classe.

    si tu l'utiliser dans un module standard tu te retrouveras avec date=9 et pas la date du jour.

    ça n'avait pas de conséquences dans l'utilisation que j'en faisais mais Nain porte koi a mis le doigt dessus. j'aurais du effectivement l'appeler Date_ on veut toujours rester au plus près de la réalité et on fait des erreurs de débutant a tous les ages.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Dates] Fonction date
    Par dafalri dans le forum Langage
    Réponses: 18
    Dernier message: 13/12/2005, 11h27
  2. Question de base sur l'utilisation de la fonction date()
    Par deaven dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/12/2005, 15h33
  3. Som dans form continu en fonction date selectionée dans form
    Par samlepiratepaddy dans le forum Access
    Réponses: 3
    Dernier message: 26/09/2005, 13h05
  4. Fonction Date
    Par marivi dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/08/2005, 16h30
  5. Problème avec une fonction date.
    Par kmayoyota dans le forum ASP
    Réponses: 8
    Dernier message: 09/09/2004, 12h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo