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 excel


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 45
    Points : 26
    Points
    26
    Par défaut format date excel
    Bonjour,

    j'ai généré une macro via l'enregistreur de macro excel 2007, pour changer mon format de date en cliquant sur un bouton.
    Le problème c'est que je suis obligé après de double cliquer sur la cellule pour que mon format soit pris en compte.
    Je souhaite modifier le format date "jj/mm/aaaa" en format "jours-moi-année"
    (ex: 18/11/2010 ==> 18-nov.-10)
    La macro que m'a généré l'enregistreur est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Columns("C:C").Select
        Selection.NumberFormat = "[$-40C]d-mmm-yy;@"
    Si quelqu'un avait une idée,

    merci d'avance

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 517
    Points : 617
    Points
    617
    Par défaut
    salut

    je ne vois pas pourquoi la mise à jour ne se ferait pas !
    une première question, donc : dans quelle procédure évènementielle as-tu mis ton code ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 45
    Points : 26
    Points
    26
    Par défaut
    Salut,

    rien, le bouton affecté à cette macro, sert à deux choses, convertir le format date et puis ouvrir un userform
    voilà le code complet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub recherche()
    Columns("C:C").Select
    Selection.NumberFormat = "[$-40C]d-mmm-yy;@"
    UserForm.Show
    End Sub
    c'est quand même rudement embêtant, car j'ai une macro recherche date dans cet usf, qui me recherche les dates sous ce format et qui ne marche pas si c'est le format "jj/mm/aaaa"

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 517
    Points : 617
    Points
    617
    Par défaut
    fonctionne sans problèmes chez moi !
    et l'ouverture de ton userform n'a rien à y voir

    EDIT : je vois que tu as nommé ta macro "recherche", ce qui donne à penser qu'elle sert également à autre chose. Contient-elle d'autres instructions (et lesquelles, le cas échéant) ?
    mets également un DoEvents avant l'ouverture du UserForm

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 45
    Points : 26
    Points
    26
    Par défaut
    Ba ouais,

    je comprend pas mais c'est sacrément embétant

  6. #6
    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
    Salut.

    Peut-être une piste...

    Avant de modifier le format, tes cellules ne peuvent pas être en format TEXTE, car dans ce cas, le contenu de la cellule est considéré comme du texte et donc, n'est pas interprété comme une date => pas de changement de format et tu dois donc éditer chaque cellule.

    Si tu es sûr de n'avoir que dates (toutes au même format) dans tes cellules formatées en TEXTE, tu peux utiliser ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Recherche()
      Dim Tableau
      Dim i As Long
     
      Application.ScreenUpdating = False
      Range("c:c").NumberFormat = "[$-40C]d-mmm-yy;@"
      Tableau = Range("c:c")
      For i = 1 To UBound(Tableau)
        If Tableau(i, 1) <> "" Then Tableau(i, 1) = DateSerial(Right(Tableau(i, 1), 4), Mid(Tableau(i, 1), 4, 2), Left(Tableau(i, 1), 2))
      Next i
      Range("c:c") = Tableau
      Application.ScreenUpdating = True
      userform.Show
    End Sub
    en adaptant la plage et la conversion en fonction du format supposé de la date (ici jj/mm/aaaa)
    "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...
    ---------------

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 45
    Points : 26
    Points
    26
    Par défaut
    Merci de ta réponse pierre,

    j'ai contourné le problème en forçant l'ajout de la date depuis mon userform en format texte, c-à-d que maintenant excel voit ma date au format texte sans que ce soit des chiffres incompréhensibles (au format ex : 19-nov-10)...
    Je peux maintenant appliquer ma macro de recherche par date sans problème,
    Les dates sous excel c'est vraiment chiant!!!!, entre les différents types de format, plus les formats régionaux (anglosaxon, etc...), j'avais tout le temps des inversions jours mois.

    Je marque le post en résolu, merci à tous pour vos réponses

  8. #8
    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
    J'ajoute le lien vers le tuto de Didier Gonard sur le sujet.
    "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...
    ---------------

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

Discussions similaires

  1. [XL-2010] VBA Format Date - Excel en franglais
    Par mirmae dans le forum Excel
    Réponses: 5
    Dernier message: 19/11/2013, 22h49
  2. Changement format date excel
    Par romano54600 dans le forum Excel
    Réponses: 2
    Dernier message: 20/04/2007, 15h20
  3. Modification du format date de mes cellules excel
    Par largo9020 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/11/2006, 14h53
  4. Format date dans excel
    Par fmris dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/11/2006, 10h06
  5. [ADO.Net][VSTO][VBNet 2.0]Quel est format Date null Excell ?
    Par pat59 dans le forum Accès aux données
    Réponses: 4
    Dernier message: 30/03/2006, 11h27

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