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 :

Paramétrage du format d'affichage de cellules [Trucs & Astuces]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2007
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2007
    Messages : 218
    Par défaut Paramétrage du format d'affichage de cellules
    Bonjour,
    Comment, et surtout peut-on, paramétrer le format d'affichage d'une colonne ne contenant que des dates au format JJ/MM/AA ?
    Bien évidemment en VBA car cela est a appliquer sur une page créée sous VBA. Je veux éviter de devoir manipuler à chaque fois en faisant un clic-droit sur la colonne à modifier sur chaque page nouvellement créée.

    Merci par avance.
    A bientôt.

    Cynoq

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Par défaut
    Essayes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("MaFeuille").Columns(lMonNumerodeColonne).NumberFormatLocal = "jj/mm/aa;@"

  3. #3
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2007
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2007
    Messages : 218
    Par défaut
    Merci,
    A première vue je n'ai pas d'erreur de code mais rien ne se passe pour autant sur mes feuilles.

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Eternel problème du traitement des dates dans Excel...

    Excel interprète les dates quand on les tape dans la feuille.
    Par contre quand elles viennent d'un fichier texte ou d'un traitement VBA, l'interprétation ne se fait pas.

    Il en découle que, lors d'un traitement VBA, on devrait toujours utiliser un type date et jamais un type texte.

    Pour vérifier ce que contient une cellule, voici un petit truc.
    Dans un nouveau classeur, taper 1/1 en A1, valider et resélectionner cette cellule.
    Normalement, l'affichage doit être 01-Janv et la barre de formule doit afficher 1/01/2007 (peut varier en fonction des options régionales).
    Ouvrir VBE (l'éditeur VBA) et afficher la fenêtre "Immediate" (en anglais, je pense qu'elle s'appelle "Exécution" en français. Accès direct par Ctrl + G).
    Dans cette fenêtre, taper ? selection.value.
    Le résultat sera 1/01/2007, soit une valeur lisible de la date contenue dans la cellule.
    Toujours dans la fenêtre Immediate, taper maintenant ? selection.text.
    Le résultat sera 01-Janv, soit le contenu visible de la cellule.
    Enfin, taper ? selection.value2.
    Le résultat est 39083, soit la manière dont Excel stocke les dates.

    On voit donc que, si on veut qu'Excel traite les dates correctement, il faut lui envoyer une valeur de type date, c'est à dire, un nombre.
    Il faut donc toujours privilégier l'usage des fonctions DateSerial ou CDate lorsqu'on doit manipuler des dates en VBA.

    En résumé, ne jamais forcer le format des données qu'on envoie dans Excel mais envoyer un type date et formater les cellules pour que l'affichage se fasse correctement.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  5. #5
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2007
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2007
    Messages : 218
    Par défaut
    ok, mais j'ai trouvé une autre astuce.
    Comme mes cellules sont des copies de cellules, il me s'uffit à la base de dire que mes données de départ sont dans tel format et lors de la recopie, le format est conservé.
    Merci quand même à tous pour votre coup de main.
    Ca fait plaisir de se sentir épauler.

    A bientôt.

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

Discussions similaires

  1. Formater l'affichage d'une cellule
    Par BS_C3 dans le forum Composants
    Réponses: 8
    Dernier message: 28/01/2009, 19h27
  2. Formater l'affichage d'un fichier
    Par devdev2003 dans le forum Linux
    Réponses: 3
    Dernier message: 28/06/2005, 17h47
  3. Réponses: 9
    Dernier message: 17/03/2005, 17h02
  4. [CR8] Problème de Format d'affichage
    Par khabch dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 19/02/2004, 14h10
  5. [VB6] [Flexgrid] Format d'affichage des numériques
    Par yansolo dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 19/10/2002, 21h00

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