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 :

Compter le nombre de colonnes


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 Compter le nombre de colonnes
    Bonjour Tout le monde
    Svp j'ai besoin d'aide
    J'ai 4 colonne dans DataGridView1
    Colonne A , Colonne B , Colonne C .. et Colonne D
    Je veux afficher dans la colonne D le nombre des matieres inferieur a 100 .. les colonnes A , B , C representent les matieres
    Comme exemple
    Colonne A = 100 .. Colonne B = 98 .. Colonne C = 75 alors s'affichera dans ma colonne D le nombre 2
    Colonne A = 50 .. Colonne B = 45 .. Colonne C = 75 alors s'affichera dans ma colonne D le nombre 3
    Colonne A = 110 .. Colonne B = 198 .. Colonne C = 135 alors s'affichera dans ma colonne D le nombre 0
    J'ai essayé comme ca mais malheureusement j'ai obtenu des faux resultats
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Dim Counta As Integer = 0
            For I As Integer = 0 To dgv1.Rows.Count - 1
                Counta += dgv1.Rows(I).Cells(0).Value < 100 Or dgv1.Rows(I).Cells(1).Value < 100 Or dgv1.Rows(I).Cells(2).Value < 100
                dgv1.Rows(I).Cells(3).Value = Counta
            Next
    Merci beaucoup d'avance pour l'aide
    Cordialement
    MADA

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 545
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 545
    Par défaut
    Je pense, à 1ère vue, que tu devrais transformer le += en simple = (sinon tu cumules d'une ligne sur l'autre)

  3. #3
    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
    Tu es en train de compter des booléens !
    Et en plus tu pars du principe que True vaux 1 alors que ce n'est pas le cas.
    Console.WriteLine(CInt(True)) affiche -1
    Normal que ça ne fonctionne pas...

    La réponse de umfred, qui fait la même erreur que toi, ne convient pas non plus car les tests vont s'arrêter sur le premier qui renvoie True
    Tu aura soit 0 soit -1.

    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
     Dim Counta As Integer
            For I As Integer = 0 To dgv1.Rows.Count - 1
                Counta = 0
                If  dgv1.Rows(I).Cells(0).Value < 100 Then
                    Counta += 1
                End If
     
                If  dgv1.Rows(I).Cells(1).Value < 100 Then
                    Counta += 1
                End If
     
                If  dgv1.Rows(I).Cells(3).Value < 100 Then
                    Counta += 1
                End If
     
                dgv1.Rows(I).Cells(3).Value = Counta
            Next

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 545
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 545
    Par défaut
    Arf, en effet, j'aurai dû mieux regarder

    En remplaçant les "Or" par des "+", on aura cependant ici la bonne valeur (en négatif, il suffirait de prendre la valeur absolue)

    Je l'aurai peut-être écrit avec l'opérateur ternaire IIf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim Counta As Integer = 0
    For I As Integer = 0 To dgv1.Rows.Count - 1
        Counta = IIf(dgv1.Rows(I).Cells(0).Value < 100,1,0) + IIf(dgv1.Rows(I).Cells(1).Value < 100,1,0) + IIf(dgv1.Rows(I).Cells(2).Value < 100,1,0)
        dgv1.Rows(I).Cells(3).Value = Counta
    Next
    Autre possibilité via LINQ
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim Counta As Integer = 0
    For I As Integer = 0 To dgv1.Rows.Count - 1
        Counta = {dgv1.Rows(I).Cells(0).Value, dgv1.Rows(I).Cells(1).Value, dgv1.Rows(I).Cells(2).Value}.Where(Function(a) a < 100).Count()
        dgv1.Rows(I).Cells(3).Value = Counta
    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
    Merci beaucoup popo pour l'aide et pour l'explication
    Tres gentil de votre part
    Maitenant ca fonctionne tres tres bien .. comme je veux voir et avoir
    Cordialement
    MADA

    Merci beaucoup Umfred pour l'aide et pour les deux codes qui fonctionnent et comptent exactement comme he veux avoir
    Tres gentil de votre part gentelman
    Cordialement
    MADA

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

Discussions similaires

  1. compter le nombre de colonne
    Par stéphanie123 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/05/2008, 13h55
  2. Compter le nombre de colonne dans une table
    Par Coin dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/12/2006, 16h03
  3. [MEGA DEBUTANT] Compter le nombre de colonne non vide
    Par drikse dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/09/2006, 10h59
  4. Compter le nombre de colonnes d'une table
    Par Lord_Jago dans le forum Requêtes
    Réponses: 4
    Dernier message: 26/07/2006, 11h44
  5. [SQL]Compter le nombre de colonne
    Par dumser1 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/02/2006, 09h53

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