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

Zeilen vergleichen, doppelte Zeilen wegkopieren

Zeilen vergleichen, doppelte Zeilen wegkopieren
21.01.2003 14:51:20
Walter
Hallo,
ich habe folgendes Problem und waere fuer jede Hilfe dankbar:

Eine Liste (Spalte A - Q) mit folgendem Aufbau:

Arbeitsblatt "Aktuell"
Spalte A - Familienname
Spalte B - Vorname
Spalte E - Geburtsdatum
Spalte K - Meldedatum

Diese Liste wird staendig mit Daten befuellt.

Und jetzt sollte ein Makro folgendes erledigen:
Sobald die Datei gespeichert wird, soll das Makro in dieser Liste nachschauen, ob es doppelte Datensaetze im Hinblick auf die Spalten A, B, E gibt, d.h., wird eine Person eingetragen, die bereits vorhanden ist, das Meldedatum (Spalte K) jedoch ein anderes ist, so soll jene Zeile in das Arbeitsblatt "Alt" wegkopiert werden, in der diese Person in der Spalte K das aeltere Datum stehen hat.
Ich hoffe, dass das verstaendlich ist. Wenn mir jemand mit einem Makro aushelfen koennte, waere mir sehr geholfen und ich bedanke mich schon im Vorhinein fuer die Muehe.

Walter

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Zeilen vergleichen, doppelte Zeilen wegkopieren
21.01.2003 17:32:28
Steffan
Hallo Walter,

teste folgendes Makro (gehört in den Codebereich von 'DieseArbeitsmappe'):

Option Explicit


Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim wks As Worksheet
Dim wks_alt As Worksheet
Dim i As Integer, j As Integer, k As Integer
Dim startZeile As Integer
Dim zl() As Integer
ReDim zl(0)

'Vereinbarungen
Set wks = Worksheets("Tabelle1")
Set wks_alt = Worksheets("Alt")
startZeile = 2

'Werte vergleichen
For i = startZeile To wks.Cells(65536, 1).End(xlUp).Row - 1
For j = i + 1 To wks.Cells(65536, 1).End(xlUp).Row
If wks.Cells(i, 1).Value = wks.Cells(j, 1).Value And _
wks.Cells(i, 2).Value = wks.Cells(j, 2).Value And _
wks.Cells(i, 5).Value = wks.Cells(j, 5).Value Then
If Not (zl(0) = Empty) Then ReDim Preserve zl(UBound(zl) + 1)
If wks.Cells(i, 11).Value > wks.Cells(j, 11).Value Then _
zl(UBound(zl)) = j Else zl(UBound(zl)) = i
End If
Next j
Next i

'überprüfen ob Zeile mehrfach vorkommt
'wichtig bei mehr als zwei übereinstimmenden Einträgen
For i = 0 To UBound(zl) - 1
For j = i + 1 To UBound(zl)
If zl(i) = zl(j) Then
For k = j To UBound(zl)
If k < UBound(zl) Then zl(k) = zl(j + 1) Else zl(k) = 0
Next k
End If
Next j
Next i
On Error GoTo ex 'falls keine Dopplungen gefunden wurden
If zl(UBound(zl)) = 0 Then ReDim Preserve zl(UBound(zl) - 1)


'Zeilen Verschieben
For i = UBound(zl) To 0 Step -1
wks.Rows(zl(i)).Cut _
Destination:=wks_alt.Cells(wks_alt.Cells(65536, 1).End(xlUp).Row + 1, 1)
wks.Rows(zl(i)).Delete
Next i
ex:
End Sub

Ggf. musst Du die Namen der Tabellenblätter bei Set ... noch anpassen. Außerdem bin ich davon ausgegangen, dass Du vor der Liste noch eine Kopf hast und die Liste erst in Zeile 2 losgeht. Falls nicht musst Du noch 'startZeile' auf Deinen Wert ändern.

Das Makro wird immer automatisch ausgeführt, wenn Du die Datei speicherst.
Steffan.

Anzeige
Re: Zeilen vergleichen, doppelte Zeilen wegkopieren
22.01.2003 08:34:21
Walter
DANKE, funktioniert super

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige