Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1176to1180
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

Zellen vergleichen, doppelte löschen

Zellen vergleichen, doppelte löschen
Paul
Hallo!
Ich habe folgendes Problem. In meinem excel file gibt es folgende spalten, B C D E F. Ich möchte jetzt das die einträge von B und D einer Zeile mit den aller Zeilen verglichen werden.
Stimmen beide gleichzeitig mit einer anderen Zeile überein, soll nachgeschaut werden, welche Zeile in Spalte C die höhere Nummer hat. Die Zeile mit der höchsten Nummer soll beibehalten werden, die mit den niedrigeren Nummern gelöscht werden.
Die inhalte in Spalte E und F der jeweiligen zeile sollen mit gelöscht werden wenn die Zeile nicht die höchste Nummer in Spalte C hat.
Dieses Makro habe ich schon hier im forum gefunden, dass hat mir sehr weiter geholfen. Doch da wird nur auf Spalte B, C und D geachtet und Spalte E und F werden nich berücksichtigt. Sub löschen() Dim tx As String, tx2 As String Dim i As Long, j As Long, k As Long, laR As Long Application.ScreenUpdating = False laR = Cells(Rows.Count, 2).End(xlUp).Row For i = 1 To laR If Cells(i, 3).Interior.ColorIndex 45 Then tx = Cells(i, 2).Value tx2 = Cells(i, 4).Value For j = i + 1 To laR + 1 If Cells(j, 2).Value = tx Then If Cells(j, 4).Value = tx2 Then If Cells(i, 3).Value Ausgangssituation ( Spalte B - C - D)
HUGO 24 OTTO
HUGO 30 KARL
HUGO 36 WILLI
HUGO 22 HANS
HUGO 28 PAUL
HUGO 34 SÖNKE
HUGO 40 OTTO
HUGO 21 KARL
HUGO 27 WILLI
HUGO 33 HANS
HUGO 39 PAUL
HUGO 25 WERNER
HUGO 31 OTTO
HUGO 37 KARL
HUGO 26 WILLI
HUGO 32 HANS
HUGO 38 PAUL
HUGO 23 EUGEN
HUGO 29 EUGEN
HUGO 35 KARL
Nach Durchlauf des Makros bleiben die nachstehenden Zeilen übrig.
HUGO 36 WILLI
HUGO 34 SÖNKE
HUGO 40 OTTO
HUGO 33 HANS
HUGO 39 PAUL
HUGO 25 WERNER
HUGO 37 KARL
HUGO 29 EUGEN
Das ist soweit gut. Meine Frage ist jetzt, wie erweitere ich das makro, das es auch spalte E und F mit löscht und verschiebt?
Ausgangssituation ( Spalte B - C - D - E - F)
HUGO 24 OTTO 01.12.10 Baum
HUGO 30 KARL 01.12.10 Haus
HUGO 36 WILLI 01.12.10 Hund
HUGO 22 HANS 01.12.10 Katze
HUGO 28 PAUL 01.12.10 Grün
HUGO 34 SÖNKE 01.12.10 Blau
HUGO 40 OTTO 01.12.10 Rot
HUGO 21 KARL 01.12.10 Schwarz
HUGO 27 WILLI 01.12.10 Gelb
HUGO 33 HANS 01.12.10 Tier
HUGO 39 PAUL 01.12.10 Zelle
HUGO 25 WERNER 01.12.10 Pc
HUGO 31 OTTO 01.12.10 Maus
HUGO 37 KARL 01.12.10 Baum
HUGO 26 WILLI 01.12.10 Wasser
HUGO 32 HANS 01.12.10 All
HUGO 38 PAUL 01.12.10 Danke
HUGO 23 EUGEN 01.12.10 Bitte
HUGO 29 EUGEN 01.12.10 Tür
HUGO 35 KARL 01.12.10 Garten
Nach dem durchlauf des makros sollte dann das hier übrig bleiben
HUGO 36 WILLI 01.12.10 Hund
HUGO 34 SÖNKE 01.12.10 Blau
HUGO 40 OTTO 01.12.10 Rot
HUGO 33 HANS 01.12.10 Tier
HUGO 39 PAUL 01.12.10 Zelle
HUGO 25 WERNER 01.12.10 Pc
HUGO 37 KARL 01.12.10 Baum
HUGO 29 EUGEN 01.12.10 Tür
Für Hilfe wäre ich sehr dankbar. VBA beherrsche ich leider so gut wie garnicht.
Mfg Paul.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zellen vergleichen, doppelte löschen
24.09.2010 15:14:50
ransi
HAllo Paul
Nehmen wir mal an das das deine Daten sind:
Tabelle1

 ABCDEFG
1 HUGO24OTTO01.12.2010Baum 
2 HUGO30KARL01.12.2010Haus 
3 HUGO36WILLI01.12.2010Hund 
4 HUGO22HANS01.12.2010Katze 
5 HUGO28PAUL01.12.2010Grün 
6 HUGO34SÖNKE01.12.2010Blau 
7 HUGO40OTTO01.12.2010Rot 
8 HUGO21KARL01.12.2010Schwarz 
9 HUGO27WILLI01.12.2010Gelb 
10 HUGO33HANS01.12.2010Tier 
11 HUGO39PAUL01.12.2010Zelle 
12 HUGO25WERNER01.12.2010Pc 
13 HUGO31OTTO01.12.2010Maus 
14 HUGO37KARL01.12.2010Baum 
15 HUGO26WILLI01.12.2010Wasser 
16 HUGO32HANS01.12.2010All 
17 HUGO38PAUL01.12.2010Danke 
18 HUGO23EUGEN01.12.2010Bitte 
19 HUGO29EUGEN01.12.2010Tür 
20 HUGO35KARL01.12.2010Garten 
21       


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Versuch mal diesen Code:
Option Explicit


Public Sub test()
Dim rng As Range
Dim myDic As Object
Dim L As Long
Set rng = Sheets("Tabelle1").Range("B1").CurrentRegion
Set myDic = CreateObject("Scripting.Dictionary")
For L = rng.Rows.Count To 1 Step -1
    If Not myDic.exists(rng(L, 1) & "DUMMY" & rng(L, 3)) Then
        Set myDic(rng(L, 1) & "DUMMY" & rng(L, 3)) = rng.Rows(L).Cells 'noch nicht dagewesen
        Else:
        If rng(L, 2) <= myDic(rng(L, 1) & "DUMMY" & rng(L, 3))(2) Then 'schonmal dagewesen
            rng.Rows(L).Delete
            Else:
            myDic(rng(L, 1) & "DUMMY" & rng(L, 3)).Delete
            Set myDic(rng(L, 1) & "DUMMY" & rng(L, 3)) = rng.Rows(L).Cells
        End If
    End If
Next
End Sub



ransi
Anzeige
AW: Zellen vergleichen, doppelte löschen
24.09.2010 21:48:37
Daniel
Hi
ohne VBA geht auch schnell und einfach:
1. Tabelle sortiern nach Spalte B, D und C (C aufsteigend sortieren)
jetzt sollten alle gleichen Werte in B und D untereinander stehen, der mit dem grössen Wert in C jeweils unten.
2. jetzt in der ersten freien Spalte folgende Formel eintragen:
=Wenn(und(B1=B2;D1=D2);Wahr;1)
und nach unten kopiernen, jetzt sollten alle Zellen mit WAHR gekennzeichnet sein, die gelöscht werden sollen, in den anderen steht eine 1 (bitte kontrolloieren, ggf Formel anpassen)
3. jetzt die Hilfsspalte auswählen und mit BEARBEITEN - GEHE ZU - INHALTE - FORMELN und WAHRHEITSWERTE die zu löschenden Zellen auswählen
4. die Zellen Löschen und dabei "ganze Zeile" auswählen
das kann man auch so per Makro ausführen, der Recorder hilft dabei
bei grossen Datenmengen kann man das ganze beschleunigen, wenn man vor dem Löschen die Tabelle nach der Hilfsspalte sortiert, vorher muss man allerdings die Formeln durch Werte ersetzen.
Gruß, Daniel
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige