Anzeige
Archiv - Navigation
824to828
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
824to828
824to828
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zeilen nach Muster löschen

Zeilen nach Muster löschen
09.12.2006 14:10:59
Basti
Hallo
Ich habe hier eine Exceltabelle, aus der ich für die weitere Bearbeitung bestimmte Zeilen löschen muss.
Die Tabelle sieht gekürzt wie folgt aus:
Tabelle1

 AB
189279
2892156
389258
489279
5975156
6975102
7975156
8975359
91036347
101036156
11103647


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Das Makro soll nun prüfen, welche Zellen in Spalte B keine doppelten Werte besitzen. Allerdings dürfen nur die Zeilen einbezogen werden, die in Spalte A den Wert 892 haben. Am obigen Beispiel wären das also B2 und B3. B1 ist doppelt, da gleich wie B4; B2 ist nicht doppelt, zwar in Spalte B vorhanden, aber in Zelle der Spalte A nicht den Wert 892.
Zu guter letzt soll das Makro alle ausgelesen Werte aus den Zellen der Spalte B, welche nicht mehrfach vorkommen, in den Zellen der kompletten Spalte B suchen und wenn gefunden, die gesamte Zeile löschen.
Meine ersten Versuche:
Sub TabelleKuerzen() m = 1 'bei Zeile 1 beginnen For Each ZelleSpalteB In Tabelle1.Range("B1:B4000") If ZelleSpalteB.Value <> "" Then If Cells(m, 1).Value = "892" Then 'Zeile zum Auswerten gefunden MsgBox "Kontrolle Variable, m=" & m End If End If m = m + 1 Next ZelleSpalteB End Sub
Weiter bin ich leider nicht gekommen ;)
Für weitere Hilfe schon einmal vielen Dank im Voraus.
MfG

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

Betreff
Datum
Anwender
Anzeige
AW: Zeilen nach Muster löschen
09.12.2006 17:53:55
Karin
Hallo Basti,
hier der Code:

Sub TabelleKuerzen()
Dim intR
For intR = Tabelle1.UsedRange.Rows.Count To 1 Step -1
Select Case WorksheetFunction.CountIf(Range(Cells(1, 2), Cells(intR, 2)), Cells(intR, 2))
Case Is > 1
' zum Testen wird in die Zeile in Spalte 3 mit einem x markiert
If Cells(intR, 1).Value = 892 Then Cells(intR, 3).Value = "x"
' hier wird die Zeile gelöscht
'If Cells(intR, 1).Value = 892 Then Cells(intR, 1).EntireRow.Delete
End Select
Next intR
End Sub

Würde mich freuen, wenn ich Dir weiterhelfen konnte.
Freundliche Grüße
Karin
Anzeige
AW: Zeilen nach Muster löschen
09.12.2006 18:16:51
Erich
Hallo Basti,
ich habe nicht verstanden, welche Zeilen gelöscht werden sollen. Sind es vielleicht die in Spalte C oder D markierten?
 ABCD
189279 Loe
2892156Loe 
389258Loe 
489279 Loe
5975156Loe 
697579 Loe
7975156Loe 
8975359  
91036347  
101036156Loe 
11103647  
12103658Loe 

Formeln der Tabelle
ZelleFormel
C1=WENN(SUMMENPRODUKT(1*($A$1:$A$4000&"/"&$B$1:$B$4000="892"&"/"&B1))=1;"Loe";"")
D1=WENN(SUMMENPRODUKT(1*($A$1:$A$4000&"/"&$B$1:$B$4000="892"&"/"&B1))>1;"Loe";"")

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Zeilen nach Muster löschen
09.12.2006 19:09:13
Basti
Hallo Karin, hallo Erich,
danke für Eure Hilfe.
Die Formel, die Erich gepostet hat (Spalte C) macht genau das, was ich gesucht habe. Mit der Hilfsspalte kann ich jetzt die korrekten Werte/Zeilen der Tabelle rauslöschen bzw. filtern und bei den doppelten überprüfen, ob da was schief gelaufen ist.
Das es so einfach ist, hätte ich ja nicht gedacht ;)
Danke
MfG

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige