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

Contribuez Discussion :

fonctions dates écrites littéralement [Toutes versions]


Sujet :

Contribuez

  1. #1
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut fonctions dates écrites littéralement
    Comme je l'ai fait pour les lettres, je propose maintenant une fonction pour les dates
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Function LITTERAL(LaDate As Date)
    Dim leJour(99), leJourE, leMois, leMoisE, Mannee, ManneeE, CanneeE, i As Integer, Resultat(3), x As Integer
    If LaDate = 0 Then LITTERAL = "": Exit Function
    For x = 0 To 99
      leJour(x) = x
    Next x
    leJourE = Array("", "Un", "Deux", "Trois", "Quatre", "Cinq", "Six", "Sept", "Huit", "Neuf", "Dix", "Onze", "Douze", "Treize", "Quatorze", "Quinze", _
          "Seize", "Dix Sept", "Dix Huit", "Dix Neuf", "Vingt", "Vingt et Un", "Vingt Deux", "Vingt Trois", "Vingt Quatre", "Vingt Cinq", _
          "Vingt Six", "Vingt Sept", "Vingt Huit", "Vingt Neuf", "Trente", "Trente et Un", "Trente Deux", "Trente Trois", "Trente Quatre", "Trente Cinq", _
          "Trente Six", "Trente Sept", "Trente Huit", "Trente Neuf", "Quarante", "Quarante et Un", "Quarante Deux", "Quarante Trois", "Quarante Quatre", _
          "Quarante Cinq", "Quarante Six", "Quarante Sept", "Quarante Huit", "Quarante Neuf", "Cinquante", "Cinquante et Un", "Cinquante Deux", "Cinquante Trois", _
          "Cinquante Quatre", "Cinquante Cinq", "Cinquante Six", "Cinquante Sept", "Cinquante Huit", "Cinquante Neuf", "Soixante", "Soixante et Un", _
          "Soixante Deux", "Soixante Trois", "Soixante Quatre", "Soixante Cinq", "Soixante Six", "Soixante Sept", "Soixante Huit", "Soixante Neuf", _
          "Soixante dix", "Soixante et Onze", "Soixante Douze", "Soixante Treize", "Soixante Quatorze", "Soixante Quinze", "Soixante Seize", _
          "Soixante Dix Sept", "Soixante Dix Huit", "Soixante Dix Neuf", "Quatre Vingt", "Quatre Vingt Un", "Quatre Vingt Deux", "Quatre Vingt Trois", _
          "Quatre Vingt Quatre", "Quatre Vingt Cinq", "Quatre Vingt Six", "Quatre Vingt Sept", "Quatre Vingt Huit", "Quatre Vingt Neuf", _
          "Quatre Vingt dix", "Quatre Vingt Onze", "Quatre Vingt Douze", "Quatre Vingt Treize", "Quatre Vingt Quatorze", "Quatre Vingt Quinze", "Quatre Vingt Seize", _
          "Quatre Vingt Dix Sept", "Quatre Vingt Dix Huit", "Quatre Vingt Dix Neuf")
    leMois = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
    leMoisE = Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Décembre")
    'ci-dessous, je conserve jusqu'au 4e millénaire après je prends ma retraite
    Mannee = Array(0, 1, 2, 3)
    ManneeE = Array("", "Mille", "Deux Mille", "Trois Mille")
    CanneeE = Array("", "Cent", "Deux Cent", "Trois Cent", "Quatre Cent", "Cinq Cent", "Six Cent", "Sept Cent", "Huit Cent", "Neuf Cent")
     
    For i = 0 To Val(Split(LaDate, "/")(0))
      If Val(Split(LaDate, "/")(0)) = leJour(i) Then Resultat(0) = leJourE(i)
    Next i
    For i = 0 To Val(Split(LaDate, "/")(1)) - 1
      If Val(Split(LaDate, "/")(1)) = leMois(i) Then Resultat(1) = leMoisE(i)
    Next i
    Resultat(2) = ManneeE(Left(Split(LaDate, "/")(2), 1)) & " " & CanneeE(Mid(Split(LaDate, "/")(2), 2, 1)) & " " & _
                 leJourE(Right(Split(LaDate, "/")(2), 2))
    LITTERAL = Resultat(0) & " " & Resultat(1) & " " & Resultat(2)
    End Function
    Merci pour vos éventuelles remarques
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    L'essentiel est fait, reste la finition pour respecter les règles d'orthographe bien résumées sur cette page: Orthographe - Les nombres.
    A priori, il n'y a aucune raison de mettre des majuscules à chacun des termes d'un nombre.
    Bonne continuation.

  3. #3
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour Eric,
    Merci, tu as raison à propos de l'orthographe, je corrigerais l'essentiel (les traits d'union, ce que tout le monde peut faire)
    Quant à la déclinaison au pluriel de certains termes, ça demande un peu de réflexion mais ça m'occupera.
    bonne journée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  4. #4
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour,

    Suite à la remarque d'Eric post#2 (ça fait quarante-quatre ans que j'ai quitté l'école), le code corrigé
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Function LITTERAL(LaDate As Date)
    Dim leJour(99), leJourE, leMois, leMoisE, Mannee, ManneeE, CanneeE, i As Integer, Resultat(3), x As Integer
    If LaDate = 0 Then LITTERAL = "": Exit Function
    For x = 0 To 99
      leJour(x) = x
    Next x
    leJourE = Array("", "un", "deux", "trois", "quatre", "cinq", "six", "sept", "huit", "neuf", "dix", "onze", "douze", "treize", "quatorze", "quinze", _
          "seize", "dix-sept", "dix-huit", "dix-neuf", "vingt", "vingt et un", "vingt-deux", "vingt-trois", "vingt-quatre", "vingt-cinq", _
          "vingt-six", "vingt-sept", "vingt-huit", "vingt-neuf", "trente", "trente et un", "trente-deux", "trente-trois", "trente-quatre", "trente-cinq", _
          "trente-six", "trente-sept", "trente-huit", "trente-neuf", "quarante", "quarante et un", "quarante-deux", "quarante-trois", "quarante-quatre", _
          "quarante-cinq", "quarante-six", "quarante-sept", "quarante-huit", "quarante-neuf", "cinquante", "cinquante et un", "cinquante-deux", "cinquante-trois", _
          "cinquante-quatre", "cinquante-cinq", "cinquante-six", "cinquante-sept", "cinquante-huit", "cinquante-neuf", "soixante", "soixante et un", _
          "soixante-deux", "soixante-trois", "soixante-quatre", "soixante-cinq", "soixante-six", "soixante-sept", "soixante-huit", "soixante-neuf", _
          "soixante-dix", "soixante et onze", "soixante-douze", "soixante-treize", "soixante-quatorze", "soixante-quinze", "soixante-seize", _
          "soixante-dix-sept", "soixante-dix-huit", "soixante-dix-neuf", "quatre-vingt", "quatre-vingt-un", "quatre-vingt-deux", "quatre-vingt-trois", _
          "quatre-vingt-quatre", "quatre-vingt-cinq", "quatre-vingt-six", "quatre-vingt-sept", "quatre-vingt-huit", "quatre-vingt-neuf", _
          "quatre-vingt-dix", "quatre-vingt-onze", "quatre-vingt-douze", "quatre-vingt-treize", "quatre-vingt-quatorze", "quatre-vingt-quinze", "quatre-vingt-seize", _
          "quatre-vingt-dix-sept", "quatre-vingt-dix-huit", "quatre-vingt-dix-neuf")
    leMois = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
    leMoisE = Array("janvier", "février", "mars", "avril", "mai", "juin", "juillet", "aout", "septembre", "octobre", "novembre", "décembre")
    'ci-dessous, je conserve jusqu'au 4e millénaire après je prends ma retraite
    Mannee = Array(0, 1, 2, 3)
    ManneeE = Array("", "mille", "deux mille", "trois mille")
    CanneeE = Array("", "cent", "deux cents", "trois cents", "quatre cents", "cinq cents", "six cents", "sept cents", "huit cents", "neuf cents")
     
    For i = 0 To Val(Split(LaDate, "/")(0))
      If Val(Split(LaDate, "/")(0)) = leJour(i) Then Resultat(0) = leJourE(i)
    Next i
    For i = 0 To Val(Split(LaDate, "/")(1)) - 1
      If Val(Split(LaDate, "/")(1)) = leMois(i) Then Resultat(1) = leMoisE(i)
    Next i
    If leJourE(Right(Split(LaDate, "/")(2), 2)) <> "" And CanneeE(Mid(Split(LaDate, "/")(2), 2, 1)) Like "*cent*" Then
      CanneeE(Mid(Split(LaDate, "/")(2), 2, 1)) = Left(CanneeE(Mid(Split(LaDate, "/")(2), 2, 1)), 4)
    End If
    Resultat(2) = ManneeE(Left(Split(LaDate, "/")(2), 1)) & " " & CanneeE(Mid(Split(LaDate, "/")(2), 2, 1)) & " " & _
                 leJourE(Right(Split(LaDate, "/")(2), 2))
    LITTERAL = Trim(Resultat(0) & " " & Resultat(1) & " " & Resultat(2))
    End Function
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    01/01/2013 = un janvier deux mille treize (un espace en trop entre mille treize
    ou premier janvier deux mille treize

    01/01/1900 = trente et un décembre mille huit cent quatre-vingt-dix-neuf ??

    Bonne continuation.

  6. #6
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    1/01/2013 = un janvier deux mille treize (un espace en trop entre mille treize
    ou premier janvier deux mille treize
    pourtant j'ai mis un "Trim", ah !!!
    01/01/1900 = trente et un décembre mille huit cent quatre-vingt-dix-neuf ??
    Zut, je vais repartir dans les vérifs

    Merci,
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  7. #7
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour le forum, EricDgn,
    je pense avoir corrigé mes deux dernières erreurs
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Function LITTERAL(ladate As Date)
    Dim leJour(99), leJourE, leMois, leMoisE, Mannee, ManneeE, CanneeE, i As Integer, Resultat(3), x As Integer
    If ladate = 0 Then LITTERAL = "": Exit Function
    If Year(ladate) = 1900 Or ladate = "31/12/1899" Then
      ladate = IIf(ladate < DateSerial(1900, 2, 1), ladate + 1, ladate)
    End If
    For x = 0 To 99
      leJour(x) = x
    Next x
    leJourE = Array("", "premier", "deux", "trois", "quatre", "cinq", "six", "sept", "huit", "neuf", "dix", "onze", "douze", "treize", "quatorze", "quinze", _
          "seize", "dix-sept", "dix-huit", "dix-neuf", "vingt", "vingt et un", "vingt-deux", "vingt-trois", "vingt-quatre", "vingt-cinq", _
          "vingt-six", "vingt-sept", "vingt-huit", "vingt-neuf", "trente", "trente et un", "trente-deux", "trente-trois", "trente-quatre", "trente-cinq", _
          "trente-six", "trente-sept", "trente-huit", "trente-neuf", "quarante", "quarante et un", "quarante-deux", "quarante-trois", "quarante-quatre", _
          "quarante-cinq", "quarante-six", "quarante-sept", "quarante-huit", "quarante-neuf", "cinquante", "cinquante et un", "cinquante-deux", "cinquante-trois", _
          "cinquante-quatre", "cinquante-cinq", "cinquante-six", "cinquante-sept", "cinquante-huit", "cinquante-neuf", "soixante", "soixante et un", _
          "soixante-deux", "soixante-trois", "soixante-quatre", "soixante-cinq", "soixante-six", "soixante-sept", "soixante-huit", "soixante-neuf", _
          "soixante-dix", "soixante et onze", "soixante-douze", "soixante-treize", "soixante-quatorze", "soixante-quinze", "soixante-seize", _
          "soixante-dix-sept", "soixante-dix-huit", "soixante-dix-neuf", "quatre-vingt", "quatre-vingt-un", "quatre-vingt-deux", "quatre-vingt-trois", _
          "quatre-vingt-quatre", "quatre-vingt-cinq", "quatre-vingt-six", "quatre-vingt-sept", "quatre-vingt-huit", "quatre-vingt-neuf", _
          "quatre-vingt-dix", "quatre-vingt-onze", "quatre-vingt-douze", "quatre-vingt-treize", "quatre-vingt-quatorze", "quatre-vingt-quinze", "quatre-vingt-seize", _
          "quatre-vingt-dix-sept", "quatre-vingt-dix-huit", "quatre-vingt-dix-neuf")
    leMois = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
    leMoisE = Array("janvier", "février", "mars", "avril", "mai", "juin", "juillet", "aout", "septembre", "octobre", "novembre", "décembre")
    'ci-dessous, je conserve jusqu'au 4e millénaire après je prends ma retraite
    Mannee = Array(0, 1, 2, 3)
    ManneeE = Array("", "mille", "deux mille", "trois mille")
    CanneeE = Array("", "cent", "deux cents", "trois cents", "quatre cents", "cinq cents", "six cents", "sept cents", "huit cents", "neuf cents")
     
    For i = 0 To Val(Split(ladate, "/")(0))
      If Val(Split(ladate, "/")(0)) = leJour(i) Then Resultat(0) = leJourE(i)
    Next i
    For i = 0 To Val(Split(ladate, "/")(1)) - 1
      If Val(Split(ladate, "/")(1)) = leMois(i) Then Resultat(1) = leMoisE(i)
    Next i
    If leJourE(Right(Split(ladate, "/")(2), 2)) <> "" And CanneeE(Mid(Split(ladate, "/")(2), 2, 1)) Like "*cent*" Then
      CanneeE(Mid(Split(ladate, "/")(2), 2, 1)) = Left(CanneeE(Mid(Split(ladate, "/")(2), 2, 1)), 4)
    End If
    Resultat(2) = ManneeE(Left(Split(ladate, "/")(2), 1)) & " " & CanneeE(Mid(Split(ladate, "/")(2), 2, 1)) & " " & _
                 leJourE(Right(Split(ladate, "/")(2), 2))
    LITTERAL = Application.WorksheetFunction.Trim(Resultat(0) & " " & Resultat(1) & " " & Resultat(2))
    End Function
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  8. #8
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Pas de chance, les 'cents' ont disparu:
    25/12/1978 vingt-cinq décembre mille neuf soixante-dix-huit

    Autre point: ne dit-on pas plutôt "dix-neuf cent soixante-dix-huit" que "mille neuf cent soixante-dix-huit" ?

    Bonne continuation !

  9. #9
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Pas de chance, les 'cents' ont disparu:
    25/12/1978 vingt-cinq décembre mille neuf soixante-dix-huit
    décidément, je vais encore regarder
    Autre point: ne dit-on pas plutôt "dix-neuf cent soixante-dix-huit" que "mille neuf cent soixante-dix-huit" ?
    même si j'ai quitté l'école, il y a 44 ans, la, je suis sur de moi, "dix-neuf cent..." est toléré, d'ailleurs je l'emploie, mais je crois me souvenir qu'on dit bien "mille neuf cent..."
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  10. #10
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Oui, les 2 sont valables. Wiki, où l'on discute même des variantes quant aux traits d'union. Les dix-neuf cents seraient plutôt en régression. Bref, chacun peut faire comme il lui plaît.

  11. #11
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Voilà, en espérant que je n'ai rien oublié, cette fois
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Function LITTERAL(ladate As Date)
    Dim leJour(99), leJourE, leMois, leMoisE, Mannee, ManneeE, lannee, CanneeE, i As Integer, Resultat(3), x As Integer
    If ladate = 0 Then LITTERAL = "": Exit Function
    If Year(ladate) = 1900 Or ladate = "31/12/1899" Then
      ladate = IIf(ladate < DateSerial(1900, 2, 1), ladate + 1, ladate)
    End If
    For x = 0 To 99
      leJour(x) = x
    Next x
    leJourE = Array("", "premier", "deux", "trois", "quatre", "cinq", "six", "sept", "huit", "neuf", "dix", "onze", "douze", "treize", "quatorze", "quinze", _
          "seize", "dix-sept", "dix-huit", "dix-neuf", "vingt", "vingt et un", "vingt-deux", "vingt-trois", "vingt-quatre", "vingt-cinq", _
          "vingt-six", "vingt-sept", "vingt-huit", "vingt-neuf", "trente", "trente et un", "trente-deux", "trente-trois", "trente-quatre", "trente-cinq", _
          "trente-six", "trente-sept", "trente-huit", "trente-neuf", "quarante", "quarante et un", "quarante-deux", "quarante-trois", "quarante-quatre", _
          "quarante-cinq", "quarante-six", "quarante-sept", "quarante-huit", "quarante-neuf", "cinquante", "cinquante et un", "cinquante-deux", "cinquante-trois", _
          "cinquante-quatre", "cinquante-cinq", "cinquante-six", "cinquante-sept", "cinquante-huit", "cinquante-neuf", "soixante", "soixante et un", _
          "soixante-deux", "soixante-trois", "soixante-quatre", "soixante-cinq", "soixante-six", "soixante-sept", "soixante-huit", "soixante-neuf", _
          "soixante-dix", "soixante et onze", "soixante-douze", "soixante-treize", "soixante-quatorze", "soixante-quinze", "soixante-seize", _
          "soixante-dix-sept", "soixante-dix-huit", "soixante-dix-neuf", "quatre-vingt", "quatre-vingt-un", "quatre-vingt-deux", "quatre-vingt-trois", _
          "quatre-vingt-quatre", "quatre-vingt-cinq", "quatre-vingt-six", "quatre-vingt-sept", "quatre-vingt-huit", "quatre-vingt-neuf", _
          "quatre-vingt-dix", "quatre-vingt-onze", "quatre-vingt-douze", "quatre-vingt-treize", "quatre-vingt-quatorze", "quatre-vingt-quinze", "quatre-vingt-seize", _
          "quatre-vingt-dix-sept", "quatre-vingt-dix-huit", "quatre-vingt-dix-neuf")
    leMois = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
    leMoisE = Array("janvier", "février", "mars", "avril", "mai", "juin", "juillet", "aout", "septembre", "octobre", "novembre", "décembre")
    'ci-dessous, je conserve jusqu'au 4e millénaire après je prends ma retraite
    Mannee = Array(0, 1, 2, 3)
    ManneeE = Array("", "mille", "deux mille", "trois mille")
    CanneeE = Array("", "cent", "deux cent", "trois cent", "quatre cent", "cinq cent", "six cent", "sept cent", "huit cent", "neuf cent")
     
    For i = 0 To Val(Split(ladate, "/")(0))
      If Val(Split(ladate, "/")(0)) = leJour(i) Then Resultat(0) = leJourE(i)
    Next i
    For i = 0 To Val(Split(ladate, "/")(1)) - 1
      If Val(Split(ladate, "/")(1)) = leMois(i) Then Resultat(1) = leMoisE(i)
    Next i
    Resultat(2) = ManneeE(Left(Split(ladate, "/")(2), 1)) & " " & CanneeE(Mid(Split(ladate, "/")(2), 2, 1)) & " " & _
                 leJourE(Right(Split(ladate, "/")(2), 2))
    With WorksheetFunction
      lannee = Split(.Trim(Resultat(2)), " ")
      If lannee(UBound(lannee)) = "cent" And Mid(Split(ladate, "/")(2), 2, 1) <> 1 Then Resultat(2) = .Trim(Resultat(2)) & "s"
      LITTERAL = .Trim(Resultat(0) & " " & Resultat(1) & " " & Resultat(2))
    End With
    End Function
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  12. #12
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Moins simple qu'il n'y paraissait !

    29/12/1899 vingt-neuf décembre mille huit cent quatre-vingt-dix-neuf
    30/12/1899 (rien ?)
    31/12/1899 premier janvier mille neuf cents

    31/01/1900 trente et un janvier mille neuf cents
    01/02/1900 premier février mille neuf cents
    02/02/1900 premier février mille neuf cents
    03/02/1900 deux février mille neuf cents

    31/12/2000 trente et un décembre deux mille
    01/01/2001 premier janvier deux mille premier
    02/01/2001 deux janvier deux mille premier
    03/01/2001 trois janvier deux mille premier

    31/12/1980 trente et un décembre mille neuf cent quatre-vingt (vingts)

    Bonne continuation.

  13. #13
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    01/01/2001 premier janvier deux mille premier
    02/01/2001 deux janvier deux mille premier
    03/01/2001 trois janvier deux mille premier
    là, ça me gene beaucoup, je vais trop vite car plus trop le temps mais il faudra y arriver, eh oui là je dois encore partir, merci
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  14. #14
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut heu....
    Bonjour casefayere

    tiens encore moi
    c'est cadeau!!! regarde bien le format des dates dans la sub hein!!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub test()
        Debug.Print date2litteral("15/12/16")
        Debug.Print date2litteral("15/12/1971")
        Debug.Print date2litteral("15/12/1955")
        Debug.Print date2litteral("3/5/15")
        Debug.Print date2litteral("1/1/2000")
        Debug.Print date2litteral("01/01/1998")
        Debug.Print date2litteral("01/01/1980")
        Debug.Print date2litteral("01/01/1900")
        Debug.Print date2litteral("32/01/3125")
    End Sub
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    Function date2litteral(ladate As String)
        If Not IsDate(ladate) Then MsgBox ladate & vbCrLf & " ca n'est pas une date valide"
        unit1 = Array("", " Un", " Deux", " Trois", " Quatre", " Cinq", " Six", " Sept", " Huit", " Neuf", " Dix", " Onze", " Douze", " treize", " Quatorze", " Quinze", " Seize", " Dix-Sept", " Dix-Huit", " Dix-Neuf", " cent", " zéro")
        unit10 = Array("", " dix", " vingt", " trente", " quarante", " cinquante", " soixante", " soixante-dix", " quatre-vingt", " quatre-vingt-dix", " cent", " mille")
        tbldate = Split(ladate, "/")
        For i = 0 To UBound(tbldate)
            Select Case i
            Case 0
                jour = tbldate(i)
                If jour > 20 Then jour = unit10(Left(jour, 1)) & IIf(Right(jour, 1) = 1 And Left(jour, 1) > 1, " et", "-") & unit1(Right(jour, 1)) Else jour = unit1(jour)
                If jour = " Un" Then jour = "premier"
            Case 2
                aC = Val(tbldate(i)): If aC < 100 Then aC = Left(Year(Date), 2) & aC
                a = Split(Format(aC, "@ @ @ @"), " ")
                If a(0) > 1 Then a(0) = unit1(a(0)) & " mille" Else a(0) = " mille"
                If a(1) > 1 Then a(1) = unit1(a(1)) & " cents" Else a(1) = IIf(a(1) = 1, " cent", unit1(0))
                If a(2) Like "[179]" And a(3) > 0 Then a(2) = a(2) - 1: a(3) = a(3) + 10
                If a(2) > 2 And a(2) < 8 And Right(a(3), 1) = 1 Then et = " et" Else et = IIf(Val(a(2) & a(3)) > 20, "-", "")
                If Val(a(2) & a(3)) = 80 Then et = "s"
            End Select
        Next
        jourL = StrConv(Format(ladate, "dddd"), vbProperCase) & " "
        mois = " " & Format(ladate, "mmmm")
     
        date2litteral = Replace(jourL & jour & mois & a(0) & a(1) & unit10(a(2)) & et & unit1(a(3)), "- ", "-")
     
    End Function
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  15. #15
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour,
    Sauf que la syntaxe des dates en toutes lettres est différente de celle des nombres en toutes lettres.
    (valable pour les deux codes présentés).

    Réflexions (c'était par elles qu'il eût fallu commencer) et explications :

    Une date étant un ordinal (et non le cardinal d’une collection dénombrable), tous ses éléments restent au singulier : on écrira donc mil(le) neuf cent ou mille neuf cent quatre-vingt contrairement aux nombres en lettres "mille neuf cents" et "mille neuf cent quatre-vingts".
    Une date n'est en aucun cas le cardinal d'une collection dénombrable (un "déterminant numéral cardinal") . Elle est un ordinal (un "déterminant numéral ordinal") et tous ses éléments numéraux s'expriment donc toujours au seul singulier.
    Le millésime s'exprime sous la forme "mil" au singulier (et donc pour toutes les dates antérieures au 01/01/2000 et "mille" au pluriel (dates postérieures au 31/12/1999")
    Une date s'écrit sans aucune majuscule, y compris pour l'expression d'un mois, étant rappelé que (de manière générale) la première lettre d'un mois ne s'écrit en majuscule que lorsque la date est utilisée comme symbole d'un événement historique ("le 14 Juillet", par exemple) ou lorsque le mois est le début d'une phrase ("Août est l'un des mois de l'année").
    L'expression d'une date en toutes lettres n'est pas uniforme. Elle diffère énormément selon la nature du document de destination : classique, notarié, acte d'état civil, procès-verbal, jugement, compte-rendu, rapport, etc ...(liste assez longue). Il est dès lors primordial d'en scinder les divers éléments et de les traiter séparément. A ne pas le faire, on reste "prisonnier" d'une forme ( telle "le deux janvier mil neuf cent quatre-vingt") qui ne sera paradoxalement réellement utilisable que ... sur les documents qui ne nécessitent que très rarement que la date y figure en toutes lettres !...).

    Votre projet est limité au français, ce qui facilite grandement la tâche. Extraire ce qu'il faut de mon outil similaire (multilingue et donc traité très différemment) serait une vraie torture (trop d'imbrications).
    Je préfère dans ces conditions recoder directement pour la langue française seule et pense être en mesure de vous en montrer un "jus" (au besoin bâclé) assez rapidement. Il vous permettra de comprendre beaucoup de ce que j'ai exposé plus haut).
    A très bientôt, donc.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  16. #16
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    perso moi j'ai lu justement que mille était le pluriel de mil et était devenu par la suite un mot invariable

    ensuite c'est vrai les dates s'écrivent pas en toutes lettres
    15 janvier 2016
    pour ma part j'ai produit un code basé sur les nblettre ce qui correspondait au désir de casefayere
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  17. #17
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bien évidemment, que les dates s'écrivent en toutes lettres dans certains cas que j'ai cités.
    J'ai expliqué que leur forme d'écriture en toutes lettres était alors rarement du type "le deux février mil neuf cent vingt-cinq", mais toute autre.
    Bon.
    Voilà ce que j'ai fait ce soir avant dîner :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    Option Explicit
     
    Private Sub CommandButton1_Click()
      Dim ladate As Date
      ladate = CDate(Range("A1").Text)
      MsgBox Datlet(ladate, "classique", "le")
      MsgBox Datlet(ladate, "classique", "ce jour,")
      MsgBox Datlet(ladate, "notaire", "l'an")
      MsgBox Datlet(ladate, "année", "le")
    End Sub
     
    Private Function Datlet(ladate As Date, forme As String, compl As String) As String
      Dim an As String, jour As String, mois As String
      an = XT(Year(ladate), "A")
      jour = XT(Day(ladate), "J")
      mois = Format(ladate, "mmmm")
      Select Case forme
        Case "classique"
          Datlet = compl & " " & jour & " " & mois & " " & an
        Case "notaire"
          Datlet = compl & " " & an & " et le " & jour & " " & mois
        Case "année"
          Datlet = compl & " " & jour & " " & mois & " de l'an " & an
      End Select
    End Function
    Private Function XT(Q As Integer, M) As String
      Dim mil As Integer, U, D, R As Integer, p(3, 2), cent As Byte, diz As Byte, uni As Byte, et As String
      U = Array("", "un", "deux", "trois", "quatre", "cing", "six", "sept", "huit", "neuf", "dix", "onze", "douze", "treize", "quatorze", "quinze", "seize", "dix-sept", "dix-huit", "dix-neuf")
      D = Array("", "dix", "vingt", "trente", "quarante", "cinquante", "soixante", "soixante", "quatre-vingt", "quatre-vingt")
      mil = Q \ 1000
      Select Case mil
        Case 0
        Case 1
           p(0, 0) = mil: p(0, 1) = "mil"
        Case Else
           p(0, 0) = mil: p(0, 1) = U(mil) & " " & "mille"
        End Select
      R = Q Mod 1000: cent = R \ 100: p(1, 0) = R
      Select Case cent
        Case 0
        Case 1: p(1, 1) = "cent": p(0, 2) = String((cent > 0) ^ 2, " ")
        Case Else: p(1, 1) = U(cent) & " cent": p(0, 2) = p(0, 2) & String((cent > 0) ^ 2, " ")
      End Select
      R = R Mod 100: diz = R \ 10: uni = R Mod 10
      Select Case diz
        Case 1, 7, 9
          diz = diz - 1: uni = uni + 10
          If (uni = 1 Or uni = 11) And diz <> 8 Then et = " et " Else et = "-"
          If diz = 0 Then et = " "
        Case 8
          If uni > 0 Then et = "-"
        Case Else
          If diz = 0 Then
            et = " "
          Else
            If uni = 1 Then et = " et "
            If uni > 1 Then et = "-"
          End If
      End Select
      p(2, 0) = diz: p(2, 1) = D(diz) & et & U(uni)
      If M = "J" And p(2, 1) = " un" Then p(2, 1) = "premier"
      p(1, 2) = String((diz > 0) ^ 2, " ")
      XT = Trim(p(0, 1) & p(0, 2) & p(1, 1) & p(1, 2) & p(2, 1))
    End Function
    On comprendra mieux en exécutant ce code ce dont il s'agit et l'absolue nécessité induite de scinder d'emblée les parties et leur traitement.
    Je n'ai mis que des exemples de rédaction. Par sa souplesse et sa structure, ce code permet bien évidemment toutes les autres formes (liste longue) requises par la nature du document de destination.
    Je me suis efforcé d'éclater suffisamment mon code pour vous éviter des maux de crâne à la lecture et en faciliter la maintenance.
    Je vous laisse y ajouter (si vous le souhaitez) les contrôles de validité de la date traitée. Je n'ai pas voulu le faire ici car il est clair que cet aspect-là est liminaire et de la seule responsabilité du développeur utilisant ce code.
    Bonne nuit, donc.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  18. #18
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    A Patrick,
    Je te remercie de t'intéresser aussi à ce sujet que j'avais laissé de coté, tu as fait un bon travail, j'ai testé ton code, à part la date de l'année 3025, des conventions ou règles que précise unparia (majuscules, pluriel, etc.), les résultats me paraissent sympas. donc


    A unparia,
    j'ai également regardé ta proposition, je ne connaissais pas toutes ces règles en matière de dates littérales et je te remercie également pour ton boulot qui m'a déjà l'air abouti, une seule chose : il a fallu que je transforme 2 variables en "long" car je me suis retrouvé avec un dépassement de capacité, variables Q et R dans la fonction XT,
    il faut maintenant que s'assimile tes procédures, dès que j'ai le temps, donc

    je m'aperçois que j'ai encore du chemin à faire (non, je le savais)

    bonne nuit à tous deux
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  19. #19
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Citation Envoyé par casefayere Voir le message
    A Patrick,
    il a fallu que je transforme 2 variables en "long" car je me suis retrouvé avec un dépassement de capacité, variables Q et R dans la fonction XT,
    Voilà un mystère qui doit trouver une explication en amont de ton test, dès lors que le plus grand nombre (Q) traité est la partie millésime est qu'il est très en deçà de la limite d'un entier (et que R est par définition encore plus petit). Je n'ai pas ce problème chez moi.
    Amitiés.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  20. #20
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Au vu de ces résultats, ce n'est pas encore tout à fait au point.
    Nom : DatLet1.png
Affichages : 148
Taille : 16,5 Ko
    Bonne continuation.

    P.S. Les dates avant le 1/1/1900 ne sont pas considérées par Excel comme des nombres (TYPE()=1), mais comme des textes (TYPE()=2).

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Date écrite en littéral
    Par casefayere dans le forum Contribuez
    Réponses: 0
    Dernier message: 17/03/2016, 15h47
  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