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

VB.NET Discussion :

Format de cellule dans un DataGridView


Sujet :

VB.NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2010
    Messages : 46
    Par défaut Format de cellule dans un DataGridView
    Bonjour,

    Je vous explique mon petit soucis :

    Je remplis un DataGridView avec une table d'un dataset.
    Cette même table alimentée par une requête SQL sur une base Access.

    Dans ma requête, j’effectue un SUM (entre autre).

    Tout fonctionne nickel sauf que pour je ne sais quelle raison, Access transforme mes valeurs numérique qui sont dans ma BD (avec 2 chiffres après la virgule) et une valeur du style 145,24 devient 145,2399999999569.

    Là où ça m'embête c'est que dans ma datagrid j'ai du coup un affichage bidon et je voudrais bien pouvoir arrondir cette valeur à 2 chiffres après la virgule. (FormatNumber() ?) Need help please.

    Par ailleurs, si quelqu'un sait pourquoi access modifie ces valeurs de son propre chef ça m'intéresse aussi...

    Bonne journée

  2. #2
    Membre actif Avatar de 2h15Crew
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 79
    Par défaut
    Salut,

    Je ne comprends pas ton problème, tu connais déjà la commande pour formater le nombre à ton souhait...

    Imaginons que ton DataGridView s'appelle DataGridView1 (original non ?)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FormatNumber(DataGridView1 .Rows(i).Cells(j).Value, 2)
    Le premier paramètre étant le nombre à formater, le second étant le nombre de chiffres désirés après la virgule

  3. #3
    Membre éclairé Avatar de hugoclo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 615
    Par défaut
    Pour moi le Pb viens de ta base access.
    type de données : Numerique
    taille du champs : Réel double
    format : fixe
    decimale : 2

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2010
    Messages : 46
    Par défaut
    @ hugoclo : Je n'avais pas précisé le format fixe pour le champs Montant mais cela ne change rien de toute manière. Le soucis viens bien du champs de totalisation avec le mot clé "SUM" dans ma requête.

    @ 2h15Crew : Disons que je cherche plutôt un moyen de spécifier le format d'une colonne entière plutôt qu'une cellule.

    Ce qui m'arrangerait c'est que le SUM ne me donne que 2 chiffres après la virgule (je me demande où il vas les chercher vus que je n'ai que 2 chiffres dans l'ensemble de mes montants)
    Ou alors vraiment pouvoir spécifier que la colonne entière du datagrid est au format avec 2 chiffres après la virgule.

  5. #5
    Membre actif Avatar de 2h15Crew
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 79
    Par défaut
    Citation Envoyé par jojo1284 Voir le message
    @ 2h15Crew : Disons que je cherche plutôt un moyen de spécifier le format d'une colonne entière plutôt qu'une cellule.
    Je ne pense pas que tu puisses appliquer le formatage à une colonne entière...
    Je pense qu'à part faire deux boucles For imbriquées pour parcourir l'intégralité de ton DataGridView (avec des If pour formater seulement les cellules que tu veux), tu n'as pas d'autre solution. J'espère que je me trompe =)

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2010
    Messages : 46
    Par défaut
    Citation Envoyé par 2h15Crew Voir le message
    Je ne pense pas que tu puisses appliquer le formatage à une colonne entière...
    Je pense qu'à part faire deux boucles For imbriquées pour parcourir l'intégralité de ton DataGridView (avec des If pour formater seulement les cellules que tu veux), tu n'as pas d'autre solution. J'espère que je me trompe =)
    Merci, je pensais à la même chose mais c'est quand même bien moche comme solution pour un SUM qui m'invente des nouveaux montants à 10 chiffres après la virgule ! A la limite j'aurais des montants avec 10 chiffres je voudrais bien le comprendre mais toutes les valeurs qu'il additionne sont à 2 chiffres ! vraiment étrange

  7. #7
    Membre actif Avatar de 2h15Crew
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 79
    Par défaut
    Sinon, tu peux essayer d'encapsuler le SUM de ta requête dans une conversion de types du genre CInt.
    Je ne connais pas du tout Access donc je ne peux pas vraiment t'aider sur ce point là mais à mon avis, il y a une solution dans ces eaux là =)

  8. #8
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Peut-être comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataGridView1 .Columns(i).DefaultCellStyle.Format = "n2"
    ;

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2010
    Messages : 46
    Par défaut
    Citation Envoyé par Graffito Voir le message
    Peut-être comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataGridView1 .Columns(i).DefaultCellStyle.Format = "n2"
    ;
    Désolé pour le retard mais fort occupé sur d'autres problèmes ...
    En tout cas c'est génial !! Un tout grand merci. Je viens d'essayer et c'est nickel !

    Je me demande tout de même d'où viennent ces chiffres mais bon, soit...

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

Discussions similaires

  1. format d'affichage dans un DataGridview
    Par solitude dans le forum Windows Forms
    Réponses: 1
    Dernier message: 12/11/2008, 15h42
  2. Format de cellules dans un DataGridView
    Par l0quito dans le forum VB.NET
    Réponses: 2
    Dernier message: 25/08/2008, 13h11
  3. Fusion de cellules dans un DataGridView
    Par ZuoYue dans le forum C#
    Réponses: 1
    Dernier message: 08/11/2007, 18h03
  4. Réponses: 3
    Dernier message: 19/08/2007, 02h04
  5. Contrôle du format des cellules dans Excel
    Par Flashget dans le forum MATLAB
    Réponses: 4
    Dernier message: 20/03/2007, 14h37

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