Zeilen Löschen mit Bedingung

Bild

Betrifft: Zeilen Löschen mit Bedingung
von: alifa
Geschrieben am: 27.06.2015 19:51:21

Hallo,
Tabelle1 beinhaltet 714 Zeilen. In Spalte 1 und Spalte 2 befinden sich Strings mit je 5 Elementen. Jetzt möchte ich mit VBA(Makro) jede Zeile Löschen, in der in den Spalten 1 und 2 die gleichen String-Paare auftauchen. Auch in verkehrten Spalten. Als Beispiel 4 Zeilen:
1. abcjn efilo
2. abdfm cegjo
3. efilo abcjn
4. abefo cghjk
Hier soll Zeile 3. gelöscht werden, da sie das vorhandene String-Paar von Zeile 1. enthält.
Für Hilfe danke ich im Voraus.
Gruß, Alifa

Bild

Betrifft: AW: Zeilen Löschen mit Bedingung
von: Bernd
Geschrieben am: 27.06.2015 20:03:01
Schon mal mit .find versucht?
Gruß,
Bernd

Bild

Betrifft: AW: Zeilen Löschen mit Bedingung
von: Oberschlumpf
Geschrieben am: 28.06.2015 01:25:33
Hi Bernd,
Na, dann zeig doch mal - angelehnt an die Vorgabe von Alifa - einen vollständigen + funktionierenden Beispielcode.
Mich würde (d)eine Lösung auch interessieren.
Danke
Ciao
Thorsten

Bild

Betrifft: Vorher zeilenweise sortieren!
von: RPP63
Geschrieben am: 28.06.2015 08:26:25
Hallo!
Der Vergleichsoperator < gilt auch für Texte!
Dies kann man sich zu Nutze machen und zeilenweise sortieren:

 ABCD
1Wert1Wert2WertAWertB
2abcjnefiloabcjnefilo
3abdfmaaegjoaaegjoabdfm
4efiloabcjnabcjnefilo
5abefocghjkabefocghjk

Formeln der Tabelle
ZelleFormel
C2=WENN(A2<B2;A2;B2)
D2=WENN(A2<B2;B2;A2)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Nun Daten, Duplikate entfernen (Spalte C und D auswählen):
 ABCD
1Wert1Wert2WertAWertB
2abcjnefiloabcjnefilo
3abdfmaaegjoaaegjoabdfm
4abefocghjkabefocghjk


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Die Hilfsspalten C und D können nun gelöscht werden.
Gruß Ralf

Bild

Betrifft: AW: Vorher zeilenweise sortieren!
von: alifa
Geschrieben am: 28.06.2015 10:31:43
Hallo Ralf,
das klappt! Vielen Dank. Wie geht das per Makro?
Gruß, Alifa

Bild

Betrifft: AW: Vorher zeilenweise sortieren!
von: RPP63
Geschrieben am: 28.06.2015 10:58:16
Hi!
Für so etwas gibt es eigentlich den Makrorekorder, der prinzipiell erst mal brauchbare Ergebnisse liefert.
Hinterher kann man immer noch "pimpen", wie folgendes Beispiel zeigt, welches davon ausgeht, dass der freie Bereich ab Spalte C beginnt:

Sub DuplikateSpezialRPP()
Dim Letzte As Long
Application.ScreenUpdating = False
With Tabelle3  'CodeName evtl. anpassen
   Letzte = .Cells(Rows.Count, 1).End(xlUp).Row
   .Range(.Cells(2, 3), .Cells(Letzte, 3)).FormulaR1C1 = "=IF(RC1<RC2,RC1,RC2)"
   .Range(.Cells(2, 4), .Cells(Letzte, 4)).FormulaR1C1 = "=IF(RC1<RC2,RC2,RC1)"
   .Cells(1, 1).CurrentRegion.RemoveDuplicates Columns:=Array(3, 4), Header:=xlYes
   .Columns("C:D").Delete
End With
End Sub
Gruß Ralf

Bild

Betrifft: AW: Vorher zeilenweise sortieren!
von: alifa
Geschrieben am: 28.06.2015 15:49:20
Hallo Ralf,
passt! Danke
VG Alifa

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zeilen Löschen mit Bedingung"