Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
512to516
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
512to516
512to516
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

einzel vorkommende Zeilen in neues Tabellenblatt v

einzel vorkommende Zeilen in neues Tabellenblatt v
10.11.2004 11:54:48
Kerstin
Hallo
wie kann ich in einer Tabelle, die nach Spalte A sortiert ist (Zahlformat) alle Zeilen bei denen der Inhalt der Spalte A nur einmal vorkommt in ein neues Arbeitsblatt verschieben lassen.
Freue mich über jegliche Hilfe

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: einzel vorkommende Zeilen in neues Tabellenblatt v
10.11.2004 12:01:22
Tom
Wie wär's mit einer Datei?
AW: Hier die Datei
WernerB.
Hallo Kerstin,
wie gefällt Dir das?

Sub Kerstin_Hu()
Dim i As Long, laR As Long
ThisWorkbook.Sheets.Add after:=Sheets(Sheets.Count)
Sheets("Herkunft beides").Select
For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
If Cells(i, 1).Value <> Cells(i - 1, 1).Value And _
Cells(i, 1).Value <> Cells(i + 1, 1).Value Then
With Sheets(Sheets.Count)
laR = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Range("A" & laR & ":F" & laR).Value = _
Range("A" & i & ":F" & i).Value
Rows(i).Delete Shift:=xlUp
End With
End If
Next i
With Sheets(Sheets.Count)
.Range("A1:F" & laR).Sort Key1:=.Range("A1"), Order1:=xlAscending, _
Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
End With
End Sub

Viel Erfolg wünscht
WernerB.
P.S.: Dieses Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter !
Anzeige
AW: funktioniert aber mit Fehlermeldung
Kerstin
Also Werner,
das funktioniert klasse, vielen Dank zunächst schon mal, die Daten werden auch kopiert, trotzdem erhalte ich eine Fhelermeldung
Laufzeitfehler 1004
liebe Grüße
Kerstin Hu
Hallo an WernerB....
10.11.2004 17:52:06
Kerstin
ich frage Dich jetzt einfach mal direkt.
Wenn ich aus der Datei die einzelnen Einträge rausgenommen habe, will ich die Einträge mit gleichen Kundennummern, gleichen Beraternummern herauslöschen lassen.
Dazu fällt Dir sicher auch noch was ein oder?
Ich wäre Dir mehr als dankbar .
liebe Grüße Kerstin
AW: Hallo an WernerB....
WernerB.
Hallo Kerstin,
wenn ich Deine hochgeladene Musterdatei mit meinem Makro "bearbeite", so läuft dieses bei mir ohne Fehlermeldung durch.
M.a.W.: Die von Dir gemeldete Fehlermeldung kann ich so nicht nachvollziehen und mich von daher auch nicht um Abhilfe bemühen, da mir dazu jeglicher Lösungsansatz fehlt.
Zu meinem nachstehenden Makrovorschlag noch zwei Anmerkungen:
1. Der restliche Datenbestand (also ohne die Einzel-Einträge) wird nochmals sortiert (1. nach Spalte "A", 2. nach Spalte "B"), dadurch kann es zu Verschiebungen der Zeilenreihenfolge kommen.
2. Es werden alle Zeilen gelöscht, bei denen nach dieser neuen Sortierung die Einträge in Spalte "A" und Spalte "B" mit denen der darüber stehenden Zeile übereinstimmen; d.h., dass von allen "Doppelten" Zeilen jeweils eine übrig bleibt (oder wolltest Du tatsächlich "alle" gelöscht haben?

Sub Kerstin_Hu()
Dim sT1 As String, sT2 As String
Dim i As Long, laR As Long
Application.ScreenUpdating = False
ThisWorkbook.Sheets.Add after:=Sheets(Sheets.Count)
Sheets("Herkunft beides").Select
For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
If Cells(i, 1).Value <> Cells(i - 1, 1).Value And _
Cells(i, 1).Value <> Cells(i + 1, 1).Value Then
With Sheets(Sheets.Count)
laR = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Range("A" & laR & ":F" & laR).Value = _
Range("A" & i & ":F" & i).Value
Rows(i).Delete Shift:=xlUp
End With
End If
Next i
Cells.Copy
With Sheets(Sheets.Count)
.Cells.PasteSpecial Paste:=xlPasteFormats, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
.Range("A1:F" & laR).Sort Key1:=.Range("A1"), Order1:=xlAscending, _
Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
End With
laR = Cells(Rows.Count, 1).End(xlUp).Row
Range("A1:F" & laR).Sort Key1:=Range("A2"), Order1:=xlAscending, _
Key2:=Range("B2"), Order2:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal, DataOption2:=xlSortNormal
For i = laR To 2 Step -1
sT1 = Cells(i, 1).Text & Cells(i, 2).Text
sT2 = Cells(i - 1, 1).Text & Cells(i - 1, 2).Text
If sT1 = sT2 Then Rows(i).Delete Shift:=xlUp
Next i
Application.ScreenUpdating = True
End Sub

Viel Erfolg wünscht
WernerB.
P.S.: Was verstehst Du eigentlich unter "Ich wäre Dir mehr als dankbar"?
Anzeige
AW: Hallo an WernerB....
11.11.2004 12:26:42
Kerstin
Guten Morgen Werner,
ja ich will tatsächlich die doppelten völlig rausgelöscht haben (beide), weil diese Datensätze in Ordnung sind, nur bei den anderen, wo sich der berater dann unterscheidet muß in einer bestimmten Software etwas verändert werden.
*lächel*....was ich unter mehr als dankbar verstehe, ist zum Beispiel: einfach ein nettes Dankeschön-Mail schreiben, vielleicht mit einem schönen Gedicht oder einer brauchbaren Weisheit, oder ein selbstgemaltes Bild schicken oder so ähnlich.
Es gibt auch noch Menschen, denen es etwas bedeutet, wenn man Hilfe bekommt.
liebe Grüße Kerstin
Anzeige
AW: Hallo an WernerB....
WernerB.
Hallo Kerstin,
entspricht dieses Makro jetzt Deinen Wünschen?

Sub Kerstin_Hu()
Dim sT1 As String, sT2 As String
Dim i As Long, laR As Long
Application.ScreenUpdating = False
ThisWorkbook.Sheets.Add after:=Sheets(Sheets.Count)
Sheets("Herkunft beides").Select
For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
If Cells(i, 1).Value <> Cells(i - 1, 1).Value And _
Cells(i, 1).Value <> Cells(i + 1, 1).Value Then
With Sheets(Sheets.Count)
laR = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Range("A" & laR & ":F" & laR).Value = _
Range("A" & i & ":F" & i).Value
Rows(i).Delete Shift:=xlUp
End With
End If
Next i
Cells.Copy
With Sheets(Sheets.Count)
.Cells.PasteSpecial Paste:=xlPasteFormats, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
.Range("A1:F" & laR).Sort Key1:=.Range("A1"), Order1:=xlAscending, _
Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
End With
laR = Cells(Rows.Count, 1).End(xlUp).Row
Range("A1:F" & laR).Sort Key1:=Range("A2"), Order1:=xlAscending, _
Key2:=Range("B2"), Order2:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal, DataOption2:=xlSortNormal
For i = laR To 2 Step -1
sT1 = Cells(i, 1).Text & Cells(i, 2).Text
sT2 = Cells(i - 1, 1).Text & Cells(i - 1, 2).Text
If sT1 = sT2 Then
Cells(i - 1, 1).Interior.ColorIndex = 46
Rows(i).Delete Shift:=xlUp
ElseIf Cells(i, 1).Interior.ColorIndex = 46 Then
Rows(i).Delete Shift:=xlUp
End If
Next i
Application.ScreenUpdating = True
End Sub

Gruß
WernerB.
P.S.: Im Erfolgsfall bin ich mit einem kleinen "Dankeschön" zufrieden, ansonsten bitte ich um eine entsprechende Rückmeldung.
Leider gibt es auch viele Zeitgenossen – zu denen Du gewiss nicht gehörst – die die hier oft sehr zeitaufwändig erarbeiteten Lösungsvorschläge kommentarlos konsumieren. So weiß der Antworter nicht, ob er mal wieder für den Papierkorb gearbeitet hat oder ob sein Vorschlag zu gebrauchen war – und solche Erlebnisse sind für den Antworter doch mehr als frustierend.
Anzeige
folgende Fehlermeldung kommt
11.11.2004 15:48:54
Kerstin
Hallo Werner,
ich erhalte folgende Fehlermeldung:
Fehler beim Kompilieren Benanntes Obejkt nicht gefunden
dabei wird in der Zeile
DataOption1:=xlSortNormal, DataOption2:=xlSortNormal
DataOption1 blau hinterlegt...
leider kann ich mir dann hier nicht weiterhelfen
Tut mir ja schrecklich leid, wenn ich Dir soviel Mühe mache, aber VBA muß ich eben mal einen Kurs mitmachen, alles andere in Excel habe ich mir ganz gut in Eigenregie beigebracht.
Vielen Dank schon mal für deine ganze Mühe
Grüße aus Rüsselsheim
Kerstin
AW: folgende Fehlermeldung kommt
WernerB.
Hallo Kerstin,
das sind die Auswirkungen der kleinen feinen Unterschiede zwischen den Excel-Versionen ...
Das Makro habe ich mit Excel XP erstellt, Du hast aber Excel 2000.
Nun habe ich es auf Excel 97 angepasst; so sollte es – da aufwärtskompatibel – auch unter Excel 2000 laufen.
Wie sagte doch der alte Bauer: "Wir werden dem Schwein schon töten, wenn ihm auch quiekt!"

Sub Kerstin_Hu()
Dim sT1 As String, sT2 As String
Dim i As Long, laR As Long
Application.ScreenUpdating = False
ThisWorkbook.Sheets.Add after:=Sheets(Sheets.Count)
Sheets("Herkunft beides").Select
For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
If Cells(i, 1).Value <> Cells(i - 1, 1).Value And _
Cells(i, 1).Value <> Cells(i + 1, 1).Value Then
With Sheets(Sheets.Count)
laR = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Range("A" & laR & ":F" & laR).Value = _
Range("A" & i & ":F" & i).Value
Rows(i).Delete Shift:=xlUp
End With
End If
Next i
Cells.Copy
With Sheets(Sheets.Count)
.Cells.PasteSpecial Paste:=xlPasteFormats, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
.Range("A1:F" & laR).Sort Key1:=.Range("A1"), Order1:=xlAscending, _
Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom
End With
laR = Cells(Rows.Count, 1).End(xlUp).Row
Range("A1:F" & laR).Sort Key1:=Range("A2"), Order1:=xlAscending, _
Key2:=Range("B2"), Order2:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
For i = laR To 2 Step -1
sT1 = Cells(i, 1).Text & Cells(i, 2).Text
sT2 = Cells(i - 1, 1).Text & Cells(i - 1, 2).Text
If sT1 = sT2 Then
Cells(i - 1, 1).Interior.ColorIndex = 46
Rows(i).Delete Shift:=xlUp
ElseIf Cells(i, 1).Interior.ColorIndex = 46 Then
Rows(i).Delete Shift:=xlUp
End If
Next i
Application.ScreenUpdating = True
End Sub

Ein schönes Wochenende wünscht
WernerB.
Anzeige
oh weia neue Fehlermeldung kommt
12.11.2004 13:11:16
Kerstin
Hallo Werner,
jetzt läuft irgendwie gar nichts mehr richtig, es kommt ein Laufzeitfehler 9 und wenn ich beende dann erscheint ein neues Tabellenblatt aber das ist leer.
tut mir ja wirlkich leid, wenn ich dir soviel Mühe mache.
Habe mir jetzt schon mal bei Herdt ein Buch über Grundlagen der VBA in Office gekauft. Muß ich einfach mal lesen.
Trotzdem vielen Dank und auch Dir ein schönes Wochenende.
Nächste Woche kann ich mich wohl erst Mittwoch wieder melden, denn ich halte am Montag und Dienstag außerhalb ein Seminar. Probiere natürlich früher reinzuschauen.
liebe Grüße Kerstin
Anzeige
AW: einzel vorkommende Zeilen in neues Tabellenblatt v
10.11.2004 14:08:18
Tom
Ohne VBA gehts so: erst Daten/Teilergebnis und nach Kd.Nr. gruppieren und nach Beraternr. addieren.
Dann Autofilter nach Vorname 1. Ergebnis sind alle Einzeiligen Einträge.
Abschließend über "sichtbare Zellen markieren" (siehe Ansicht/Symbolleisten/Anpassen/Bearbeiten/... (zweites Symbol von unten)), kopieren und übertragen und dann löschen.
AW: einzel vorkommende Zeilen in neues Tabellenblatt v
10.11.2004 17:44:43
Kerstin
Hallo Tom
danke für deine Antwortmöglichkeit ohne VBA, prinzipiell ist sie nicht schlecht, aber automatisiert, wäre es besser, weil es eigentlich knapp 50000 Datensätze sind, und automatisch wäre einfach am schnellsten und praktischsten.
Gruß Kerstin
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige