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 :

calcule au datagridview


Sujet :

VB.NET

  1. #1
    Membre très actif
    Inscrit en
    Septembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2010
    Messages : 168
    Par défaut calcule au datagridview
    Bonjour ,
    j'ai fait le calcule au niveau des cellules de datagridview quand je tape un nombre la calcule ça marche très bien mais quand je le supprime il me donne pas le calcule exacte exemple :
    voici la 1ére image de 1ére calcule est ça marche très bien
    mais quand je supprime la case de remise il me donne des erreur au calcule
    voici la 2ème photo

    voici le code
    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
    Try
                If DataGridView1.IsCurrentCellDirty Then
                    DataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit)
                End If
                Dim i As Integer = Me.DataGridView1.CurrentRow.Index
                If Not IsDBNull(Me.DataGridView1.Rows(i).Cells("DET_DEV_REMISE").Value) Then
                    Dim PUNET As Double
                    Dim remise As Double
                    remise = (100 - Val(Me.DataGridView1.Rows(i).Cells("DET_DEV_REMISE").Value)) / 100
                    PUNET = Val(Me.DataGridView1.Rows(i).Cells("DET_DEV_PUHT").Value) * remise
                    Me.DataGridView1.Rows(i).Cells("DET_DEV_PUNET").Value = Math.Round(PUNET, 2)
                    Dim MONT_HT As Double
                    MONT_HT = Val(Me.DataGridView1.Rows(i).Cells("DET_DEV_QTE").Value) * Val(Me.DataGridView1.Rows(i).Cells("DET_DEV_PUNET").Value)
                    Me.DataGridView1.Rows(i).Cells("DET_DEV_MONT").Value = Math.Round(MONT_HT, 2)
                End If
            Catch ex As Exception
                MsgBox("Exception :" & ex.Message)
            End Try
    Merci d'avance

  2. #2
    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
    Il me semble qu'il faudrait faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim remise As Double = 0
    If Not IsDBNull(Me.DataGridView1.Rows(i).Cells("DET_DEV_REMISE").Value)
       remise = (100 - Val(Me.DataGridView1.Rows(i).Cells
                            ("DET_DEV_REMISE").Value)) / 100;
    

    Puis, qu'il y ait remise ou non, calculer PUNET MONTHT.

  3. #3
    Membre très actif
    Inscrit en
    Septembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2010
    Messages : 168
    Par défaut
    merci Graffito
    mais il reste le meme problème mais une petite remarque la cellule remise et vide il me donne pas le calcule exacte mais quand je tappe un espace il me fait le calcule

    merci d'avance

  4. #4
    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
    De quel type est la colonne (int, string, float) ?

    Si c'est un string, il faut faire au moins un TryParse() pour vérifier si la valeur est correcte. Si ce n'est pas le cas, il faudra soit considérer 0% de remise, soit mettre les cellules MONTANT et PUNET à DBNull.

  5. #5
    Membre très actif
    Inscrit en
    Septembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2010
    Messages : 168
    Par défaut
    OK merci beaucoup Graffito

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 700
    Par défaut
    Bonsoir,
    a mon avis, il faudrait traiter le Else, genre :
    si la remise n'est pas nulle
    traitement
    Else
    PUNET = PUHT

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

Discussions similaires

  1. Calcule cellule datagridview
    Par Guyome41 dans le forum VB.NET
    Réponses: 1
    Dernier message: 29/11/2012, 17h17
  2. Calcul entre cellules d’un datagridview
    Par kgb1917 dans le forum VB.NET
    Réponses: 1
    Dernier message: 23/04/2008, 21h02
  3. Champs référence et calculé dans un datagridview
    Par amireve dans le forum Débuter
    Réponses: 1
    Dernier message: 24/03/2008, 12h07
  4. [VB.NET]Calculer une somme dans un DataGridView
    Par pat59 dans le forum Windows Forms
    Réponses: 17
    Dernier message: 09/11/2006, 14h36
  5. [VB.NET] Calculs dans une colonne d'un datagridview
    Par boulete dans le forum Windows Forms
    Réponses: 3
    Dernier message: 31/03/2006, 15h11

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