Thema Datum  Von Nutzer Rating
Antwort
24.08.2017 21:28:16 Ben
NotSolved
24.08.2017 22:45:12 Gast83199
NotSolved
24.08.2017 23:37:49 Mackie
NotSolved
Blau Substraktion über mehrere Zellen
24.08.2017 23:58:39 Ben
NotSolved
25.08.2017 07:27:21 Gast93537
NotSolved
25.08.2017 09:19:07 Ben
NotSolved
25.08.2017 18:09:52 Ben
NotSolved
25.08.2017 18:15:48 Ben
NotSolved

Ansicht des Beitrags:
Von:
Ben
Datum:
24.08.2017 23:58:39
Views:
696
Rating: Antwort:
  Ja
Thema:
Substraktion über mehrere Zellen

Hallo,

das Anliegen ist lösbar:

Sub ReCalcUeberstanden()
    Dim rng As Range
    Dim rngAbgbH As Range, rngMon As Range
    Dim iMon As Integer
    For Each rng In UsedRange.Rows
        Set rngAbgbH = rng.Cells(1, 2) ' Abgebaute Überstunden
        If IsNumeric(rngAbgbH) Then
            For iMon = 1 To 12
                Set rngMon = rng.Cells(1, 2 + iMon)
                If rngAbgbH.Value >= rngMon.Value Then
                    rngAbgbH.Value = rngAbgbH.Value - rngMon.Value
                    rngMon.Value = 0
                Else
                    rngMon.Value = rngMon.Value - rngAbgbH.Value
                    rngAbgbH.Value = 0
                End If
                If rngMon.Value = 0 Then
                    rngMon.ClearContents
                End If
                If rngAbgbH.Value = 0 Then
                    rngAbgbH.ClearContents
                    Exit For
                End If
            Next
        End If
    Next
End Sub

Kurze Erläuterung:

Es werden alle Einträge Zeilenweise durchlaufen.

Der Name wird nicht ausgewertet. Die Auswertung beginnt in Spalte B. Solange hier ein Wert steht, werden die Monate (Spalte C bis N) durchlaufen. Wenn im Monats-Eintrag eine Zahl enthalten ist, wird dieser Wert um den Wert in Spalte B reduziert. Gleichzeitig wird der Wert in Spalte B ebenfalls korrigiert.

Das Ganze läuft solange, bis entweder alle 12 Monate durchlaufen sind oder in Spalte B ein Wert 0 aufweist.

Sobald in B oder C bis N ein Wert 0 enthalten ist, wird der Inhalt gelöscht.

Alternativ könnten auch die 0-Werte stehen gelassen und lediglich mit einer "Bedingten Formatierung" ausgeblendet werden:

Es wird angenommen, dass die Tabelle max. 4000 Einträge beinhalten kann:

Bedingung: =B1:N4000=0

Formatierung: Zahlenformat: ;;;

Info: Durch Zuweisen des Zahlenformats ";;;" wird der Inhalt ausgeblendet.

LG, Ben


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
24.08.2017 21:28:16 Ben
NotSolved
24.08.2017 22:45:12 Gast83199
NotSolved
24.08.2017 23:37:49 Mackie
NotSolved
Blau Substraktion über mehrere Zellen
24.08.2017 23:58:39 Ben
NotSolved
25.08.2017 07:27:21 Gast93537
NotSolved
25.08.2017 09:19:07 Ben
NotSolved
25.08.2017 18:09:52 Ben
NotSolved
25.08.2017 18:15:48 Ben
NotSolved