Anzeige
Archiv - Navigation
800to804
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
800to804
800to804
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Vergleich funktioniert nicht
19.09.2006 09:27:45
Thomas
Guten Morgen.
Ich bin fast am verzweifeln.
Folgendes Problem. Ich habe zwei Dateien. In der ersten habe ich eine Spalte mit fortlaufenden Nummern. In der zweiten Datei befinden sich die gleichen Nummern in einer Spalte, aber unsortiert.
Mit einer For Next Schleife hole ich mir schritt für schritt die Nummern aus der ersten Datei und suche sie in der zweiten Datei. Wenn ich sie gefunden habe, überprüfe den Inhalt der zweiten Spalte von Datei1 und Datei2. Obwohl in beiden dasselbe steht, bekomme ich ein False.
Beispiel Datei 1
A1 = 0001 B1 = Filter
A2 = 0002 B2 = Ventil
A3 = 0003 B3 = Drossel
Beispiel Datei 2
A1 = 0003 B1 = Drossel
A2 = 0001 B2 = Filter
A3 = 0002 B3 = Ventil
Sinn und zweck ist folgender. Die Datei2 wird jeden Tag neu erstellt und die Datei1 überprüft die Datei2 auf Änderungen und färbt die entsprechenden Felder rot ein.
Vergleichen tue ich wie folgt:
if workbooks("datei1.xls").worksheets("Tabelle1").cells(i,2).value &lt&gt workbooks("datei2.xls").worksheets("Tabelle1").cells(i,2).value then
end if
Und diese Bedingung wird immer erfüllt, obwohl beide Daten gleich sind.
Bitte helft mir. Zur Not könnte ich euch das Marko zur Verfügung stellen, aber leider nicht die Datei selber (Firmeninterne Daten).
Gruß Thomas

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Vergleich funktioniert nicht
19.09.2006 09:42:47
Rudi
Hallo,
ist doch logisch! Du vergleichst z.B. Zeile2 Datei1 mit Zeile2 Datei2. Und die sind unterschiedlich.
Du musst durch eine Doppelschleife.

Sub Vergleich()
Dim i As Integer, j As Integer
Dim wks1 As Worksheet, wks2 As Worksheet
Set wks1 = Workbooks("datei1.xls").Worksheets("Tabelle1")
Set wks2 = Workbooks("datei2.xls").Worksheets("Tabelle1")
For i = 1 To wks1.Cells(65536, 1).End(xlUp).Row
For j = 1 To wks2.Cells(65536, 1).End(xlUp).Row
If wks1.Cells(i, 1) = wks2.Cells(j, 1) Then
If wks1.Cells(i, 2) <> wks2.Cells(j, 2) Then wks2.Cells(j, 2).Interior.ColorIndex = 3
Exit For
End If
Next j
Next i
End Sub

Gruß
Rudi
Anzeige
AW: Vergleich funktioniert nicht
19.09.2006 09:54:12
Thomas
Hallo Rudi
Sorry, hab vergessen es zu erwähnen, aber ich hab das natürlich mit 2 Schleifen gemacht.
Ist zwar nicht so elegant wie deins, aber eigentlich sollte es funktionieren
&ltpre&gt
Private Sub CommandButton1_Click()
Dim i As Long, j As Long
Dim number As String
Dim found As Long
Dim flag As Byte
Dim string1 As String, string2 As String, string3 As String, string4 As String
Workbooks.Open Filename:="H:\User\KTL-01\Paternoster\Paternosterdatenbank.xls" 'neues File öffnen
For i = 7 To 3280
number = 0
If Workbooks("Paternosterinhalt.xls").Worksheets("Tabelle1").Cells(i, 5).Value &lt&gt "" Or Workbooks("Paternosterinhalt.xls").Worksheets("Tabelle1").Cells(i, 5).Value = 0 Then
number = Workbooks("Paternosterinhalt.xls").Worksheets("Tabelle1").Cells(i, 5).Value
flag = 1
For j = 2 To 2000
If Workbooks("Paternosterdatenbank.xls").Worksheets("Tabelle1").Cells(j, 3).Value = number Then
flag = 0
'------------------------------------------------------------------------------------------
' Text 1
If Workbooks("Paternosterinhalt.xls").Worksheets("Tabelle1").Cells(i, 7) &lt&gt Workbooks("Paternosterdatenbank.xls").Worksheets("Tabelle1").Cells(j, 4) Then
Workbooks("Paternosterinhalt.xls").Worksheets("Tabelle1").Cells(i, 7).Interior.ColorIndex = 3
Else
Workbooks("Paternosterinhalt.xls").Worksheets("Tabelle1").Cells(i, 7).Interior.ColorIndex = xlNone
End If
'------------------------------------------------------------------------------------------
' Text 2
If Workbooks("Paternosterinhalt.xls").Worksheets("Tabelle1").Cells(i, 8) &lt&gt Workbooks("Paternosterdatenbank.xls").Worksheets("Tabelle1").Cells(j, 5) Then
Workbooks("Paternosterinhalt.xls").Worksheets("Tabelle1").Cells(i, 8).Interior.ColorIndex = 3
Else
Workbooks("Paternosterinhalt.xls").Worksheets("Tabelle1").Cells(i, 8).Interior.ColorIndex = xlNone
End If
'------------------------------------------------------------------------------------------
' Hersteller
If Workbooks("Paternosterinhalt.xls").Worksheets("Tabelle1").Cells(i, 4) &lt&gt Workbooks("Paternosterdatenbank.xls").Worksheets("Tabelle1").Cells(j, 8) Then
Workbooks("Paternosterinhalt.xls").Worksheets("Tabelle1").Cells(i, 4).Interior.ColorIndex = 3
Else
Workbooks("Paternosterinhalt.xls").Worksheets("Tabelle1").Cells(i, 4).Interior.ColorIndex = xlNone
End If
'------------------------------------------------------------------------------------------
' SAP-Nummer
If Workbooks("Paternosterinhalt.xls").Worksheets("Tabelle1").Cells(i, 6) &lt&gt Workbooks("Paternosterdatenbank.xls").Worksheets("Tabelle1").Cells(j, 10) Then
Workbooks("Paternosterinhalt.xls").Worksheets("Tabelle1").Cells(i, 6).Interior.ColorIndex = 3
Else
Workbooks("Paternosterinhalt.xls").Worksheets("Tabelle1").Cells(i, 6).Interior.ColorIndex = xlNone
End If
'------------------------------------------------------------------------------------------
Workbooks("Paternosterinhalt.xls").Worksheets("Tabelle1").Cells(i, 7).Value = Workbooks("Paternosterdatenbank.xls").Worksheets("Tabelle1").Cells(j, 4).Value
Workbooks("Paternosterinhalt.xls").Worksheets("Tabelle1").Cells(i, 8).Value = Workbooks("Paternosterdatenbank.xls").Worksheets("Tabelle1").Cells(j, 5).Value
Workbooks("Paternosterinhalt.xls").Worksheets("Tabelle1").Cells(i, 4).Value = Workbooks("Paternosterdatenbank.xls").Worksheets("Tabelle1").Cells(j, 8).Value
Workbooks("Paternosterinhalt.xls").Worksheets("Tabelle1").Cells(i, 6).Value = Workbooks("Paternosterdatenbank.xls").Worksheets("Tabelle1").Cells(j, 10).Value
GoTo Ende
End If
If flag = 1 Then
Workbooks("Paternosterinhalt.xls").Worksheets("Tabelle1").Cells(i, 7).Value = "-"
Workbooks("Paternosterinhalt.xls").Worksheets("Tabelle1").Cells(i, 8).Value = "-"
Workbooks("Paternosterinhalt.xls").Worksheets("Tabelle1").Cells(i, 4).Value = "-"
Workbooks("Paternosterinhalt.xls").Worksheets("Tabelle1").Cells(i, 6).Value = "-"
End If
Next j
Ende:
End If
Next i
Workbooks("Paternosterinhalt.xls").Worksheets("Tabelle1").Activate
End Sub&lt/pre&gt
Gruß Thomas
PS: Darf man fragen wo du herkommst, ich kenne nähmlich jemanden, der sich auch Rudi Maintaire nennt.
Anzeige
AW: Vergleich funktioniert nicht
19.09.2006 10:50:08
Rudi
Hallo,
sollte tatsächlich gehen. Wenn es sich bei der DB um einen Download aus einer anderen Datenbank (z.B.SAP) handelt, kann es sein, dass Leerzeichen vorangestellt oder angefügt wurden. Dann sind die Strings natürlich ungleich.
Du kennst einen Rudi Maintaire? Welch Zufall. Und dann noch einen Rudi? Der Name ist extrem selten. Ich dachte, dass ich nach dem Ableben meines Vaters der letzte männliche Vertreter der Linie bin.
Mich kennst du aber sicher nicht. Ich kenne nur sehr wenige Thomasse und von denen hat keiner was mit Paternostern zu tun.
Gruß
Rudi
AW: Vergleich funktioniert nicht
19.09.2006 11:07:07
Thomas
Hm, das mit den Leerzeichen leuchtet mir ja ein, aber wenn ich den Durchlauf ein zweites mal starte, sollte der Inhalt ja gleich sein, da ich ja, wenn ein Unterschied festgestellt wurde den Inhalt aus der 2. Datei in die erste kopiere.
Thomas
Anzeige
AW: Vergleich funktioniert nicht
19.09.2006 12:08:30
Gert
Hallo Thomas,
meine VBA-Kenntnisse sind sehr bescheiden.
Aber sollte die 2te Datei nicht erst einmal aufsteigend sortiert und danach verglichen
werden ?
mfg
Gert
AW: Vergleich funktioniert nicht
19.09.2006 12:20:13
Thomas
Hallo
Ne, das suchen dieser Nummer funktioniert ja komischerweise, denn dort mach ich ja auch nur den Vergleich zweier Zellen.
mfg Thomas
Fehler gefunden
19.09.2006 13:17:06
Thomas
Uff, jetzt hab ich meinen Fehler doch noch gefunden.
und zwar habe ich die Zellen vorher mit "-" überschrieben und so mußten sie ja unterschiedlich sein. Das Überschreiben mit "-" hätte erst nach dem Durchlauf der inneren Schleife erfolgen dürfen.
Trotzdem Danke für die Hilfe. Das Macro braucht jetzt nur noch 51s statt 1 Stunde.
mfg Thomas
Anzeige

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige