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 :

Simplifier un long code d'addition dans datagridview


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de MADA BLACK
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2015
    Messages
    268
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Décembre 2015
    Messages : 268
    Par défaut Simplifier un long code d'addition dans datagridview
    Bonjour tout le monde
    Svp j'ai besoin d'aide .. je veux simplifier ce code et le raccourcir
    Tous les 10 colonnes du Datagridview1 ont les noms ( Column1 - Column2 - Column3 - Column4 - Column5 ....etc .. Column10 )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            Dim TFields As Integer = 0
            For Each Row As DataGridViewRow In DataGridView1.Rows
                If IsNumeric(Row.Cells("Column1").Value IsNot DBNull.Value) AndAlso IsNumeric(Row.Cells("Column1").Value = 10) And IsNumeric(Row.Cells("Column2").Value IsNot DBNull.Value) AndAlso IsNumeric(Row.Cells("Column2").Value = 10) And IsNumeric(Row.Cells("Column3").Value IsNot DBNull.Value) AndAlso IsNumeric(Row.Cells("Column3").Value = 10) And IsNumeric(Row.Cells("Column4").Value IsNot DBNull.Value) AndAlso IsNumeric(Row.Cells("Column4").Value = 10) And IsNumeric(Row.Cells("Column5").Value IsNot DBNull.Value) AndAlso IsNumeric(Row.Cells("Column5").Value = 10) And IsNumeric(Row.Cells("Column6").Value IsNot DBNull.Value) AndAlso IsNumeric(Row.Cells("Column6").Value = 10) And IsNumeric(Row.Cells("Column7").Value IsNot DBNull.Value) AndAlso IsNumeric(Row.Cells("Column7").Value = 10) And IsNumeric(Row.Cells("Column8").Value IsNot DBNull.Value) AndAlso IsNumeric(Row.Cells("Column8").Value = 10) And IsNumeric(Row.Cells("Column9").Value IsNot DBNull.Value) AndAlso IsNumeric(Row.Cells("Column9").Value = 10) And IsNumeric(Row.Cells("Column10").Value IsNot DBNull.Value) AndAlso IsNumeric(Row.Cells("Column10").Value = 10) Then
                    TFields += Val(Row.Cells("Column1").Value) + Val(Row.Cells("Column2").Value) + Val(Row.Cells("Column3").Value) + Val(Row.Cells("Column4").Value) + Val(Row.Cells("Column5").Value) + Val(Row.Cells("Column6").Value) + Val(Row.Cells("Column7").Value) + Val(Row.Cells("Column8").Value) + Val(Row.Cells("Column9").Value) + Val(Row.Cells("Column10").Value)
                End If
            Next
            Me.TextBox1.Text = TFields.ToString()
    Merci beaucoup d'avance pour l'aide
    Cordialement
    MADA

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 972
    Par défaut
    Il faudrait déjà que tu expliques ce que tu cherches à faire parce que ce code est bourré d'illogisme.

    Déjà, le nommage !
    Quand tu devras revenir sur ce code dans quelques temps, tu va perdre un temps faut à comprendre.

    Ensuite, tu appelles IsNumeric uniquement sur des booléen.
    Donc tes IsNumericrenvoient tous True, et par conséquent ne servent pas à grand chose.
    En effet :
    Row.Cells("Column1").Value IsNot DBNull.Value renvoie un booléen.
    Row.Cells("Column1").Value = 10 renvoie un booléen.
    etc.

    Ensuite, tu ne teste que la valeur 10.
    Donc si tout vaut 10, il est inutile de relire ces données pour les additionner, autant rajouter 100 directement.

    Enfin, tu utilises Val, alors que ton test avec IsNumeric est sensé t'assurer que tu n'as que des nombres.

  3. #3
    Membre éclairé Avatar de MADA BLACK
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2015
    Messages
    268
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Décembre 2015
    Messages : 268
    Par défaut
    Bonjour popo
    Merci beaucoup pour l'intention d'aide
    En realite j'ai trouvé ce code au net .. mais ca fonctionne comme meme et me donne le nombre total des cellules avec 10 .. je veux le simplifier un peu si c'est possible
    Je veux simplement compter le nombre de cellules ayant le nombre 10 car il y'a des cellules ayant le autre nombre 5 ou 6 ou 7 .. moi je veux compter uniquement les cellules avec le nombre 10 .
    Merci encore popo
    Cordialement
    MADA

  4. #4
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 972
    Par défaut
    Citation Envoyé par MADA BLACK Voir le message
    En realite j'ai trouvé ce code au net .. mais ca fonctionne comme meme et me donne le nombre total des cellules avec 10
    Ce code fonctionne ! Ah bon ?
    Pour moi, ce code ne donne le nombre total des cellules avec 10.
    Il fait la somme de toutes les cellules et je suis même persuadé qu'il plante s'il y autre chose que des nombres dans ta grille.

    Essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim total As Integer = 0
    For Each Row As DataGridViewRow In DataGridView1.Rows
        total += Row.Cells.Cast(Of DataGridViewCell)() _
            .Select(Function(c) c.Value) _
            .Count(Function(v) Not IsNothing(v) AndAlso v.ToString() = "10")
    Next

  5. #5
    Membre éclairé Avatar de MADA BLACK
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2015
    Messages
    268
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Décembre 2015
    Messages : 268
    Par défaut
    Salut popo
    Non je n'ai aucune autre chose dans ma grille que des colonnes et des nombres ( 5 - 7 - 8 - 10 )
    Oui votre code fonctionne tres tres bien .. exactement comme je veux voir et avoir
    Tres gentil de votre part
    Je vous remercie beaucoup cher popo
    Cordialement
    MADA

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 31/12/2020, 07h21
  2. Réponses: 1
    Dernier message: 16/05/2012, 14h51
  3. Un petit probleme dans un long code
    Par Nikogram dans le forum Windows Forms
    Réponses: 7
    Dernier message: 03/11/2009, 19h09
  4. [VB.net] Exécuter code après ajout dans datagridview
    Par collaud_vb dans le forum Windows Forms
    Réponses: 1
    Dernier message: 27/09/2006, 11h45
  5. [VB.Net 05] Addition dans une colonne d'un DataGridView
    Par collaud_vb dans le forum Windows Forms
    Réponses: 13
    Dernier message: 26/09/2006, 16h53

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