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

Doppelte Eintraege-2.Versuch

Doppelte Eintraege-2.Versuch
08.02.2004 21:53:03
Timo
Guten Abend liebes Forum,
also ich versuche mehr oder minder den ganzen Tag, wenn ich nicht irgendwelche andere Fragen stelle, das Problem mit den doppelten Eintraegen zu meistern.
Hier ist mein bisheriger Code:

Sub doppelte_Datensaetze()
Sheets(1).Select
znr = 1
znr1 = znr + 1
Neustart:
Do
Cells(znr, 1).Select
If ActiveCell <> "" Then
'If ActiveCell = artikelnr Then
'znr = znr + 1
'GoTo Neustart
'End If
Automarke = Cells(znr, 1)
Modell = Cells(znr, 2)
znr1 = znr + 1
Cells(znr1, 1).Select
Do
aktion = ""
If ActiveCell = Automarke Then
Automarke = Cells(znr1, 1)
Modell = Cells(znr1, 2)
Rows(znr1).Delete
Sheets(2).Select
Do
suchnr = suchnr + 1
Cells(suchnr, 1).Activate
Loop Until ActiveCell = ""
Cells(suchnr, 1) = Automarke
Cells(suchnr, 2) = Modell
aktion = "nicht erhöhen"
End If
Sheets(1).Select
If aktion = "" Then znr1 = znr1 + 1
Cells(znr1, 1).Select
Loop Until ActiveCell = ""
End If
znr = znr + 1
Loop Until Cells(znr, 1) = ""
End Sub


Probleme:
Ich will das alle mehrfachen Eintraege ins neue Tabellenblatt kommen. Jedoch wird nie der erste (der zum vergleich genommen wird) uebertragen
Bonus:
Wenn nun noch jemand die mehrfachen Eintraege (alle) farblich markieren koennte, dann waere das super.

Vielen Dank,
Timo

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Doppelte Eintraege-2.Versuch
08.02.2004 22:15:36
y
hi Timo,
probier mal

Sub doppelte_Datensaetze()
Dim Reihe As Integer
Dim i As Integer
Reihe = 1
i = 1
Do While Sheets(1).Cells(Reihe, 1) <> ""
If Sheets(1).Cells(Reihe, 1) = Sheets(1).Cells(Reihe + 1, 1) And Sheets(1).Cells(Reihe, 2) = Sheets(1).Cells(Reihe + 1, 2) Then
Sheets(2).Cells(i, 1) = Sheets(1).Cells(Reihe, 1)
Sheets(2).Cells(i, 2) = Sheets(1).Cells(Reihe, 2)
Sheets(1).Cells(Reihe, 1).Interior.ColorIndex = 3
Sheets(1).Cells(Reihe, 2).Interior.ColorIndex = 3
i = i + 1
End If
Reihe = Reihe + 1
Loop
End Sub

cu Micha
AW: Doppelte Eintraege-2.Versuch
08.02.2004 22:29:03
Timo
Hallo Micha,
aber da passiert gar nichts?!
Anzeige
AW: Doppelte Eintraege-2.Versuch
08.02.2004 22:34:25
y
wo stehen denn deine doppelten daten ??
ich hatte vermutet; jedenfalls nach deinem code, dass diese in tabelle1 spalte 1 und 2 stehen
cu Micha
AW: Doppelte Eintraege-2.Versuch
08.02.2004 22:55:54
Timo
Hallo Micha,
genau dort stehen sie auch.
Weiteres problem:
Mein Datensatz ist relativ gross (ueber 1000 Zeilen). Das wuerde beim momentanen Code zu ueber einer Million Rechenschritte fuehren.
Ich koennte die Liste ja vorher sortieren, so dass immer nur die aktive Zeile mit der naechsten verglichen wird (wenn nicht gleich, dann die naechste mit der uebernaechsten, usw.-wenn gleich, dann die aktive mit der uebernaechsten usw.).
so wird das alles auf 1500 Schritte reduziert!!!
Mein bisheriger Code der auch gut funktioniert ist:
Public

Sub Liste_doppelte()
Dim wert1(100)
Dim wert2(200)
Dim zeilen
Dim c As Variant
zeilen = 17 'Anzahl der Zeilen die geprüft werden sollen
zaehler = 0
'Werte in Variablen einlesen
For i = 1 To zeilen
wert1(i) = Cells(i, 1)
wert2(i) = Cells(i, 1)
Next i
'Schleife um die Variable wert1(i) mit wert2(i) zu vergleichen
For i = 1 To zeilen
zaehler = 0
'Schleife, um die Variable wert1(i) mit wert2(i) zu vergleichen
For J = 1 To zeilen
If wert1(i) = wert2(J) Then
zaehler = zaehler + 1
If zaehler > 1 Then
Sheets(2).Select
Cells(i, 1).Value = wert2(i)
'wert2(i) = ""
End If
End If
Next J
Next i
End Sub

Jedoch hat er das Problem mit den vielen rechenschritten! Ausserdem kopiert er nur den ersten Wert der ersten Spalte, ich will aber die komplette Zeile in der 2.Tabelle haben.
Kannst Du mir da helfen?
Ich werde nun ins Bett gerufen,
also ne Gute Nacht,
Timo
Anzeige
AW: Doppelte Eintraege-2.Versuch
09.02.2004 08:02:15
y
hi Timo,
ich dachte eigentlich die dinger sind sortiert aber das ist nicht unbeding notwendig
und der vergleich im speicher dauert auch nicht sooo lange ;-)
probier mal:

Sub doppelte_Datensaetze()
Dim Reihe As Integer
Dim i As Integer
Dim x As Integer
Dim y As Integer
Dim ZWS(1 To 2000, 1 To 2) As String
i = 1
timeranfang = Time
For Reihe = 1 To 2000
ZWS(Reihe, 1) = Sheets(1).Cells(Reihe, 1)
ZWS(Reihe, 2) = Sheets(1).Cells(Reihe, 2)
Next Reihe
For x = 1 To 2000
For y = x + 1 To 2000
If ZWS(x, 1) <> "" Then
If ZWS(x, 1) = ZWS(y, 1) And ZWS(x, 2) = ZWS(y, 2) Then
Sheets(1).Rows(x).Copy Sheets(2).Rows(i)
Sheets(1).Rows(x).Interior.ColorIndex = 3
i = i + 1
End If
End If
Next y
Next x
End Sub

cu Micha
Anzeige
AW: Doppelte Eintraege-2.Versuch
09.02.2004 11:41:08
Timo
Guten Morgen Micha,
grosses Problem, dass noch besteht: Es werden nicht alle mehrfachen Werte in das 2. Tabellenblatt kopiert!!
Im nur der 2., 3., usw. merhrfache Wert. Nie aber der 1. (der zum vergleichen genommen wird). Ich brauche aber auch diese kopiert im 2.Blatt!!!
Danke und Gruss,
Timo
AW: Doppelte Eintraege-x.Versuch
09.02.2004 11:45:32
y
jetzt in etwa ;-)


Sub doppelte_Datensaetze()
Dim Reihe As Integer
Dim i As Integer
Dim x As Integer
Dim y As Integer
Dim ZWS(1 To 2000, 1 To 2) As String
i = 1
timeranfang = Time
For Reihe = 1 To 2000
ZWS(Reihe, 1) = Sheets(1).Cells(Reihe, 1)
ZWS(Reihe, 2) = Sheets(1).Cells(Reihe, 2)
Next Reihe
For x = 1 To 2000
For y = x + 1 To 2000
If ZWS(x, 1) <> "" Then
If ZWS(x, 1) = ZWS(y, 1) And ZWS(x, 2) = ZWS(y, 2) Then
Sheets(1).Rows(x).Copy Sheets(2).Rows(i):i=i+1
Sheets(1).Rows(y).Copy Sheets(2).Rows(i):i=i+1
Sheets(1).Rows(x).Interior.ColorIndex = 3
Sheets(1).Rows(y).Interior.ColorIndex = 3
End If
End If
Next y
Next x
End Sub

cu Micha
Anzeige
AW: Doppelte Eintraege-x.Versuch
09.02.2004 13:52:20
Timo
Hallo Micha,
ich verstehe die Welt nicht, aber Dein Code will bei mir nett arbeiten!!!

Sub doppelte_DatensaetzeTimo()
Dim Reihe As Integer
Dim i As Integer
Dim x As Integer
Dim y As Integer
Dim ZWS(1 To 2000, 1 To 2) As String
i = 1
timeranfang = Time
For Reihe = 1 To 2000
ZWS(Reihe, 1) = Sheets(1).Cells(Reihe, 1)
ZWS(Reihe, 2) = Sheets(1).Cells(Reihe, 2)
Next Reihe
For x = 1 To 2000
For y = x + 1 To 2000
If ZWS(x, 1) <> "" Then
If ZWS(x, 1) = ZWS(y, 1) And ZWS(x, 2) = ZWS(y, 2) Then
Sheets(1).Rows(x).Copy Sheets(2).Rows(i)
Sheets(1).Rows(x).Interior.ColorIndex = 3
Sheets(1).Rows(y).Copy Sheets(2).Rows(i)
Sheets(1).Rows(y).Interior.ColorIndex = 3
i = i + 1
End If
End If
Next y
Next x
End Sub

Hast Du noch eine Idee?
Gruss,
Timo
Anzeige
Problem erkannt, aber bitte helfen
09.02.2004 14:07:54
Timo
Hallo Micha, jetzt hab ich das Problem erkannt!
Ich will den Vergleich nur auf die erste Spalte beziehen!
z.b,
bmw 3er
bmw 5er
da sollen beide angesprochen werden. Im Moment muessen aber spalte 1 und spalte 2 gleich sein, damit die daten angesprochen werden.
Verstehst Du mich?
Danke,
Timo
na klar
09.02.2004 16:22:03
y
hi Timo,

Sub doppelte_Datensaetze()
Dim Reihe As Integer
Dim i As Integer
Dim x As Integer
Dim y As Integer
Dim ZWS(1 To 2000) As String
i = 1
For Reihe = 1 To 2000
ZWS(Reihe) = Sheets(1).Cells(Reihe, 1)
Next Reihe
For x = 1 To 2000
For y = x + 1 To 2000
If ZWS(x) <> "" Then
If ZWS(x) = ZWS(y) Then
Sheets(1).Rows(x).Copy Sheets(2).Rows(i): i = i + 1
Sheets(1).Rows(y).Copy Sheets(2).Rows(i): i = i + 1
Sheets(1).Rows(x).Interior.ColorIndex = 3
Sheets(1).Rows(y).Interior.ColorIndex = 3
End If
End If
Next y
Next x
End Sub

wir schaffen das schon ;-)
cu Micha
Anzeige
AW: na klar
09.02.2004 22:31:42
Timo
Hallo Micha,
ich will mich nicht zu frueh freuen und werde morgen auf der Arbeit den Kontrollcheck machen (und bei positivem Verlauf selbstverstaendlich meinen offiziellen Dank aussprechen), aber ich glaube um frei zu zitieren:
"jetzt hat sie es, jetzt hat sie es, es gruent zu gruen wenn Spaniens Blueten bluehen" ;)
Passt auch, wo ich mich doch gerade in Spanien befinde und die Temperaturen die Blumen bluehen lassen.
Aber besser Schluss damit, sonst wir mir aus Neid nicht mehr geholfen!
Bis morgen,
Timo
Noch Nicht!
10.02.2004 08:55:08
Timo
Guten Morgen,
als zu Hause dachte ich es, dass es geklappt hat, aber nun habe ich es versucht!
Ich weiss nicht warum ,jedoch werden die mehrfachen nun nicht nur einmal in die 2. Spalte kopiert, sondern alle dopplet (einmal normal und einmal farbig markiert!).
Kann ich Dir vielleicht mal die Datei senden, dann siehts Du es. Dein Makro heisst doppelte_Datensaetzeperfekt:

Die Datei https://www.herber.de/bbs/user/3526.xls wurde aus Datenschutzgründen gelöscht

Gruss,
Timo
Anzeige
jetzt aber...
10.02.2004 12:06:31
y
hi Timo,
jetzt müsste es so klappen wie du dir das vorstellst
https://www.herber.de/bbs/user/3540.xls
wenn du mal einen kleinen augenblick zeit hast könntest du mir ja mal den sinn des ganzen erklären ;-)
cu Micha
DANKE!!! DANKE!!! DANKE!!!
10.02.2004 14:39:26
Timo
Perfekt!!!! Vielen Dank, Micha!
Das Makro ist fuer meine Arbeit. Wir bekommen Listen von verkauften Autos, die wir finanziell belohnen sollen. Dabei sind 2 Kriterien: Mind. 2 Autos pro Kunde! Daher muss der Kundename (Spalte A) mind. zweimal auftauchen, damit er in die bereinigte Liste (Sheet2) reinkommt.

Gruss,
Timo
Anzeige
danke für die rückmeldung :-) o.t.
10.02.2004 14:42:19
y
...
AW: Doppelte Eintraege-2.Versuch
08.02.2004 22:49:43
Martin M.
Hallo Timo
in dieser Datei ist ein Code zum Suchen von doppelten Einträgen. Die Suche geht zwar über mehrere Spalten und 2 Tabellenblätter, aber du kannst dir ja das herausnehmen was zu brauchst.
Gute Unterhaltung.
https://www.herber.de/bbs/user/3511.xls
Grüße
Martin
AW: Doppelte Eintraege-2.Versuch
08.02.2004 22:59:27
Timo
Vielen Dank Martin,
ich weiss nur nicht ob ich als Anfaenger mit Herauskopieren weiter komme!
Zudem gibt es schon beim Oeffnen kuriose Fehlermeldungen.
Ich werde mich der Datei mal morgen annehmen und mein Bestes geben (auch wenn das wohl nicht genug sein wird).
Schoenen Abend noch,
Timo
Anzeige
AW: Doppelte Eintraege-2.Versuch
08.02.2004 23:09:12
Martin M.
Hallo Timo
Den Code im Modul "Diese Arbeitsmappe" brauchst du nicht zu berücksichtigen. Dieser erstellt nur ein Zellen-Kontextmenü so daß du im Blatt mit der rechten Mousetaste das Makro starten kannst. Schau dir den Code im Modul "Steuerung" an.
Gute Nacht
Martin
AW: Doppelte Eintraege-2.Versuch
09.02.2004 11:38:42
Timo
Alles klar werde ich mal versuchen!
Danke,
Timo

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige