Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Doppelte Einträge summieren + löschen

Doppelte Einträge summieren + löschen
ben
Hallo zusammen,
ich habe eine Excel Liste mit versch. Einträgen, bei denen in der Spalte C (ID Nummer) einige Einträge doppelt sind. Diese doppelten Einträge werden per VBA Code gelöscht.
Jetzt sollen aber die Mengen in Spalte E der gelöschten Einträge aufsummiert werden.
Bsp.: alle doppelten Einträge mit der ID Nummer ...16 werden gelöscht. Die ID Nummer ...16 kommt 3 mal vor, mit den Mengen 1,3 und 3. Am Ende soll also die ID Nummer ...16 nur noch einmal in der Liste vorkommen mit der aufsummierten Menge 7 in Spalte E.
Anbei eine Beispiel Datei mit dem bereits existerien VBA Code für die Löschung doppelter Einträge.
Danke für eure Hilfe!
Gruß Ben
Anzeige

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Doppelte Einträge summieren + löschen
12.04.2010 21:02:46
ben
Kann die Beispiel Datei leider nicht hochladen. Es kommt eine Fehlermeldung, dass die Datei das falsche Format hätte. Ist aber eine ganz normale Exceldatei!?
AW: Doppelte Einträge summieren + löschen
12.04.2010 21:15:10
Oberschlumpf
Hi Ben
Vielleicht liegt es auch daran, dass die Datei Leerzeichen im Namen hat oder sie sich zu tief in der Verzeichnishierarchie befindet.
Speicher deine Datei doch mal direkt auf C:\ oder D:\ oder oder ...und entferne Leerzeichen aus dem Namen, wenn ich mit Vermutung(en) recht habe.
Ciao
Thorsten
Anzeige
AW: Doppelte Einträge summieren + löschen
12.04.2010 21:21:28
ben
Hab ich versucht. Geht leider trotzdem nicht hochzuladen.
Kann mir jmd. auch ohne Beispiel Datei bei meinem Problem helfen!?!?!?
Danke!
AW: Doppelte Einträge summieren + löschen
12.04.2010 21:24:28
Oberschlumpf
hmm...dann erstell doch ne neue Bsp-Datei und versuch es noch mal...zumindest ich kann mit nur deiner beschreibung nich soo viel anfangen....was natürlich auch an mir liegen kann
Anzeige
nachtrag
12.04.2010 21:25:27
Oberschlumpf
ich hab kein prob mit bsp-datei-upload....kann jede datei hier zeigen...egal ob xls, jpg, zip, usw
AW: nachtrag
12.04.2010 21:32:53
Oberschlumpf
arghh...nein...hilft nich :)
wieso gibst du als excel-version 2003 an und verschickst dann ne datei im excel-2007-format?
wie auch immer...ich hab kein excel 2007
Anzeige
ich bin raus, weil...
12.04.2010 21:40:58
Oberschlumpf
...tja...mein Excel XP kennt die Methode
.RemoveDuplicates
leider noch nicht :)
Sorry, vielleicht kann wer anders mit Excel 2007 helfen.
Ciao
Thorsten
Anzeige
AW: ich bin raus, weil...
12.04.2010 21:57:03
ben
Das ganze soll unter Office 2003 laufen können! Muss die Datei aber leider unter Office 2007 erstellen.
Kann mir trotzdem jmd. helfen!?!?
Zuerst die Mengen der identischen IDs summieren (z.B. ID ...16: 1+2+12 = 15) und dann die Dupklikate löschen! Am Ende sollte die ID ...16 einmal vorkommen mit der Menge 15.
Beispiel Datei:
https://www.herber.de/bbs/user/69034.xls
Danke!!!
Anzeige
AW: ich bin raus, weil...
12.04.2010 22:18:41
Josef

Hallo Ben,
das sollte es tun.

Private Sub CommandButton1_Click()
  Dim rng As Range, lngLast As Long
  
  lngLast = Application.Max(2, Cells(Rows.Count, 3).End(xlUp).Row)
  
  Columns(6).Insert
  
  Range(Cells(2, 6), Cells(lngLast, 6)).Formula = _
    "=IF(COUNTIF($C$2:C2,C2)=1,SUMIF($C$2:$C$" & lngLast & ",C2,$E$2:$E$" & lngLast & "),NA())"
  
  Range(Cells(2, 6), Cells(lngLast, 6)) = Range(Cells(2, 6), Cells(lngLast, 6)).Value
  
  On Error Resume Next
  Set rng = Columns(6).SpecialCells(xlCellTypeConstants, xlErrors)
  On Error GoTo 0
  
  If Not rng Is Nothing Then rng.EntireRow.Delete
  
  Range(Cells(2, 5), Cells(lngLast, 5)) = Range(Cells(2, 6), Cells(lngLast, 6)).Value
  Columns(6).Delete
  
  Set rng = Nothing
End Sub

Gruß Sepp

Anzeige
AW: nachtrag
12.04.2010 22:09:45
Peter
Hallo ben,
so könnte es funktionieren:
Option Explicit
Public Sub Zusammenfassen()
Dim WkSh       As Worksheet ' das zu bearbeitende Tabellenblatt
Dim lLetzte    As Long      ' die letzte belegte Zeile in Spalte C
Dim lZeile     As Long      ' For/Next Schleifen-Index - die Zeile
   Application.ScreenUpdating = False
   Set WkSh = ThisWorkbook.Worksheets("Tabelle1")
   lLetzte = WkSh.Cells(Rows.Count, 3).End(xlUp).Row
   
   With WkSh
' die Daten gemäß der Spalte A aufsteigend sortieren
      WkSh.Range("C2:E" & lLetzte).Sort _
         Key1:=WkSh.Range("C2"), Order1:=xlAscending, _
         Header:=xlGuess, OrderCustom:=1, _
         MatchCase:=False, Orientation:=xlTopToBottom
' doppelte ermitteln und zusammenführen
      lLetzte = WkSh.Cells(Rows.Count, 3).End(xlUp).Row
      For lZeile = lLetzte To 2 Step -1
         If WkSh.Cells(lZeile, 3).Value = WkSh.Cells(lZeile - 1, 3).Value Then
            WkSh.Cells(lZeile - 1, 5).Value = WkSh.Cells(lZeile - 1, 5).Value + _
            WkSh.Cells(lZeile, 5).Value
            WkSh.Rows(lZeile).Delete Shift:=xlUp
         End If
      Next lZeile
   End With
   
   Application.ScreenUpdating = True
End Sub
Gruß Peter
Anzeige
AW: nachtrag
12.04.2010 22:33:29
ben
Klasse!
Danke funktioniert :)
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige