Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1484to1488
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

Label vergleichen

Label vergleichen
06.04.2016 14:55:53
Dennis
Hallo,
ich hoffe mir kann jemand unter die Arme greifen. Im Netz finde ich sehr viel über die Operatoren aber ich schaffe es nicht sie richtig anzusteuern.
Ich versuch das mal zu erklären.
Ich habe eine Userform erstellt auf der ich Labels als Paar nebeneinander positioniert habe. Sobald etwas in einer Combox ausgewählt wird, füllen sich die Labels mit Werten.
Die Werte holt er sich über die Funktion vlook aus einer Excel-Liste.
Meine Frage dazu.
Ich möchte jetzt die Labels die nebeneinander stehen miteinander vergleichen.
Das Ergebnis soll True/False ausgeben.
Es soll kontrolliert werden ob irgendeine Ziffer oder Buchstabe im anderen Label auch auftaucht.
Mit Like schaffe ich bei identischen Labels ein True als Ergebnis. Ich schaffe es auch bei einzelnen Buchstaben ein True zu erzielen. Wenn aber irgendein Buchstabe identisch ist schaffe ich das nicht und dafür brauche ich Hilfe.
(Wenn kein Buchstabe identisch ist natürlich False als Ergebnis)
Ist der Like Operator dafür überhaupt der richtige oder sollte ich einen anderen benutzen?
Danke im schon mal

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

Betreff
Datum
Anwender
Anzeige
AW: Label vergleichen
06.04.2016 15:09:34
Michael
Hi Dennis,
hier für die grundsätzliche Logik:
Function buchstabenVergleichen(s1 As String, s2 As String) As Boolean
Dim i As Long
For i = 1 To Len(s1)
If InStr(s2, Mid(s1, i, 1)) > 0 Then
buchstabenVergleichen = True
Exit Function
End If
Next
End Function
Sub aufrufen()
MsgBox buchstabenVergleichen("abcdef123", "ghijk3567") ' = WAHR
MsgBox buchstabenVergleichen("abcdef123", "ghijk567") ' = FALSE
End Sub
Schöne Grüße,
Michael

AW: Label vergleichen
07.04.2016 07:37:36
Dennis
Hi Michael,
Danke für deine Hilfe.
Zur Zeit klappt das in meiner Umgebung noch nicht so gut (eigentlich gar nicht) aber ich quäl mich dort mal durch.
Es kann sein das ich nachher dazu nochmal eine Frage habe.
Der Ansatz ist glaube ich schöner als meiner.
Gruß
Dennis

Anzeige
AW: Label vergleichen
07.04.2016 09:58:34
Dennis
geilomat das rennt jetzt aber sowas von
danke nochmal
Eine Frage habe ich wenn ich das Ergebnis in einer Variable haben möchte, wird mir erklärt das ein Sub, Funktion... haben will. Was heißt das bzw was muss ich tun damit ich das Ergebnis in eine Variable packen kann?
(so ähnlich sah es erst in meinem Progamm aus)
Sub aufrufen()
dim V01, V02 as Boolean
V01 buchstabenVergleichen("abcdef123", "ghijk3567")
V02 buchstabenVergleichen("abcdef123", "ghijk567")
End Sub

nix zu danken
07.04.2016 12:23:21
Michael
Hi Dennis,
also, es geht hier immer darum, daß man sowohl direkt WERTE als auch Variablen verwenden kann, die den gleichen Datentyp haben.
Mit Deinen zwei Labels würde es in etwa so aussehen:
Option Explicit
Function buchstabenVergleichen(s1 As String, s2 As String) As Boolean
Dim i As Long
For i = 1 To Len(s1)
If InStr(s2, Mid(s1, i, 1)) > 0 Then
buchstabenVergleichen = True
Exit Function
End If
Next
End Function
Sub Labelsvergleichen()
Dim wahr_oder_falsch As Boolean
Dim capt1 As String, capt2 As String
MsgBox buchstabenVergleichen(UserForm1.Label1.Caption, UserForm1.Label2.Caption)
' oder mit diversen Variablen:
capt1 = UserForm1.Label1.Caption
capt2 = UserForm1.Label2.Caption
wahr_oder_falsch = buchstabenVergleichen(capt1, capt2)
MsgBox wahr_oder_falsch
End Sub
wobei jeweils STRINGs an die buchstabenVergleichen übergeben werden.
Die 1. MsgBox gibt den Wert direkt aus, also den Wahrheitswert aus buchstabenVergleichen, während letztere unten erst mal der Variablen wahr_oder_falsch zugewiesen (Dein Code paßt ja, bis auf das =-zeichen) und dann von der 2. MsgBox ausgegeben wird.
Übrigens mußt Du in Excel-VBA aufpassen: wenn Du mehrere Variablen (gleichen Typs) DIMst, mußt Du bei ALLEN jeweils "as Typ" hinschreiben.
Bei Dim V01, V02 as Boolean macht Excel es so: V01 as Variant, V02 as Boolean
Exakt wäre: Dim V01 as Boolean, V02 as Boolean
Bei Visual Basic Studio isses NICHT so, da geht die erste Schreibweise.
Schöne Grüße,
Michael
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige