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 :

[A-03] Dates en plusieurs langues dans des états: un conflit linguistique à la belge


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8
    Points : 8
    Points
    8
    Par défaut [A-03] Dates en plusieurs langues dans des états: un conflit linguistique à la belge
    Bonjour,

    Un petit problème linguistique à résoudre...

    J'utilise Access 2003 pour développer, entre autres, des outils de gestion d'inscriptions à des formations.

    Les courriers sont automatisés via des Etats. Jusque là, tout va bien.

    Cependant, dans un souci de bonne communication auprès des participants, j'aimerais pouvoir leur indiquer des dates précises dans les courriers : des dates qui comprennent, en "très long", jour-j-mois-année. Le hic, c'est que les courriers doivent sortir dans les 2 langues nationales.

    Pour le français, langue paramétrée dans mon système Office, tout va bien. J'utilise le format date [jjjj j mmmm aaaa] que je combine même avec du texte ["Bruxelles, le "jjjj j mmmm aaaa].

    Avez-vous une astuce pour transformer cette date dans une autre langue ? Un de mes collègues me parle de VisualBasic mais j'avoue que c'est une langue que je ne connais pas... encore...

    Merci déjà pour votre réaction,

    Marie

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Bonjour et bienvenue sur nos forums.


    Le plus simple est effectivement de passer par du vba

    Voici une fonction personnalisée qui permet cela
    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
    Function DateLongue(ValeurDate As Date, Langue As String) As String
        Dim JourSemaine As Integer
        Dim Jour As String
        Dim Mois As String
        Dim MoisAnnee As Integer
     
        Select Case Langue
            Case "F"
                DateLongue = "Bruxelles, le " & Format(ValeurDate, "dddd d mmmm yyyy")
            Case "N"
                JourSemaine = Weekday(ValeurDate, vbMonday)
                MoisAnnee = Month(ValeurDate)
                Jour = Split(" maandag , dinsdag , woensdag , donderdag , vriidag , zaterdag , zondag ", ",")(JourSemaine - 1)
                Mois = Split(" januari , februari , maart , april , mei , juni , julius , augustus , september , october , november , december ", ",")(MoisAnnee - 1)
                DateLongue = "Brussel, de" & Jour & Format(ValeurDate, "d") & Mois & Format(ValeurDate, "yyyy")
        End Select
    End Function
    il faut copier ce code dans un module VBA de la base de données. Pour cela, Alt+F11 puis insertion/Module et copier le code.

    La fonction est alors disponible comme une fonction intégrée d'Access. Dans le mode Création de l'état, placer un contrôle pour recevoir la date, et y saisir le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =datelongue([MonChampDate], [MonChampLangue])
    en remplaçant les noms des champs par ceux de ta base de données. Il faut bien sûr que ces champs soient disponibles dans la source de l'état...

    il faudra vérifier l'orthographe des mots en néerlandais (notamment pour juillet, car je ne garantis pas le sans faute dans la langue de Vondel
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Merci Pierre.
    Je vais tester ça ce WE.
    Comme je débute complètement en VBA, j'ai repris mes vieux bouquins pour comprendre ce que je fais. J'arrive à des premiers résultats très simples mais pas encore à ce que je voudrais en finale !
    J'ai commencé, par exemple, les tutoriels de publipostage piloté depuis Access, mais je coïnce : je m'arrache les cheveux pour lancer Word automatiquement... j'ai l'impression que mon VBA ne connaît pas Word...
    Je vais faire une pose au soleil puis reprendre tout ça calmement !
    A bientôt sans doute, je te donnerai des nouvelles pour ta proposition.
    Bonne après-midi ensoleillée... c'est si rare chez nous.
    Marie

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8
    Points : 8
    Points
    8
    Par défaut Eurêka ! Les dates se traduisent toutes seules...
    Merci Pierre pour le tuyau.
    Il m'a fallu un peu plus qu'un simple copier-coller de ton code pour que ça marche.
    En fait j'ai dû finalement créer 2 fonctions pour avoir des formats différents.
    Et comme mes courriers sont des Etats basés sur des requêtes avec filtre sur la langue, j'ai également simplifié ...

    Voici ce que ça a donné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public Function DateLongueNL(valeurdate As Date) As String
     
    Dim Mois As String
    Dim MoisAnnée As Integer
     
        MoisAnnée = Month(valeurdate)
        Mois = Split("januari,februari,maart,april,mei,juni,juli,augustus,september,october,november,december", ",")(MoisAnnée - 1)
     
        DateLongueNL = "Brussel, de " & Day(valeurdate) & " " & Mois & " " & Format(valeurdate, "yyyy")
     
    End Function
    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
    Public Function DateXLongueNL(valeurdate As Date) As String
     
    Dim Jour As String
    Dim JourSemaine As Integer
    Dim Mois As String
    Dim MoisAnnée As Integer
     
        JourSemaine = Weekday(valeurdate, vbMonday)
        Jour = Split("maandag,dinsdag,woensdag,donderdag,vrijdag,zaterdag,zondag", ",")(JourSemaine - 1)
        MoisAnnée = Month(valeurdate)
        Mois = Split("januari,februari,maart,april,mei,juni,juli,augustus,september,october,november,december", ",")(MoisAnnée - 1)
     
        DateXLongueNL = Jour & " " & Day(valeurdate) & " " & Mois & " " & Format(valeurdate, "yyyy")
     
    End Function
    à la prochaine

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

Discussions similaires

  1. Récupérer la valeur de plusieurs cel dans des textbox
    Par Mon_ami dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/01/2009, 09h03
  2. Comment inclure plusieurs JSP dans des servlets
    Par carranca dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 10/10/2008, 10h20
  3. Scripter IE7 pour ouvrir plusieurs url dans des onglets
    Par Ttienne dans le forum VBScript
    Réponses: 13
    Dernier message: 02/04/2008, 23h34
  4. Réponses: 1
    Dernier message: 12/12/2007, 10h57

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