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 :

NumberFormat : comment cacher les décimales pour les entiers ?


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    199
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 199
    Points : 58
    Points
    58
    Par défaut NumberFormat : comment cacher les décimales pour les entiers ?
    Bonjour,

    Je code une macro qui remplit une feuille Excel avec plein de nombres.
    Certains sont des entiers, d'autres des décimaux.

    Si j'applique aux cellules le NumberFormat (#,##0.00), cela m'affiche 2 décimales pour chaque nombre. Par exemple pour 5.440545, j'aurai 5.44. Mais pour 150, j'aurai 150.00.
    Or, je voudrai que pour un entier cela ne m'affiche pas les décimales.

    Est-ce possible ?

    Merci d'avance.

  2. #2
    Membre expérimenté
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 747
    Points : 1 332
    Points
    1 332
    Par défaut
    Bonjour,

    Oui, c'est possible

    par exemple,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    For i = 1 to 1000
    If isnumeric(Range("A" & i).value) then
    If Range("A" & i).value = Fix(Range("A" & i).value) then
    Range("A" & i).Numberformat = "#,##0"
    Else
    Range("A" & i).Numberformat = "#,##0.00"
    End If
    End If
    Next i

  3. #3
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    199
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 199
    Points : 58
    Points
    58
    Par défaut
    Bonjour et merci pour ta réponse.

    En fait cette solution me serait trop couteuse à mettre en place car ça impliquerait que je modifie mon code à chaque endroit où je remplis une cellule.

    J'avais justement commencé à faire un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vSheet.Cells(i, j).value = Application.WorksheetFunction.Round(myVal, 2)
    seulement sur les colonnes où je sais qu'il peut y avoir des décimales à afficher.

    Mais n'y a-t-il pas un Numberformat Custom qu'on pourrait appliquer à toute la feuille ? Sachant qu'idéalement je souhaiterai aussi qu'il y ait des séparateurs de milliers (je complique les choses, je sais ^^)

  4. #4
    Membre expérimenté
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 747
    Points : 1 332
    Points
    1 332
    Par défaut
    Re,

    bah, il y a bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Numberformat = "#,##0.??"
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Numberformat = "#,##0.##"
    mais la virgule qui traine n'est pas trés jolie

    Sinon je ne vois pas, personnellement

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/04/2015, 09h18
  2. Réponses: 1
    Dernier message: 29/03/2012, 21h27
  3. Réponses: 3
    Dernier message: 06/05/2009, 16h27

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