Office: Monatsdatenspannen summieren

Helfe beim Thema Monatsdatenspannen summieren in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallöchen, Excel 2002 VB 6 ich hab da eine Datei, die mir automatisch die Stunden des Aktuellen Monats für jeden Mitarbeiter gibt. Könnt ihr... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Aylona, 25. Juni 2008.

  1. Aylona Neuer User

    Monatsdatenspannen summieren


    Hallöchen,

    Excel 2002
    VB 6

    ich hab da eine Datei, die mir automatisch die Stunden des Aktuellen Monats für jeden Mitarbeiter gibt.
    Könnt ihr mir Tips geben wie ich den Code umändern kann damit ich zu jedem Mitarbeiter die Summe der Stunden vom Januar bis zum aktuellen Monat erreiche?

    Wäre es auch möglich es so einzurichten, dass hinten (am Ende der Stunden für alle Mitarbeiter stehen die Summen der Stunden) die Spalte bei der Summe nullist, rausgelöscht wird?
    Ich habe das Problem dass die Summe immer auf einer anderen Spalte stehen kann, da es ja von den Mitarbeitern abhängig ist, und diese ja automatisch verändert werden sobalt ein neuer Mitarbeiter hinzukommt oder rausgenommen wird. In der Spalte nach der Summe steht allerdings auch noch etwas geschrieben.
    Wie kann ich dem Computer sagen er soll die Spalte rauslesen wo nichts drinnen ist da dann zwei zurück gehen und kontrollieren ob dort eine null eingetragen wurde um diese Zeile dann zu löschen?

    Ich stell mal den Code rein damit es etwas verständlicher ist, hoffe aber dass es nicht zu lang wird Monatsdatenspannen summieren :oops:

    Danke schon mal im vorraus

    Code:
    Dim currentColumn As Integer
    
    
    
    Sub Schaltfläche1_BeiKlick()
    
        ' alte werte löschen
        Dim bereich As Range
        
        letzteZeile = LetzteMonatsübersichtZeile()
        
        Set bereich = Range("C7:F" & letzteZeile)
        bereich.ClearContents
        
        ' alle mitarbeiter löschen
        Set bereich = Range(Cells(6, 7), Cells(letzteZeile, LetzteNamenSpalte))
        bereich.ClearContents
        
        Set bereich = Nothing
        
        ' aktuelle Spalte für den Mitarbeiter
        currentColumn = 7
        
        ' Verzeichnis in dem die Nachweise sind
        nachweiseVerzeichnis = "C:\temp\CHRISTINE\Nachweise\"
        
        ' aktuelles Jahr
        currentYear = Year(Date)
        
        ' aktuelles Verzeichnis
        currentDir = nachweiseVerzeichnis & currentYear
        
        ' alle Dateien in dem Verzeichnis durchgehen
        dateiName = Dir(currentDir & "\*.xls") 'Ersten Eintrag abrufen
        Do While dateiName <> "" 'Schleife beginnen
            ' NN.xls ignorieren
            If dateiName <> "NN.xls" Then
                ' mitarbeiter mappe öffnen
                Workbooks.Open (currentDir & "\" & dateiName)
                
                ' Werte auslesen
                MitarbeiterXlsAuslesen (dateiName)
                
                'nächste Spalte
                currentColumn = currentColumn + 1
                
                ' Mitarbeiter mappe wieder schliessen
                ActiveWorkbook.Close
                
            End If
            dateiName = Dir
        Loop 'Schleife beenden
        
        'Summe hinzufügen
        Summeerstellen
        
        
    End Sub
    
    Sub MitarbeiterXlsAuslesen(ByVal dateiName As String)
        With Tabelle1
        
        ' Überschrift hinzufügen
        .Cells(6, currentColumn).Value = Left$(dateiName, Len(dateiName) - 4)
        
        currentMonth = Month(Date)
        Dim curentMonthSheet As Workbook
        
        ' die mappe für den aktuellen monat finden
        For i = 1 To ActiveWorkbook.Sheets.Count
            sheetName = ActiveWorkbook.Sheets(i).Name
            If Val(sheetName) = currentMonth Then
                Set currentMonthSheet = ActiveWorkbook.Sheets(i)
                Exit For
            End If
        Next i
        
        ' Zeile für Zeile durchgehen
        For currentRow = 5 To 78
            
            With currentMonthSheet
            
            ' KST überprüfen (Spalte 40)
            Dim wert As Integer
            Dim kst As String
                    
            If .Cells(currentRow, 40) <> "" Then
                kst = .Cells(currentRow, 40)
                wert = .Cells(currentRow, 44)
                AddKST kst, wert
            End If
            
            ' Auftrag überprüfen (Spalte 41)
            Dim auftrag As String
                    
            If .Cells(currentRow, 41) <> "" Then
                auftrag = .Cells(currentRow, 41)
                wert = .Cells(currentRow, 44)
                AddAuftrag auftrag, wert
            End If
            
            
            ' NetzplanVrg überprüfen (Spalte 42/43)
            Dim netzplan As String
            Dim vrg As String
                    
            If .Cells(currentRow, 42) <Then> neuen eintrag erzeuegen
            If kstRow = 0 Then
                kstRow = LetzteMonatsübersichtZeile()
                .Cells(kstRow, 3).Value = kst
                .Cells(kstRow, currentColumn).Value = wert
            Else
                Dim alterWert As Integer
                alterWert = .Cells(kstRow, currentColumn).Value
                .Cells(kstRow, currentColumn).Value = alterWert + wert
            End If
    
        End With
    End Sub
    
    Sub AddAuftrag(ByVal auftrag As String, ByVal wert As Integer)
        Dim auftragRow As Integer
        auftragRow = 0
        With Tabelle1
            ' suchen des auftrags unter bereits eingetragenen
            For currentRow = 7 To LetzteMonatsübersichtZeile()
                If .Cells(currentRow, 4).Value = auftrag Then
                    auftragRow = currentRow
                    Exit For
                End If
            Next currentRow
            ' nichts gefunden -> neuen eintrag erzeuegen
            If auftragRow = 0 Then
                auftragRow = LetzteMonatsübersichtZeile()
                .Cells(auftragRow, 4).Value = auftrag
                .Cells(auftragRow, currentColumn).Value = wert
            Else
                Dim alterWert As Integer
                alterWert = .Cells(auftragRow, currentColumn).Value
                .Cells(auftragRow, currentColumn).Value = alterWert + wert
            End If
    
        End With
    End Sub
    Sub AddNetzplanVRG(ByVal netzplan As String, ByVal vrg As String, ByVal wert As Integer)
        Dim netzplanvrgRow As Integer
        netzplanvrgRow = 0
        With Tabelle1
            ' suchen des netzplan unter bereits eingetragenen
            For currentRow = 7 To LetzteMonatsübersichtZeile()
                If .Cells(currentRow, 5).Value = netzplan And .Cells(currentRow, 6).Value = vrg Then
                    netzplanvrgRow = currentRow
                    Exit For
                End If
            Next currentRow
            ' nichts gefunden -> neuen eintrag erzeuegen
            If netzplanvrgRow = 0 Then
                netzplanvrgRow = LetzteMonatsübersichtZeile()
                .Cells(netzplanvrgRow, 5).Value = netzplan
                .Cells(netzplanvrgRow, 6).Value = vrg
                .Cells(netzplanvrgRow, currentColumn).Value = wert
            Else
                Dim alterWert As Integer
                alterWert = .Cells(netzplanvrgRow, currentColumn).Value
                .Cells(netzplanvrgRow, currentColumn).Value = alterWert + wert
            End If
    
        End With
    End Sub
    Function LetzteMonatsübersichtZeile() As Integer
        currentRow = 7
        With Tabelle1
            kst = .Cells(currentRow, 3)
            auftrag = .Cells(currentRow, 4)
            netzplan = .Cells(currentRow, 5)
            Do While (kst <> "" Or auftrag <> "" Or netzplan <> "")
                currentRow = currentRow + 1
                kst = .Cells(currentRow, 3)
                auftrag = .Cells(currentRow, 4)
                netzplan = .Cells(currentRow, 5)
            Loop
        End With
        LetzteMonatsübersichtZeile = currentRow
    End Function
    
    Function LetzteNamenSpalte() As Integer
        currentCol = 7
        With Tabelle1
            benutzerName = .Cells(6, currentCol)
            Do While (benutzerName <> "")
                currentCol = currentCol + 1
                benutzerName = .Cells(6, currentCol)
            Loop
            LetzteNamenSpalte = currentCol
        End With
    End Function
    
    Sub Summeerstellen()
        summe = 0
        Dim letzteSpalte As Integer
        
        letzteSpalte = LetzteNamenSpalte()
     
        With Tabelle1
            ' Überschrift hinzufügen
            .Cells(6, letzteSpalte).Value = "Summe"
            .Cells(6, letzteSpalte).Font.Bold = True
            'durch die Zeilen gehen
            For currentRow = 7 To LetzteMonatsübersichtZeile() - 1
                'Spaltenwerte addieren
                For i = 7 To letzteSpalte
                    summe = summe + .Cells(currentRow, i)
                Next i
                'Summe eintragen
                .Cells(currentRow, letzteSpalte).Value = summe
                'Summe Null setzen
                summe = 0
            Next currentRow
        End With
    End Sub
    
     
    Aylona, 25. Juni 2008
    #1
  2. Aylona Neuer User
    Hallo nochmal,

    ich bin grad dabei diese Nulllöschgeschichte zu programmieren.
    Könnte mir vielleicht jemand sagen wo an diesem Programmierungsstück der Fehler liegt?

    Code:
    Sub Summeerstellen()
        summe = 0
        Dim letzteSpalte As Integer
        
        letzteSpalte = LetzteNamenSpalte()
     
        With Tabelle1
            ' Überschrift hinzufügen
            .Cells(6, letzteSpalte).Value = "Summe"
            .Cells(6, letzteSpalte).Font.Bold = True
            'durch die Zeilen gehen
            For currentRow = 7 To LetzteMonatsübersichtZeile() - 1
                'Spaltenwerte addieren
                For i = 7 To letzteSpalte
                    summe = summe + .Cells(currentRow, i)
                Next i
                'Summe eintragen
                .Cells(currentRow, letzteSpalte).Value = summe
                'Summe Null setzen
                summe = 0
            Next currentRow
            
            If letzteSpalte = 0 Then
            Set currentRow = currentCol
            currentRow.ClearContents
            
            If currentCol <> "" Then
            
        End If
            
        End
    End Sub
    Danke für alle die sich Zeit nehmen
     
    Aylona, 26. Juni 2008
    #2
Thema:

Monatsdatenspannen summieren

Die Seite wird geladen...
  1. Monatsdatenspannen summieren - Similar Threads - Monatsdatenspannen summieren

  2. Summieren an Hand der letzten x Datums Werte und mit weiteren Kriterien

    in Microsoft Excel Hilfe
    Summieren an Hand der letzten x Datums Werte und mit weiteren Kriterien: Schönen guten Abend, Wie kann man am besten Summieren mit mehreren Kriterien eines soll davon das Datum sein. So das vom Aktuellen Letzten Datums Wert aus gehent die letzten Bsp. 10 Werte...
  3. Spalte Summieren wenn Monat UND Jahr

    in Microsoft Excel Hilfe
    Spalte Summieren wenn Monat UND Jahr: Hallo Forum, ich scheitere an einem wie ich dachte recht einfachen Problem, aber vielleicht kann mir hier jemand helfen. Ich habe eine Spalte mit einem Datum, und eine Zweite mit einer Summe. Der...
  4. Summieren farbiger Zahlen anhand des Farbcodes ohne VBA

    in Microsoft Excel Hilfe
    Summieren farbiger Zahlen anhand des Farbcodes ohne VBA: Hallo liebes Forum, welche Formel muss ich eingeben, wenn ich farbige Ziffern (z.B. rot = Farbcode 3; grün = 4) addieren möchte. Danke im voraus für die schnelle Antwort Gruß mfkathie
  5. Arbeitszeit summieren mit bestimmter Regel

    in Microsoft Excel Hilfe
    Arbeitszeit summieren mit bestimmter Regel: Hallo Zusammen Ich habe folgende Situation: Es werden Pausen gemacht von 09:00 - 09:30 und 12:00 - 12:30. Jetzt habe ich eine Tabelle mit Startzeit (z.B. 07:00 Uhr) und Endzeit (z.B. 16:00Uhr)...
  6. Beträge nach Monat summieren

    in Microsoft Excel Hilfe
    Beträge nach Monat summieren: Hallo allerseits In Spalte A (Tabellenblatt 1) habe ich lauter Datumsangaben (Bsp: "Fr., 30.06.2023"). In Spalte B (Tabellenblatt 1) habe ich Umsätze an diesem Tag (Bsp: "CHF 210,00"). Nun...
  7. Summieren per Block über Datumsangabe

    in Microsoft Excel Hilfe
    Summieren per Block über Datumsangabe: Hallo zusammen, in der angehängten Datei, möchte ich über das Datum am ende des jeweiligen Tag, den Tagesbetrag summieren, eine Art Blockrechnung. Habe es probiert über die Funktion Summewenn +...
  8. Suche POs, zähle die Anzahl_NVE anhand der VAS Kennzeichen und summiere/sortiere die gesamten Treffe

    in Microsoft Excel Hilfe
    Suche POs, zähle die Anzahl_NVE anhand der VAS Kennzeichen und summiere/sortiere die gesamten Treffe: Moin zusammen, ich hätte da eine Aufgabe, die mich beschäftigt, aber ihr vielleicht eine Lösung habt. Ich komme da durch die Sortierungen nicht weiter. INDEX VERGLEICH bricht nach dem ersten...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden