Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1652to1656
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

Werte addieren und Zeile loeschen

Werte addieren und Zeile loeschen
06.11.2018 10:13:11
Sait
Beispieldatei:
https://www.herber.de/bbs/user/125170.xlsx
Hallo zusammen,
ich möchte in der Datei eigtl. nur doppelte Werte identifizieren, Werte addieren und dann die Zeile mit dem doppelten Wert wieder löschen.
Wenn in Spalte L (Hilfsspalte) doppelte Werte vorhanden, dann addiere Anzahl in Spalte E zusammen und lösche die doppelte Spalte.
Ich habe in der Suche einen Makro gefunden, der mir das ganze durchrechnet, aber da ich keine vertieften Kenntnisse habe, kann ich das Makro nicht optimal auf meine Datei anpassen.
Das Makro füge ich zur besseren Übersicht als Antwort anbei.
Besten Dank im voraus und viele Grüße!
Sait

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

Betreff
Datum
Anwender
Anzeige
AW: Werte addieren und Zeile loeschen
06.11.2018 10:15:18
Sait
Option Explicit
Sub Löschen()
Dim i As Long, j As Long
Dim lngS As Long ' die letzte belegte Spalte in Zeile 4
Dim lngZ As Long ' die letzte belegte Zeile in Spalte A
Dim dblS As Double
Dim rngA As Range
On Error GoTo Ende
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
With Worksheets("Tabelle1")
lngZ = .Cells(Rows.Count, 1).End(xlUp).Row
lngS = .Cells(4, Columns.Count).End(xlToLeft).Column
.Range(.Cells(4, 1), .Cells(lngZ, lngS)).Sort _
Key1:=.Cells(4, 1), Order1:=xlAscending, _
Header:=xlYes, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
.Range(.Cells(5, lngS + 2), .Cells(lngZ, lngS + 2)).FormulaLocal = "=Wenn(A5A4;ZÄHLENWENN(A: _
A;A5);0)"
For i = 5 To lngZ
If .Cells(i, lngS + 2) > 1 Then
If .Cells(i, 1) = .Cells(i + 1, 1) Then
For j = 2 To lngS
dblS = Application.WorksheetFunction.Sum(.Range(.Cells(i, j), .Cells(i + .Cells(i,  _
lngS + 2) - 1, j)))
If dblS > 0 Then
If Application.Count(.Range(.Cells(i, j), .Cells(i + .Cells(i, lngS + 2) - 1, j))) >  _
1 Then
.Cells(i, lngS + 1) = 1
If rngA Is Nothing Then
Set rngA = .Cells(i, j)
Else
Set rngA = Union(rngA, .Cells(i, j))
End If
End If
.Cells(i, j) = dblS
End If
Next j
End If
End If
Next i
.Range(.Cells(5, 1), .Cells(lngZ, lngS)).Interior.ColorIndex = xlNone
If Not rngA Is Nothing Then
rngA.Interior.ColorIndex = 3
End If
.Range(.Cells(4, 1), .Cells(lngZ, lngS)).RemoveDuplicates Columns:=1, Header:=xlYes
.Columns(lngS + 2).Clear
If Not rngA Is Nothing Then
lngZ = .Cells(Rows.Count, 1).End(xlUp).Row
lngS = .Cells(4, Columns.Count).End(xlToLeft).Column
.Range(.Cells(4, 1), .Cells(lngZ, lngS)).Sort _
Key1:=.Cells(4, lngS), Order1:=xlAscending, _
Header:=xlYes, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
Set rngA = Nothing
End If
End With
ActiveWindow.ScrollColumn = 1
ActiveWindow.ScrollRow = 1
Ende:
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
If Err Then MsgBox "Fehler: " & Err.Number & vbLf & vbLf & Err.Description
End Sub

Anzeige
AW: Werte addieren und Zeile loeschen
06.11.2018 10:38:11
Daniel
Hi
wenn du keine vertieften Makrokenntnisse hast, dann machst erstmal ohne Makro.
geht für deine Beispieltabelle so:
1. folgene Formel neben der hilfsspalte einfügen und bis runter kopieren
=Summewenn(M:M;M1;E:E)
2. die Spalte mit SummeWenn kopiern und an gleicher Stelle als Wert einfügen
3. auf die ganze Tabelle die Funktion DATEN - DATENTTOOLS - DUPLIKATE ENTFERNEN anwenden und die erste Hilfsspalte als Kriterium auswählen
4. die Summenspalte ggf nach Spalte E kopieren
5. Hilfspalten löschen.
das geht im Prinzip auch ohne die ersten Hilfsspalte, wenn du die Formel: =SummeWenns(E:E;A:A;A1;F:F;F1) verwendest und im Duplikate-Entfernen dann die Spalten A und F als Kriterium auswählst.
wenn das Funktioniert schreibst du dir selbst mit Hilfe des Recorders ein Makro, welches diese Schritte ausführt.
Ist meistens besser, als irgendwas im Internet gefundenes anzupassen.
Gruß Daniel
Anzeige
AW: Werte addieren und Zeile loeschen
06.11.2018 10:51:17
Sait
Hallo Daniel,
vielen Dank für deine Mühe! Der Lösungsweg scheint zu funktionieren :)
Ich werde mal gleich versuchen über den Makrorecorder das Makro aufzuzeichnen.
Gruß, Sait
AW: Werte addieren und Zeile loeschen
06.11.2018 13:32:37
Sait
So, habe jetzt das Makro für die Testdatei fertig gestellt.
Werde es mal gleich auch die richtige Datei anwenden und hoffe, dass es auch da funktioniert.
Folgend das Makro:
Sub addieren_u_loeschen()
' addieren_u_loeschen Makro
Range("M2").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=SUMIF(C[-1],RC[-1],C[-8])"
Range("M2").Select
Selection.AutoFill Destination:=Range("M2:M2000"), Type:=xlFillDefault
Range("M2:M2000").Select
'Selection.Copy
'Application.CutCopyMode = False
'Range("M2").Select
'Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveSheet.Range("$A$1:$M$2000").RemoveDuplicates Columns:=12, Header:= _
xlYes
Range("M2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("E2").Select
ActiveSheet.Paste
Columns("M:M").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("M1").Select
End Sub

Anzeige
AW: Werte addieren und Zeile loeschen
06.11.2018 14:48:01
Sait
So, habe jetzt das Makro für die Testdatei fertig gestellt.
Werde es mal gleich auch die richtige Datei anwenden und hoffe, dass es auch da funktioniert.
Folgend das Makro:
Sub addieren_u_loeschen()
' addieren_u_loeschen Makro
Range("M2").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=SUMIF(C[-1],RC[-1],C[-8])"
Range("M2").Select
Selection.AutoFill Destination:=Range("M2:M2000"), Type:=xlFillDefault
Range("M2:M2000").Select
'Selection.Copy
'Application.CutCopyMode = False
'Range("M2").Select
'Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveSheet.Range("$A$1:$M$2000").RemoveDuplicates Columns:=12, Header:= _
xlYes
Range("M2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("E2").Select
ActiveSheet.Paste
Columns("M:M").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("M1").Select
End Sub

Anzeige
AW: Werte addieren und Zeile loeschen
06.11.2018 14:53:06
Daniel
sieht ja schon mal brauchbar aus.
wenn man Makros mit dem Recorder erstellt, sollte man sich die Mühe machen, diese Seiten hier durchzuarbeiten und auf den aufgezeichneten Code anzuwenden.
es lohnt sich
https://www.online-excel.de/excel/singsel_vba.php?f=78
Gruß Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige