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

Macros et VBA Excel Discussion :

Format date francais - anglais [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Février 2015
    Messages : 11
    Points : 4
    Points
    4
    Par défaut Format date francais - anglais
    Bonjour,
    J'ouvre ce nouveau sujet concernant un problème du format de la date lors d'un copier/coller.
    J'ai une fonction qui a une condition, et si la condition est respectée, la fonction renvoie une date, sauf qu'a l'origine la date est du format "jj/mm/aaaa hh:mm:ss" et lors du copier/coller elle prend un nouveau format "mm/dd/yyyy"

    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 dateJob(job As String) As String
     
    '''''''''''''''''' Fonction pour récuperer la date si le status est COMPL ou ABORT ''''''''''''''''''
     
    dateJob = vbNullString
    Dim endFile As Integer
    Dim i As Integer
     
    endFile = Feuil1.Range("A" & Rows.Count).End(xlUp).Row
     
    For i = 2 To endFile
     
        If (Feuil1.Cells(i, 4).Value = job) Then
     
    '''''''''''''''' test si le status est COMPL ou ABORT ''''''''''''''''''''''''
            If (Feuil1.Cells(i, 19).Value = "COMPL" Or Feuil1.Cells(i, 19) = "ABORT") Then
                dateJob = Feuil1.Cells(i, 2)
     
            End If
     
        Exit For
     
        End If
     
    Next i
     
     
    End Function

    à la base ma fonction doit renvoyer une date, mais n'ayant pas trouver un équivalent de vbNullString pour un type date, je l'utilise comme String.
    Je pense que c'est ca l'origine de mon erreur.
    Donc quand j'utilise cette fonction dans une autre sub, la date se transforme en format américain.
    Pourriez-vous m'aider pour apporter une solution à mon problème

  2. #2
    Membre éprouvé
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Points : 1 124
    Points
    1 124
    Par défaut
    Bonjour Nouafal
    Essayes ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dateJob =CDate( Feuil1.Cells(i, 2))
    Sinon Rdurupt ne devrait pas tarder à se manifester
    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  3. #3
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    Tu devrais garder le type Date. Une variable Date est initialisée à 0. La fonction renvoie alors 0 si aucune date n'est trouvée, c'est facile à tester.
    Sinon, tu peux utiliser aussi le type variant qui te permet de trafiquer la date nulle.

    Cordialement,

    pgz
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Février 2015
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Merci pour vos réponse.
    1- J'ai déjà essayé la fonction Cdate, mais celà ne marche pas car ma fonction renvoie un string et c'est la seul manière que j'ai trouvé pour forcer l'utilisation de vbNullString.
    2- En utilisant une variable Date, ma fonction ne me renvoie pas 0 mais plutot une date avec 1900 comme année, et même si cette fonction me renvoyait 0, celà ne m'arrange pas car ca va remplir la case quand même.
    Je vais tester avec un type variant pour voir ce que ca donne, à priori je pense que ca va marcher. Je vous tiens au courant du résultats

    Merci pour votre aide.

  5. #5
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour

    Citation Envoyé par naoufal.elbekri Voir le message
    2- En utilisant une variable Date, ma fonction ne me renvoie pas 0 mais plutot une date avec 1900 comme année
    Juste pour ton info, je te propose une petite manip :
    • Dans une cellule tu écris la valeur 0
    • Puis, pour cette cellule, tu choisis un format de date
    • tu regardes alors ce qu'il y a dans la cellule, et ce qu'il y a en haut dans la zone des formules.



    Cordialement,

    pgz
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  6. #6
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Function dateJob(job As String)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dateJob =format( Feuil1.Cells(i, 2),"yyyy-mm-dd hh:mm:ss")
    Dernière modification par Invité ; 09/02/2015 à 18h22.

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Février 2015
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    finalement j'ai utilisé un type Variant, je sais que ce n'est pas idéal pour la rapidité de ma fonction, mais l'utilité vient avant l'érgonomie dans mon cas.
    J'ai aussi utilisé la fonction Format(maCellule, "dd/mm/yyyy") car je veux me débarasser des heures, minutes et secondes pour les traitements suivants.

    Merci pour votre aide

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Utilises le format internationale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dateJob =format( Feuil1.Cells(i, 2),"yyyy-mm-dd")

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

Discussions similaires

  1. [XL-2010] Format date en anglais
    Par awa123 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/10/2014, 04h22
  2. Vba format date francais/anglais
    Par yann26 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 15/08/2014, 11h25
  3. format date en anglais
    Par userX3CRXI dans le forum SAP Crystal Reports
    Réponses: 0
    Dernier message: 05/11/2010, 17h38
  4. format de date, francais anglais
    Par mohcultiv dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 19/02/2008, 20h15
  5. Format Date Francais/anglais
    Par piero15 dans le forum Général Python
    Réponses: 3
    Dernier message: 26/04/2007, 12h07

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