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

Tabellen vergleichen die 2.

Tabellen vergleichen die 2.
20.07.2003 14:59:23
Dirk
Hallo,
hatte weiter unten schon mal gepostet und einen Tipp aus dem Forumsarchiv bekommen. Ich habe den Code etwas angepasst, aber wohl noch einen Fehler gemacht. (Laufzeitfehler 1004)
Kann mir jemand sagen, was da noch falsch ist???

Sub Datenabgleich()
Dim wks1 As Worksheet
Dim wks2 As Worksheet
Dim wks3 As Worksheet
Set wks1 = Worksheets("Tabelle1")
Set wks2 = Worksheets("Tabelle2")
Set wks3 = Worksheets("Tabelle3")
For i = 1 To 65535
If wks1.Cells(i, 1) = wks2.Cells(i, 1) Then
wks3.Range(Cells(i, 1), Cells(i, 255)) = wks1.Range(Cells(i, 1), Cells(i, 255))
Else
wks3.Cells(i, 1) = wks1.Cells(i, 1)
wks3.Cells(i, 2) = "keine Übereinstimmung"
End If
Next
End Sub

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellen vergleichen die 2.
20.07.2003 15:05:44
Jens
Hallo
Error 1004 = Anwendungs- oder Ojektdefinierter Fehler
In welcher Zeile? geh mit der Taste F8 schritt für schritt durch das Programm bis der Fehler auftritt.
Vermudung:
Es gibt keine Tabelle1 2 oder 3.
Gruß Jens

AW: Tabellen vergleichen die 2.
20.07.2003 15:16:45
Dirk
Hallo
der Code läuft bis zur zeile "wks3.range(cells...." also bis zur Zeile vor der Else Anweisung. Hm, Tabelle 1-3 ist vorhanden. Noch ne andere Idee??
Gruß Dirk

AW: Tabellen vergleichen die 2.
20.07.2003 15:39:30
Jens
Hätte ich doch vorhin schon sehen müssen, ist wohl die Wärme.
Falsch:
wks3.Range(Cells(i, 1), Cells(i, 255)) = wks1.Range(Cells(i, 1), Cells(i, 255))
Richtig:
wks3.Range(Cells(i, 1), Cells(i, 256)).Value = wks1.Range(Cells(i, 1), Cells(i, 256)).Value
Bei Zuweise von ganzen Bereichen mit Range muss .Value mit angegeben werden.
Bei einzel Zell zuweisungen ist .Value optional.
Gruß Jens

Anzeige
AW: Tabellen vergleichen die 2.
20.07.2003 15:52:58
Dirk
Hallo,
ich sehe gerade, das ganze geht so nicht, denn es wird ja immer Zeile 1 aus Tabelle 1 mit Zeile 1 aus Tabelle 2 verglichen. Da die Daten aber nicht sortiert sind geht das so nicht. Gibt es eine Möglichkeit einen Wert einzulesen, mit den Werten einer ganzen Spalte zu verglechen und dann die Ausgabe zu realisieren???
Gruß Dirk

AW: Tabellen vergleichen die 2.
20.07.2003 16:15:01
Jens
Hallo
Mal ein Beispiel mit zwei Tabellen.
Tabelle1 Spalte 1 wird mit allen Werten in Spalte 1 Tabelle2 verglichen.
Vielleicht kannst du es nach deinen Anforterungen umbauen.

Sub Such_und_Find()
On Error Resume Next
Dim WS1     As Worksheet
Dim WS2     As Worksheet
Dim Suche   As String
Dim find    As Variant
Set WS1 = Worksheets("Tabelle1")
Set WS2 = Worksheets("Tabelle2")
For i = 1 To WS1.Range("A65536").End(xlUp).Row
Suche = WS1.Cells(i, 1)
Set find = WS2.Range("A:A").find(Suche, LookIn:=xlValues)
If find Is Nothing Then
WS1.Cells(i, 2) = "nicht gefunden"
Else
WS2.Cells(i, 2) = "treffer"
End If
Next i
End Sub

Gruß Jens

Anzeige
AW: Tabellen vergleichen die 2.
20.07.2003 16:56:31
Dirk
Hallo,
hab den Code geändert (s.u) allerdings listet es mir nur die Zeilen mit "nicht gefunden" auf. Die Zeilen mit Übereistimmung werden nichr nach WS3 kopiert, weißt jemang warum???

Sub Such_und_Find()
On Error Resume Next
Dim WS1     As Worksheet
Dim WS2     As Worksheet
Dim WS3     As Worksheet
Dim Suche   As String
Dim find    As Variant
Set WS1 = Worksheets("Tabelle1")
Set WS2 = Worksheets("Tabelle2")
Set WS3 = Worksheets("Tabelle3")
For i = 1 To WS1.Range("A65536").End(xlUp).Row
Suche = WS2.Cells(i, 1)
Set find = WS1.Range("A:A").find(Suche, LookIn:=xlValues)
If find Is Nothing Then
WS3.Cells(i, 1) = WS2.Cells(i, 1)
WS3.Cells(i, 2) = "nicht gefunden"
Else
WS3.Range(Cells(i, 1), Cells(i, 255)).Value = WS1.Range(Cells(i, 1), Cells(i, 255)).Value
End If
Next i
End Sub


Anzeige
AW: Tabellen vergleichen die 2.
20.07.2003 18:11:53
Jens
Hallo
Ich kann z.Z. keinen Fehler entdecken.
Alternative Lösung:
WS3.Rows(i).Value = WS1.Rows(i).Value
Du willst ja sowieso die ganze Zeile haben.
Gruß Jens

Danke
20.07.2003 21:33:10
Dirk
Hallo Jens,
danke Dir, hat funktioniert.
Schönen Sonntag noch
Dirk

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige