Datagrid addieren

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von vanitas-mundi.

    Datagrid addieren

    Hallo,

    Ich habe eine Datagrid mit mehreren Zeilen. Die Zeilenzahl ist abhängig von der Monatslänge in Spalte 1
    ich möchte gerne dass alle Zahlen in Spalte 9 (also .cells(8)) addiert werden.
    Leider habe ich es bisher nur geschafft, row(0) und row(1) miteinander zu addieren und das Ergebnis in Label57 auszugeben.

    Hier mal mein Code:

    VB.NET-Quellcode

    1. '---Spalte 8 addieren --- Bisher Zeile 1 und Zeile 2
    2. Label57.Text = Val(DataGridView1.Rows(0).Cells(8).Value) + _
    3. Val(DataGridView1.Rows(1).Cells(8).Value)


    Natürlich habe ich das Label57 so formatiert, dass das Ergebnis gerundet wird

    VB.NET-Quellcode

    1. If Label57.Text <> Int(Label57.Text) Then
    2. Label57.Text = Format(Label57.Text + 0.0, "###.##")
    3. End If

    Leider funktioniert dies nicht, wenn ich mir einen Wert aus der DB hole.

    z.B. Row(0) = 2,05
    Row(1) = 6,25 (DB-Wert)
    Ergebnis = 8,05

    Warum?

    Schon mal Danke im vorraus

    Gruß Nescafe

    Ungültige Konvertierung von der Zeichenfolge in Typ Double

    Danke für die Hilfe, leider funktioniert der Code nicht richtig.
    VB schreibt immer "Ungültige Konvertierung von der Zeichenfolge in Typ Double"

    Wenn ich den Code in string anstatt double umschreibe, rechnet VB zwar, jedoch nur die Zahlen vor dem Komma.
    Nachkommastellen werden nicht berücksichtigt.

    Weiß vielleicht noch jemand einen Rat? Habe bereits experimentiert, komme aber irgendwie nicht mehr weiter.

    Gruß

    Nescafe

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Nescafe“ ()

    VB.NET-Quellcode

    1. Dim s1 As Decimal = 0
    2. For Each r As DataGridViewRow In DataGridView1.Rows
    3. s1 += Val(r.Cells.Item(8).Value)
    4. Next r
    5. Label57.Text = s1


    Habe es nun geschafft. Jetzt summiert VB alle Zellen. Habe die dazugehörigen Label noch mit

    VB.NET-Quellcode

    1. cdec(Label27.Text)
    formatiert.

    Vielen Dank für den Lösungsvorschlag

    Gruß Nescafe

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Nescafe“ ()

    Hallo!

    Ungültige Konvertierung von der Zeichenfolge in Typ Double, sollte eigentlich
    nicht erscheinen, wenn deine Zellen ausschließlich Zahlen enthalten. Solltest
    du noch Zeichenfolgen in den Zellen haben, so musst du zuvor prüfen, ob es
    sich beim Zellenwert um eine Zahl handelt. Dies kannst du (wenn auch ein wenig
    stillos) mit IsNumeric heraus finden. Val dagegen würde ich nicht benutzen und
    sofern mich nicht alles täuscht, liefret val auch nur eine Ganzzahl wieder.