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

VBA Access Discussion :

function replace conversion date anglais [AC-2003]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 42
    Par défaut function replace conversion date anglais
    Bjr,
    J'utilise la fonction de conversion de mois français-anglais dans un état, dans une entête de groupe date_delivery regroupant les opérations par mois après une sélection d'une année dans une boîte de dialogue :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub EntêteGroupe1_Format(Cancel As Integer, FormatCount As Integer)
    Dim prmDate As String
    If IsNull(Forms!frm_dial_list!yeardelivery) Or IsNull(Forms!frm_dial_list!monthdelivery) Then
        Exit Sub
    Else
        prmDate = Format(Month(delivery_date), "mmmm")
        moisFormatAnglais (prmDate)
        Me!moisEnAnglais = moisFormatAnglais(prmDate)
    End If
    End Sub
    la fonction utilisée dans un module :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Public Function moisFormatAnglais(prmDate As String)
     
       Dim result As String
       'Dim prmDate As Date
     
       Dim nomMoisAnglais As Variant: nomMoisAnglais = Array("january", "february", "march", "april", "may", "june", "july", "August", "september", "october", "december")
       Dim nomMoisFrancais As Variant: nomMoisFrancais = Array("janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre")
     
        result = Format$(prmDate, "mmmm")
        result = Replace(result, nomMoisFrancais(Month(prmDate) - 1), nomMoisAnglais(Month(prmDate) - 1))
     
       moisFormatAnglais = result
     
    End Function
    une erreur 13 (incompatibilité de type) est retounée.

    Quelqu'un peut-il m'aider ?
    Merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    325
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2006
    Messages : 325
    Par défaut
    bonjour,

    je ne sais pas si ton bug vient de là mais as-tu remarqué que tu as une discordance dans tes mois...

    le mois de novembre n'existe pas en Anglais?

  3. #3
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 42
    Par défaut
    Merci pour cette info
    j'obtiens toujours la même erreur 13 malgré la correction ?

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Par défaut
    Bonsoir,

    essaie ceci pour la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public Function moisFormatAnglais(MoisIndex as Integer)
       const nomMoisAnglais ="january  february march    april    may      june     july     August   septemberoctober  december "
       If MoisIndex<1 Then MoisIndex=1
       If MoisIndex>12 Then MoisIndex=12 
       moisFormatAnglais = RTrim(Mid(nomMoisAnglais,1+(9*(MoisIndex-1)),9))
    End Function
    et pour l'appeler
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub EntêteGroupe1_Format(Cancel As Integer, FormatCount As Integer)
     If IsNull(Forms!frm_dial_list!yeardelivery) Or IsNull(Forms!frm_dial_list!monthdelivery) Then     Exit Sub
     Me!moisEnAnglais = moisFormatAnglais(Month(delivery_date))
    End Sub

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Par défaut
    Bonjour,

    Très bien la solution d'ilank.

    On pourrait même se faciliter l'existence grâce à la fonction Choose !
    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Function moisFormatAnglais(MoisIndex As Integer)
        If MoisIndex<1 Then MoisIndex=1
        If MoisIndex>12 Then MoisIndex=12 
        moisFormatAnglais = Choose(MoisIndex, "january", "february", "march", "april", "may", "june", "july", "August", "september", "october", "november", "december")
    End Function

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Par défaut
    Je l'avais oublié celle-là tiens !?

  7. #7
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 42
    Par défaut
    Merci à vous tous c'est parfait

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

Discussions similaires

  1. [XL-2010] Conversion Date (français en anglais)
    Par Tiviia dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 16/12/2012, 21h46
  2. conversion date anglais/français, visual basic 2008
    Par nathantahiti dans le forum VB.NET
    Réponses: 4
    Dernier message: 18/08/2011, 16h47
  3. Réponses: 2
    Dernier message: 05/08/2010, 08h58
  4. IsDate ou la conversion date anglais/français
    Par pifou25 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 05/04/2007, 19h24
  5. Conversion Date
    Par ZuZu dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 09/10/2003, 16h02

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