Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1616to1620
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Monate erkennen und Summe bilden

Monate erkennen und Summe bilden
04.04.2018 21:08:34
Michael
Hallo zusammen,
auch ich habe ein Problem:
Die wichtigste Spalte ist bei mir die ersten 2 Spalten mal, die man sich in etwa so vorstellen kann:
In A Materialnummern und in B Werte:
A B
Januar
123 100€
456 200€
789 300€
Februar
145 105€
236 123€
234 165€
etc.
Ich habe bereits ein makro geschrieben und möchte dies erweitern:
Das Makro soll in Spalte C in der letzten Reihe eines Monates die Summe der Werte aus Spalte B des Monates eintragen.
Also zum Beispiel soll es erkennen dass in Zeile 4 der Monat aufhört und in Spalte C dann die Summe (100+200+300) eintragen etc.
Dabei sind zwischen Januar und Februar etc. immer unterschiedlich viele Positionen enthalten.
Könnt ihr mir weiterhelfen?
Anbei mein makro, dass andere rechnungen zu dieser Tabelle enthält
Vielen Dank schonmal!

Sub Formel()
Dim LoLetzte As Long
Dim LoI As Long
With Worksheets("Tabelle3")
LoLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), _
.Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count)
For LoI = 1 To 110
If .Cells(LoI, 1)  "" Then
.Cells(LoI, 18).FormulaLocal = "=Wenn(IstZahl(A" & LoI & ");SVERWEIS(A" & LoI &  _
_
";Tabelle2!A:B;2;FALSCH);"""")"
.Cells(LoI, 19).FormulaLocal = "=Wenn(IstZahl(A" & LoI & ");J" & LoI & "*R" &   _
_
LoI & "/100;"""")"
End If
Next LoI
End With
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Monate erkennen und Summe bilden
04.04.2018 21:28:29
Robert
Hallo Michael,
falls es auch eine Formellösung sein darf:
=WENN(ODER(ISTTEXT(A3);A3="");SUMME($B$1:B2)-SUMME($C$1:C1);"")
in Zelle C2 eintragen und runterziehen.
Gruß
Robert
AW: Monate erkennen und Summe bilden
04.04.2018 21:48:22
Michael
Hallo Robert,
vielen Dank für deine Hilfe.
Allerdings verändert sich die Tabelle jede Woche sehr stark und enthält viele unterschiedliche Positionen je Monat. Deshalb soll es mit einem Makro gemacht werden. Außerdem soll auch immer nur die Summe des gesamten Monats angezeigt werden
Grüße
Michael
AW: Monate erkennen und Summe bilden
04.04.2018 22:29:15
Robert
Hallo Michael,
nun das Makro bildet die Summe des kompletten Monats jeweils in der Zeile des letzten Eintrages eines Monates. Voraussetzung ist natürlich, dass die Daten zu einem Monat immer untereinander stehen und die Materialnummern immer numerisch sind. Bei Änderungen der Daten in den Spalten A und B bräuchte auch nur die Formel aus C2 bis zur dann letzten Zeile runter kopiert werden. Falls Du das nicht per Hand sondern mit einem Makro machen willst:
Sub FormelAktualisieren()
Range("C2:C" & Rows.Count).ClearContents
Range("C2:C" & Range("A" & Rows.Count).End(xlUp).Row).Formula = "=IF(OR(ISTEXT(A3),A3=""""),SUM( _
$B$1:B2)-SUM($C$1:C1),"""")"
End Sub
Gruß
Robert
Anzeige
Nachtrag
05.04.2018 08:27:35
Robert
Wenn Du statt der Formel lieber die Werte in der Tabelle stehen hast kannst Du das Makro auch wie folgt erweitern. Ich habe das Makro auch noch leicht abgeändert für den Fall, dass Deine Materialnummern eventuell nicht rein numerisch sind und z. B. Bindestriche, Punkte oder sonstige Zeichen enthalten können. Zur Identifizierung der letzten Zeile eines Monates gehe ich jetzt davon aus, dass bei Beginn eines neuen Monats der Monatsname in Spalte A steht und die Spalte B leer ist. Es darf natürlich keine weiteren (Leer-)Zeilen mit einer leeren Spalte B geben:
Sub FormelAktualisieren()
Range("C2:C" & Rows.Count).ClearContents
With Range("C2:C" & Range("A" & Rows.Count).End(xlUp).Row)
.Formula = "=IF(B3="""",SUM($B$1:B2)-SUM($C$1:C1),"""")"
.Value = .Value
End With
End Sub

Gruß
Robert
Anzeige
AW: Nachtrag
05.04.2018 15:43:12
Michael
Hallo Robert, vielen Dank für deine Antworten! Das hat mir sehr geholfen.
Was muss ich schreiben, wenn ich möchte dass das Makro aufhört sobald 2 leere Zeilen in Folge kommen?
Da unter der Tabelle es weitergeht mit etwas anderem?
Vielen Dank dir schonmal!
AW: Nachtrag
05.04.2018 18:43:17
Robert
Hallo,
eine Beispieldatei wäre schon gut, so stellt man sich einen Tabellenaufbau vor, der dann nachher nicht stimmt und daher die Lösung nicht so richtig passt.
Ich gehe jetzt mal davon aus, dass die Daten in einem zusammenhängenden Bereich ab der Zelle A1 stehen. Das heißt, der Datenbereich ist durch die erste leere Spalte rechts davon und die erste leere Zeile unterhalb abgegrenzt. Darunter oder auch daneben (ab Spalte E) können nun auch noch Daten stehen. Dann könnte man nachstehendes Makro verwenden. Dabei ist offensichtlich eine Löschung eventuell bestehender alter Daten nicht mehr nötig.
Sub FormelAktualisieren()
Dim LZeile As Long
LZeile = Range("A1").CurrentRegion.Rows.Count
With Range("C2:C" & LZeile)
.Formula = "=IF(B3="""",SUM($B$1:B2)-SUM($C$1:C1),"""")"
.Value = .Value
End With
End Sub
Gruß
Robert
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige