Programmation en VB6 - problème dans le code

magiabd -  
 magiabd -
Bonjour,

bonjour;
j'ai un code en vb qui calcule la somme d'une colonne MSFlexGrid et le voila:
Private Sub Command3_Click()
Dim total As Long, x As Long
total = 0
For x = 1 To MFG.Rows - 1 ' si pas d'entête de colonne mettre 0 à la place du 1
   MFG.Col = 2 ' mets ton numéro de colonne ( attention la première colonne est la colonne 0)
   MFG.Row = x
   If MFG.Text = "" Then Exit For ' si cellule vide on sort
   total = total + CSng(MFG.Text)
Next x
sommetxt.Text = total

End Sub


toujours il m'afiche 0 malgres dans ma colonne existe des valeurs.
s'il vous pouvez vous m'aider.
et merci d'avance

8 réponses

  1. Baloo
     
    Bonjour,

    Essaye ça

    Private Sub Command3_Click()
    Dim total As Long, x As Long
    total = 0
    For x = 1 To MFG.Rows - 1 ' si pas d'entête de colonne mettre 0 à la place du 1
       MFG.Col = 2 ' mets ton numéro de colonne ( attention la première colonne est la colonne 0)
       MFG.Row = x
       '
       'If MFG.Text = "" Then Exit For ' si cellule vide on sort
       'total = total + CSng(MFG.Text)
       '
       total=total + val(MFG.Text)
       '
    Next x
    sommetxt.Text = total
    
    End Sub
    0
  2. magiabd
     
    merci pour la réponse mais il affiche 4 alors dans ma colonne il ya 200 et 280;
    je sait pas d'ou vient le 4????
    0
  3. Baloo
     
    ça vient certainement du format d'ecriture des nombre
    val(200) -> 200
    val(2 00) -> 2 (avec un espace)
    val(2,80) -> 2
    val(2.80) -> 2.8
    0
  4. magiabd
     
    j'ai ajouter à ma colonne la valeur 125 il m'affiche 6!!!!
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. magiabd
     
    s'il vous plait comment je peux les corriger, car j'ai ecrit 200 et 280 et 125 sans espace
    0
  7. Baloo
     
    Essayons une autre syntaxe

    Private Sub Command3_Click()
    Dim total As Long, x As Long
    total = 0
    For x = 1 To MFG.Rows - 1 ' si pas d'entête de colonne mettre 0 à la place du 1
    total=total + Val(MFG.TextMatrix(x, 2)
    Next x
    sommetxt.Text = total
    End Sub
    0
  8. magiabd
     
    toujours il m'affiche 6!!!!!!!!!!!!!!!!!!!!!!!!
    0
  9. magiabd
     
    ca marche bien maintenant quand j'ai essayé de remplacer la colonne par 3!!!
    Private Sub Command3_Click()
    Dim total As Long, x As Long
    total = 0
    For x = 1 To MFG.Rows - 1 ' si pas d'entête de colonne mettre 0 à la place du 1
    total=total + Val(MFG.TextMatrix(x,3) <-------------------------------------
    Next x
    sommetxt.Text = total
    End Sub

    merci bien c tres gentil d'avoir m'aider
    0