dynamische Summenformel an Excel übergeben

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von DavidK.

    dynamische Summenformel an Excel übergeben

    Guten Morgen zusammen,

    ich habe ein Problem. Ich programmiere derzeit ein VB Prog mit dem ich in Excel einen Jahreskalender für eine Zeiterfassung erstelle. Nun möchte ich nach jeder Woche die Wochenstunden zusammenzählen. Problem dabei ist, dass es immer unterschiedliche Reihen sind die addiert werden müssen. Daher meine Frage gibt es irgendwie die Möglichkeit, dass ich mir vorher die Reihenzahlen berechne und diese in eine Summenformel schreibe? Also =SUMME($C$Anfang;$C$Ende). Ich möchte ansich nur, dass diese Formel in einer Zelle der Gesamtwochenstunden steht, weil die eigentlichen Wochenstunden erst nach dem erstellen eingetragen werden, daher kann ich diese nicht direkt berechnen. Es wäre super wenn mir einer von euch helfen könnte. Eine kleine weitere Frage habe ich noch. Weiß jemand von euch reinzufällig wie man eine Grafik aus einer VB Form in ein Excelarbeitsblatt kopieren kann? Vielen dank schon mal im vorraus für eure Hilfe.

    Viele Grüße

    David!

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

    Wenn es Dir pro Tabellenblatt um die letzte Zeile geht, könnte es so klappen:

    VB.NET-Quellcode

    1. Dim objWks As Worksheet
    2. Dim objDataRange As Range
    3. Dim Zeilen As Long
    4. Set objWks = ActiveWorkbook.Worksheets(Tabelle1)
    5. Set objDataRange = GetDataRange(objWks)
    6. Zeilen = objDataRange.Rows.Count


    Wenn Du Die Anzahl beschriebener Zellen pro einzelner Spalte brauchst geht das aber nicht.

    Was brauchst Du?
    Wenn du das Datum in Spalte B hast (-> 2. Spalte), die zu summierenden Stunden in Spalte C (-> 3. Spalte) und die Summe in Spalte D (-> 4. Spalte) stehen soll, müsste es so funktionieren:

    VB.NET-Quellcode

    1. Dim letzteZeile As Integer, Anfang As Integer, Ende As Integer
    2. With Blatt 'schreibe anstelle von Blatt deine Tabellenblatt(=Worksheet)-Variable
    3. letzteZeile = Blatt.Range("A1").SpecialCells(xlCellTypeLastCell).Row
    4. Anfang = 2
    5. For i = 2 To letzteZeile
    6. If Weekday(.Cells(i, 2)) = 2 Then
    7. 'Datum ist ein Montag
    8. Anfang = i
    9. ElseIf Weekday(.Cells(i, 2)) = 1 Then
    10. 'Datum ist ein Sonntag
    11. Ende = i
    12. .Cells(i, 4).FormulaR1C1 = "=SUM(R" & Anfang & "C3:R" & Ende & "C3)"
    13. End If
    14. Next
    15. End With
    Super so läufts perfekt. Besten dank für die Antwort.

    Hat vll noch jemand nen Tipp für mich bezüglich meiner zweiten Frage zu den Bildern? Ich möchte aus einer VB Form eine PictureBox in ein ExcelSheet kopieren. Besten dank schon mal für eure Hilfe...

    Grüße!