Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1148to1152
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
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

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
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!
Anzeige
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
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
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 :)

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige