Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Vergleichen und löschen

Forumthread: Vergleichen und löschen

Vergleichen und löschen
poppi1984
Hallo Leute!
Ich habe ein paar Daten (ca.30.000) die bearbeitet werden müssten (am besten per VBA)
Es können die gleichen werte in (Spalte A und B) in mehreren Zeilen stehen. Es soll aber nur der Wert in Spalte C (der größte) stehen bleiben.
Hier mal ein Beispiel mit einem Auschnitt.
https://www.herber.de/bbs/user/76953.xls
Ich hoffe ihr könnt mir helfen
ciao ciao Jan
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Vergleichen und löschen
11.10.2011 11:09:52
Rudi
Hallo,
nach A, B und C absteigend sortieren
E1: =(A2=A1)*(B2=B1) und runter kopieren. E nach 1 Filtern und Zeilen löschen. Fertig.
Gruß
Rudi
AW: Vergleichen und löschen
11.10.2011 11:23:03
Josef

Hallo Jan,
probiere diesen Code.

' **********************************************************************
' Modul: Module1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub delDouble()
  Dim lngLast As Long
  
  On Error GoTo ErrExit
  tranquilize
  
  With ActiveSheet
    lngLast = .Cells(.Rows.Count, 1).End(xlUp).Row
    .Columns(1).Insert
    .Cells(1, 1) = "Temp"
    .Cells(2, 1).FormulaArray = "=(D2=MAX(IF(($B$2:$B$" & lngLast & "=B2)*($C$2:$C$" & lngLast & "=C2),$D$2:$D$" & lngLast & ")))*1"
    .Range(.Cells(2, 1), .Cells(lngLast, 1)).FillDown
    .Calculate
    .Range(.Cells(2, 1), .Cells(lngLast, 1)) = .Range(.Cells(2, 1), .Cells(lngLast, 1)).Value
    .Range("A1").CurrentRegion.AutoFilter Field:=1, Criteria1:="0"
    .Range("A2:A" & lngLast).SpecialCells(xlCellTypeVisible).EntireRow.Delete
    .Range("A1").CurrentRegion.AutoFilter
    .Columns(1).Delete
  End With
  
  ErrExit:
  tranquilize True
End Sub


Public Sub tranquilize(Optional ByVal Modus As Boolean = False)
  Static lngCalc As Long
  
  With Application
    .ScreenUpdating = Modus
    .EnableEvents = Modus
    .DisplayAlerts = Modus
    .EnableCancelKey = IIf(Modus, 1, 0)
    If Not Modus Then lngCalc = .Calculation
    If Modus And lngCalc = 0 Then lngCalc = -4105
    .Calculation = IIf(Modus, lngCalc, -4135)
    .Cursor = IIf(Modus, -4143, 2)
  End With
  
  If Modus Then
    With Err
      If .Number <> 0 Then
        MsgBox IIf(Erl, vbLf & "Fehler in Zeile:" & vbTab & Erl & vbLf & vbLf, "") & _
          "Fehlernummer:" & vbTab & .Number & vbLf & vbLf & "Beschreibung:" & vbLf & _
          .Description, vbExclamation, "Fehler"
      End If
      .Clear
    End With
  End If
End Sub



« Gruß Sepp »

Anzeige
AW: Vergleichen und löschen
11.10.2011 12:43:23
poppi1984
Schon Erledigt DANKE!!!!!
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige