Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

doppelte löschen (VBA)





Frage

Hallo zusammen Viele Einträge zu diesem Thema sind schon da. Jedoch nicht das was ich suche. Habe eine Liste mit gleichen Debitor - Nr. in Spalte A. All diese die doppelt vorhanden sind, sollen aus der Liste. Also nicht mehr einfach in der Liste sonder gar nicht mehr. Wäre froh um eine schnelle Antwort. Danke Grüsse Maxli

Antwort 1 von Saarbauer

Hallo,

da das Problem im folgend genannten Thread schon einmal behandelt wurde, der Link zum Thread

https://supportnet.de/threads/1086612

Gruß

Helmut

Antwort 2 von maxli

Hallo

Danke für die schnelle Antwort. Zum besseren Verständnis ein Beispiel:
Spalte A
1092
1092
1122
usw.
Jetzt wenn ein Debitor doppelt erscheint (1092), so soll er nach dem Ausführen vom Makro nicht mehr vorhanden sein.

Spalte A
1122

Danke und Grüsse

Maxli

Antwort 3 von maxli

Hallo zusammen
Wäre wirklich froh um eine Lösung.

Bitte meldet euch.

Gruss Maxli

Antwort 4 von Saarbauer

Hallo Jörg,

im Prinzip ist es mit zwei verschachtelten Schleifen zu machen.
Dabei beginnt die Erste in Zeile 1 und die Zweite beginnt immer in ( Erste + 1).

Die Zweite durchläuft alle Zeilen bis zum Schluß, erst dann rückt die Erste eine Zeile weiter.
Werden gleiche Nummern gefunden werden Erste Zeile i und Zweite Zeile y gelöscht.
Da alle zeilen eins nach oben rutschen ist der Index der zweiten Schleife auf den Index der Ersten + 1 zu setzen und damit überprüft die zweite Schleife alle folgenden Werte.

Gruß

Helmut

P.S. Solltest du bis Wochendene keine Lösung haben versuch ich dir mal die Lösung zuzammenzubauen.

Antwort 5 von Saarbauer

Hallo,

es ging doch schneller.


Dieses Makro einsetzen

Sub Doppelte_Finden()
´ Doppelte_Finden Makro
´ Makro am 04.07.2005 von Saarbauer
Dim Debitor As String, Index As String
´Sheets("Bezeichnung Arbeitsblatt").Select
´Es wird vorausgesetzt, dass in Zeile 1 die Spaltennamen stehen und dass die zu überprüfenden Werte in Spalte A stehen.
Range("a2").Select
While IsEmpty(ActiveCell) = False
Debitor = ActiveCell.Value
i = ActiveCell.Row()
ActiveCell.Offset(1, 0).Select
While IsEmpty(ActiveCell) = False
If ActiveCell.Value = Debitor Then
y = ActiveCell.Row()
Rows(ActiveCell.Row()).Select
Selection.Delete
Rows(i).Select
Rows(ActiveCell.Row()).Select
Selection.Delete
End If
ActiveCell.Offset(1, 0).Select
Wend
Rows(i).Select
ActiveCell.Offset(1, 0).Select
Wend
End Sub


Aber datei vor erstem Test sichen und Anmekrung im Makro zu Spaltennamen und Vergleichswerten beachten.

Gruß

Helmut

Antwort 6 von maxli

Hallo Helmut

Irgendetwas mache ich noch falsch es kommt: Fehler beim kompilieren - Syntaxfehler

Gruss

Maxli

Antwort 7 von Saarbauer

Hallo,

hab mal getestet, bei mir kommen folgende Zeilen in rot:

´ Doppelte_Finden Makro
´ Makro am 04.07.2005 von Saarbauer

´Sheets("Bezeichnung Arbeitsblatt").Select
´Es wird vorausgesetzt, dass in Zeile 1 die
Spaltennamen stehen und dass die zu überprüfenden

Dort werden die Hochkommas anscheinend nicht richtig übertragen, erstetze die Hochkommas durch das Hochkomma über # ,dann sollte der Text grün werden

Gruß

Helmut

Antwort 8 von maxli

Hallo Helmut

Funktioniert prima. Danke
Nur die Geschwindigkeit bei 7500 Datensätzen ist ein wenig gering, aber es geht.

Vielen Dank

Grüsse Maxli

Antwort 9 von Saarbauer

Hallo,

das ist das Problem von Schleifen. Da im Prinzip jeder Datensatz mit jeden geprüft wird.

Hängt auch etwas vom PC ab.

Freut mich, dass das Makro deinen Vorstellungen entspricht.

Gruß

Helmut

Antwort 10 von guethi

Hallo!

Bei mir läuft das Makro nicht...kann bitte mal jemand einen Blick darauf werfen, was ich hier verhackstückt habe?

Das Makro soll alle Werte aus Spalte A Tabelle unter den letzten Wert in SpalteA Tabelle kopieren und anschließend die Dubletten löschen.

Zitat:

Sub kopieren_und_löschen()

´Kopiert die Spalte A aus Blatt 1 unter die Liste in Spalte B - dieser Teil klappt´

Sheets("Tabelle1").Select
Range("A1:A5000").Select
Selection.copy
Sheets("Tabelle2").Select
Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste

´Entfernt alle Dubletten, danach stehen in dieser Spalte nur die Fehlwerte´


´ UND DAS KLAPPT NICHT: ´



Dim Name As String, Index As String
Sheets("Tabelle2").Select
Range("a1").Select
While IsEmpty(ActiveCell) = False
Name = ActiveCell.Value
i = ActiveCell.Row()
ActiveCell.Offset(1, 0).Select
While IsEmpty(ActiveCell) = False
If ActiveCell.Value = Name Then
y = ActiveCell.Row()
Rows(ActiveCell.Row()).Select
Selection.Delete
Rows(i).Select
Rows(ActiveCell.Row()).Select
Selection.Delete
End If
ActiveCell.Offset(1, 0).Select
Wend
Rows(i).Select
ActiveCell.Offset(1, 0).Select
Wend

End Sub


Schon vorab vielen Dank für eure Bemühungen.

Viele Grüße,

guethi

Antwort 11 von guethi

Ich muss grad noch einen Dummy-Einrag dranhängen, wegen der Benachrichtigung.:-/ Sorry, vielleicht kann das ein netter Admin korrigieren und die Benachrichtigung bei meinem ersten Eintrag aktivieren. Thx

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: