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

Zeilen Löschen Spezial

Zeilen Löschen Spezial
13.12.2002 11:01:17
Falko Herfeld
Very schöres problemchen was ich hier habe.
Es geht darum.

Ich habe eine Tabelle die aus mehrere Spalten besteht (7 Stück)
Es gibt nun Zeilen die bestehen bleiben dürfen, weil es sie einmal gibt (kunde ist nur einmal vorhanden) aber es gibt auch Kunden die sind mehrmals vorhanden. bis zu 20 mal und mehr.

Ich würde aber gerne dafür sorgen das jeder kunde nur einmal vorhanden ist. Als selektionskriterium für die eindeutigkeit gibt es hier die Kundennummer.

Das ganze sollte so laufen.

Ich gehe auf die Zelle in der die Kundennummer des 1. Kunden steht. Ich starte das makro. Dann durchsucht dieses Makro anhand der aktiven Zelle die ganze Tablle immer nach doubletten. Also if nächste Zelle in der Spalte = Active Zelle dann zeile löschen sonst nicht löschen. Dafür muß aber ein springer <--- tolles deutsch, drin sein, der immer nachdem es was zu löschen gab, die nächste active Zeile auch wieder als neues prüfkriterium akzeptiert und nicht nach einem Kunden das makro abbricht.

Tut mir echt leid wenn das jetzt total dämlich klingt aber ich bin kein Programmierer. Vielleicht hat ja jemand von Ihnen einen Idee.

Gruß

Falko Herfeld

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

Betreff
Datum
Anwender
Anzeige
Re: Zeilen Löschen Spezial
13.12.2002 11:10:07
Hajo_zi
Hallo Falko

mit folgenden Makro werden alle Doppelten gelöscht, nach Spalte 3 (C)


Option Explicit

Sub KeineDoppelten()
Dim loI As Long
' doppelte löschen, Anzahl der Datensätze in spalte 3 feststellen
For loI = Cells(Rows.Count, 3).End(xlUp).Row To 2 Step -1 ' ab zeile 2 beginnen
If Cells(loI, 3) = Cells(loI - 1, 3) Then Rows(loI).Delete Shift:=xlUp
Next loI
End Sub

Code eingefügt mit: Excel Code Jeanie

Code Jeanie
Frage
Das Umsetzen nach Html klappt perfekt, auch die Ansicht in den Foren ist gegeben. Bei manchen Foren kann man aber anscheinend nicht den dargestellten Code nach VBA rückkopieren. Warum?
Antwort
Dies liegt nicht an der Code Jeanie !!! Manche Foren interpretieren anscheinend < pre > < /pre > Tags nicht richtig und erzeugen am Zeilenende einen weichen Zeilenumbruch anstatt eines harten Zeilenumbruches. Dies führt dazu, dass im VBA-Editor die Zeilen hintereinander geschrieben werden. Zum Rückkopieren in solchen Fällen: Fügen Sie den kopierten Code aus dem Forum nach Word ein, kopieren Sie ihn dort wieder und fügen Sie ihn dann im VBA - Editor ein


Gruß Hajo

Anzeige
Re: Zeilen Löschen Spezial
13.12.2002 11:58:51
Falko Herfeld
Viele Dank aber et klappt noch nicht ganz.

Soweit so gut! Das ist schon absolut genial.
aber was er jetzt macht ist folgendes. Trotz der Tatsache das in der Spalte Kundennummer keine Doppelten mehr sind löscht er mir eine Raus. Bezieht sich die Suchfunktion wirklich nur auf die aktuelle zelle und dann wieder auf die nächste. Die Tabelle ist ziemlich groß ich habe sie also verkleiner und mal mit eine 20 Zeilige Tabelle mit sorry es sind 13 Spalten kreeiert. Er löscht zunächst die doppelten Zeilen mit Kundennummern raus. sind ja alle Doppelten datensätze raus aber irgendwie löscht er bei einem Zweiten durchlauf nochmal welche obwohl es jede Kundennummer nur einmal gibt. Kann man das Makro so einstellen das es sich wirklich nur auf die Kundennummer in spalte 6 bzw. f bezieht und nicht irgendwo noch andere Kriterien nutz. Die eigentliche tabelle ist 2834 Zeilen groß und das zu kontrollieren wäre super schwer.

Danke Falko

Anzeige
Re: Zeilen Löschen Spezial
13.12.2002 12:05:11
Hajo_zi
Hallo Falko

bei mir läuft es Fehlerfrei, auch nach der Umstellung auf Spalte 6


Option Explicit

Sub KeineDoppelten()
Dim loI As Long
' doppelte löschen, Anzahl der Datensätze in spalte 3 feststellen
For loI = Cells(Rows.Count, 6).End(xlUp).Row To 2 Step -1 ' ab zeile 2 beginnen
If Cells(loI, 6) = Cells(loI - 1, 6) Then Rows(loI).Delete Shift:=xlUp
Next loI
End Sub

Code eingefügt mit: Excel Code Jeanie

Code Jeanie
Frage
Das Umsetzen nach Html klappt perfekt, auch die Ansicht in den Foren ist gegeben. Bei manchen Foren kann man aber anscheinend nicht den dargestellten Code nach VBA rückkopieren. Warum?
Antwort
Dies liegt nicht an der Code Jeanie !!! Manche Foren interpretieren anscheinend < pre > < /pre > Tags nicht richtig und erzeugen am Zeilenende einen weichen Zeilenumbruch anstatt eines harten Zeilenumbruches. Dies führt dazu, dass im VBA-Editor die Zeilen hintereinander geschrieben werden. Zum Rückkopieren in solchen Fällen: Fügen Sie den kopierten Code aus dem Forum nach Word ein, kopieren Sie ihn dort wieder und fügen Sie ihn dann im VBA - Editor ein


Gruß Hajo

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige