Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1168to1172
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
Inhaltsverzeichnis

Genaue Stringprüfung

Genaue Stringprüfung
Günter
Guten Tag,
habe folgende Frage:
In einem vorhandenen Makro werden 2 Spalten abgeglichen. Text in diesem
Falle. Bei der Ausgabe wird beim Abgleich nicht die gewünschten genau identischen
Werte/Texte herausgeschrieben, sondern auch die, welche nur einen Teilstring
enthalten.
Was müßte im anhnängenden Makro passieren, damit ein genauer Abgleich stattfindet?
Gruß

Sub SuchenMarkieren_Wörter()
Dim col As New Collection
Dim iRowS As Integer, iRow As Integer, iRowT As Integer
Dim arrG
Dim arrL
Dim Zaehler As Integer
Dim Zeile As Integer
col.Add Worksheets("Tabelle1")
col.Add Worksheets("Tabelle2")
col.Add Worksheets("Tabelle3")
iRow = 1
Do Until IsEmpty(col(3).Cells(iRow, 1))
iRowS = 1
Do Until IsEmpty(col(1).Cells(iRowS, 1))
If InStr(col(1).Cells(iRowS, 1).Value, col(3).Cells(iRow, 1).Value) Then
iRowT = iRowT + 1
col(2).Range(col(2).Cells(iRowT, 1), col(2).Cells(iRowT, 2)).Value = _
col(1).Range(col(1).Cells(iRowS, 1), col(1).Cells(iRowS, 2)).Value
col(1).Cells(iRowS, 1).Interior.ColorIndex = 6
End If
iRowS = iRowS + 1
Loop
iRow = iRow + 1
Loop
MsgBox "Fertig!!"
End Sub

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Genaue Stringprüfung
29.07.2010 14:46:13
Rudi
Hallo,
sondern auch die, welche nur einen Teilstring enthalten.

genau darauf vergleichst du doch auch:
If InStr(col(1).Cells(iRowS, 1).Value, col(3).Cells(iRow, 1).Value) Then
Ändere in
If col(1).Cells(iRowS, 1).Value = col(3).Cells(iRow, 1).Value) Then
Gruß
Rudi
AW: Genaue Stringprüfung
29.07.2010 14:54:18
Günter
Hallo Rudi,
habe es entsprechend geändert - kommt aber jetzt eine Fehlermeldung:
Fehler beim Kompilieren: Erwartet: Then oder GoTo.
Günter
Do Until IsEmpty(col(1).Cells(iRowS, 1))
'If InStr(col(1).Cells(iRowS, 1).Value, col(3).Cells(iRow, 1).Value) Then
If col(1).Cells(iRowS, 1).Value = col(3).Cells(iRow, 1).Value) Then
iRowT = iRowT + 1
col(2).Range(col(2).Cells(iRowT, 1), col(2).Cells(iRowT, 2)).Value = _
col(1).Range(col(1).Cells(iRowS, 1), col(1).Cells(iRowS, 2)).Value
col(1).Cells(iRowS, 1).Interior.ColorIndex = 6
Anzeige
letzte ) löschen owT
29.07.2010 15:15:40
Rudi
AW: letzte ) löschen owT
29.07.2010 15:21:17
Günter
Hallo Ihr Beiden,
läuft jetzt wunderbar.
Vielen Danke!!!
Gruß
Günter
AW: Genaue Stringprüfung
29.07.2010 14:48:06
Peter
Hallo Günter,
ändere
If InStr(col(1).Cells(iRowS, 1).Value, col(3).Cells(iRow, 1).Value) Then
in
IF Col(1).Cells(iRwoS, 1).Value = Col(3).Cells(iRow, 1).Value Then
Gruß Peter
AW: Genaue Stringprüfung
29.07.2010 15:19:07
Günter
Hallo,
danke erst mal. Aber auch hier kommt der Fehler, welche ich schon Rudi
geschrieben hatte.
Gruß
Günter
AW: Genaue Stringprüfung
29.07.2010 17:18:07
Peter
Hallo Günter,
wenn Dein Makro in etwa so aussieht
Option Explicit
Public Sub Test()
Dim iRowS  As Integer
Dim iRowT  As Integer
Dim iRow   As Integer
Dim col    As Variant
   Do Until IsEmpty(col(1).Cells(iRowS, 1))
      'If InStr(col(1).Cells(iRowS, 1).Value, col(3).Cells(iRow, 1).Value) Then
      If col(1).Cells(iRowS, 1).Value = col(3).Cells(iRow, 1).Value Then
         iRowT = iRowT + 1
         col(2).Range(col(2).Cells(iRowT, 1), col(2).Cells(iRowT, 2)).Value = _
         col(1).Range(col(1).Cells(iRowS, 1), col(1).Cells(iRowS, 2)).Value
         col(1).Cells(iRowS, 1).Interior.ColorIndex = 6
      End If
   Loop
End Sub
kommt kein Fehler
Gruß Peter
Anzeige
AW: Genaue Stringprüfung
30.07.2010 07:23:51
Günter
Hallo Peter,
Makro läuft jetzt perfekt.
Vielen Dank für die Hilfe.
Vielleicht noch eine kleine Frage:
Könnte ich die Suche auch so einstellen, dass die Groß- und Kleinschreibung
berücksichtigt wird?
Vielleicht mit einer kleinen Auswahlbox (groß/klein)?
Schönen Gruß
Günter
AW: Genaue Stringprüfung
30.07.2010 14:44:10
Peter
Hallo Günter,
die Groß-/Kleinschreibung wird doch bereits berücksichtigt, denn nur wenn beide Seiten der Abfrage gleichartig geschrieben wurden, wird Gleichheit erreicht.
Wenn Du allerdings die Groß-/Kleinschreibung ausschalten möchtest, musst du mit LCase oder UCase arbeiten.
If LCase(col(1).Cells(iRowS, 1).Value) = LCase(col(3).Cells(iRow, 1).Value) Then
vergleicht beide Seiten in Kleinbuchstaben, UCase in Großbuchstaben.
Gruß Peter
Anzeige
AW: Genaue Stringprüfung
02.08.2010 08:36:07
Günter
Guten Morgen,
vielen Dank Peter für Deine Hilfe.
Schönen Gruß
Günter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige