ich benutze in einer Exceltabelle folgendes Modul, welches mir sagt, ob ein Wort eines Textes in Zelle A auch in dem Text von Zelle B vorkommt.
Hallo,
die folgende benutzerdef. Funktion vergleicht ganze Wörter, getrennt durch ein Leerzeichen (ab XL2000)
Ein Punkt am Satzende wird nicht berücksichtigt.
Aufrufen in Excel mit:
=VGL(dein Text1;dein Text2)
Gruß
Christoph
Option Explicit
Public
Function VGL(Text1$, Text2$)
Dim a, b, i%, j%, BoFnd As Boolean
If Right(Text1, 1) = "." Then Text1 = Left(Text1, Len(Text1) - 1)
If Right(Text1, 1) = "." Then Text1 = Left(Text1, Len(Text1) - 1)
a = Split(Text1)
b = Split(Text2)
For i = 0 To UBound(a)
For j = 0 To UBound(b)
If b(j) = a(i) Then
BoFnd = True
Exit For
Exit For
End If
Next
Next
VGL = BoFnd
End Function
Das klappt bei mir hervorragend ( Danke noch einmal Christoph). Nun möchte ich die Datei gerne weitergeben und stelle leider fest, dass die Funktion nicht auf der englischen Mac Office Version 2001 läuft. Er meckert anscheinend über den Befehl „split(Text1)“ . Jetzt weiss ich nicht, ob es daran liegt, dass es eine englische version ist, oder ob es an der Mac-Version liegt.
Ich habe noch eine andere Funktion getestet, die mir WernerB gebastelt hat ( auch hier noch einmal grossen Dank)
Function SUWO(Z1 As Range, Z2 As Range) As Boolean
Dim Tx As String, sW As String
Dim p1 As Integer, p2 As Integer
If VBA.Strings.Len(Z1.Text) = 0 Then Exit Function
Tx = Z1.Text & " "
p1 = 1
If VBA.Strings.InStr(Tx, " ") > 0 Then
p2 = VBA.Strings.InStr(Tx, " ")
Else
p2 = VBA.Strings.Len(Tx) + 1
End If
Do While p2 > 0
sW = VBA.Strings.Mid(Tx, p1, p2 - p1)
If VBA.Strings.InStr(Z2.Text, sW) > 0 Then
SUWO = True
Exit Do
End If
If InStr(p2 + 1, Tx, " ") > 0 Then
p1 = p2 + 1
p2 = InStr(p2 + 1, Tx, " ")
Else
Exit Do
End If
Loop
End Function
Diese Funktion lässt jedoch als Werte für die beiden Zellen, die ich vergleichen möchte nur eine EIngabe wie „SUWO(A1;A2) zu und nicht so etwas wie : „SUWO(„Wetter“;Sverweis(A1;Daten;2;Falsch)) und somit kann ich sie nicht einsetzten.
Kann mir jemand sagen, was ich machen muss, damit die Funktion von Christoph auch auf anderen Systemen läuft ? Das wäre für mich praktischer, da ich nicht alles in den Feldern ändern muss.
Oder weiss jemand, wie ich die Funktion von WernerB ändern muss, damit sie alles akzeptiert, was einen Text liefert ?
Vielen Dank, Gruss Val-Harris