Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
888to892
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
888to892
888to892
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Spaltenvergleich - HILFE!

Spaltenvergleich - HILFE!
24.07.2007 09:39:04
gromminger
Hallo zusammen.
Ich möchte die Werte in 2 Worksheets vergleichen.
Wenn die Schlüsselnummer in beiden Sheets vorhanden ist,
so überschreibt er die alten Werte durch die neuen. Dies klappt soweit.
Was allerdings noch nicht klappt ist, wenn im Sheet1 Einträge vorhanden sind,
die in Sheet2 noch nicht vorhanden sind und daher dort angelegt werden müssen.
Stattdessen wird jeder Eintrag exakt 14 Mal eingetragen (so viele Einträge sind in Sheet1).
Bitte um Eure Hilfe!
Mein erster Versuch:

Sub Compare()
Dim wsh1, wsh2 As Worksheet
Dim wbk As Workbook
Dim anz, anz2 As Long
Dim x, x2, x3, z, ze, zeile, zeile2 As Integer
Set wbk = ThisWorkbook
Set wsh1 = Worksheets("OOL")
Set wsh2 = Worksheets("Overview")
x = 2
x2 = 2
anz = wsh1.Cells(65536, 1).End(xlUp).Row
anz2 = wsh2.Cells(65536, 1).End(xlUp).Row
zeile_neu = 20
For z = 2 To anz
For ze = 2 To anz2
If wsh1.Cells(z, 1) = wsh2.Cells(ze, 1) Then
wsh2.Cells(ze, 2) = wsh1.Cells(z, 2)
wsh2.Cells(ze, 3) = wsh1.Cells(z, 4)
wsh2.Cells(ze, 4) = wsh1.Cells(z, 18)
End If
Else
wsh2.Cells(zeile_neu, 1) = wsh1.Cells(z, 1)
wsh2.Cells(zeile_neu, 2) = wsh1.Cells(z, 2)
wsh2.Cells(zeile_neu, 3) = wsh1.Cells(z, 3)
wsh2.Cells(zeile_neu, 4) = wsh1.Cells(z, 4)
zeile_neu = zeile_neu + 1
End If
Next ze
Next z
End Sub


Gruss,
Gromminger

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spaltenvergleich - HILFE!
24.07.2007 10:16:00
Harry
Hallo,
du willst die Zeile updaten, wenn vorhanden und nur bei Nichtvorhandensein eine Zeile einfügen?
dann probier mal:

Sub Compare()
Dim wsh1, wsh2 As Worksheet
Dim wbk As Workbook
Dim anz, anz2 As Long
Dim x, x2, x3, z, ze, zeile, zeile2, helper As Integer
Set wbk = ThisWorkbook
Set wsh1 = Worksheets("OOL")
Set wsh2 = Worksheets("Overview")
x = 2
x2 = 2
anz = wsh1.Cells(65536, 1).End(xlUp).Row
anz2 = wsh2.Cells(65536, 1).End(xlUp).Row
zeile_neu = 20
For z = 2 To anz
helper = 0
For ze = 2 To anz2
If wsh1.Cells(z, 1) = wsh2.Cells(ze, 1) Then
wsh2.Cells(ze, 2) = wsh1.Cells(z, 2)
wsh2.Cells(ze, 3) = wsh1.Cells(z, 4)
wsh2.Cells(ze, 4) = wsh1.Cells(z, 18)
helper = 1
End If
Next ze
If helper = 1 Then
wsh2.Cells(zeile_neu, 1) = wsh1.Cells(z, 1)
wsh2.Cells(zeile_neu, 2) = wsh1.Cells(z, 2)
wsh2.Cells(zeile_neu, 3) = wsh1.Cells(z, 3)
wsh2.Cells(zeile_neu, 4) = wsh1.Cells(z, 4)
zeile_neu = zeile_neu + 1
End If
Next z
End Sub


Gruß
Harry

Anzeige
AW: Spaltenvergleich - HILFE!
24.07.2007 11:02:00
gromminger
Hi.
Das scheint zu funktionieren, aber folgendes muss ich noch optimieren:
die Daten werden enbloc ab Zeile 20 in Sheet2 eingetragen
aber: ich würde aber gerne die Werte überschreiben, wenn der Name
in den oberen Zeilen bereits schon einmal aufgetaucht ist
Wäre nett, wenn Ihr mir nochmals helfen könntet?!
Danke und Gruss,
Gromminger

AW: Spaltenvergleich - HILFE!
24.07.2007 11:12:00
Harry
upppsss,
die Zeile

If helper = 1 Then


ändern in


If helper = 0 Then


Ist immer ein Problem, wenn man nicht die Originaldaten zum testen hat
Gruß
Harry

Anzeige
AW: Spaltenvergleich - HILFE!
24.07.2007 13:39:00
gromminger
Hallo und nochmals vielen Dank!
Es funktioniert nun alles wunschgemäß!
Gruss,
Gromminger

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige