Herbers Excel-Forum - das Archiv
Wert in einer "Liste" nachgucken - VBA
Informationen und Beispiele zu den hier genannten Dialog-Elementen:

|
Betrifft: Wert in einer "Liste" nachgucken - VBA
von: Martin
Geschrieben am: 18.11.2003 11:46:12
Hallo,
ich arbeite mit einer Userform, in der u.a. eine TextBox untergebracht ist, in die der User einen Wert eingibt.
Wenn im Anschluss auf "OK" geklickt wird, werden verschiedene Prozesse gestartet.
Nun würde ich gerne eine Kontrolle hinzufügen, dergestalt, dass der eingegebene Wert in dieser besagte Textbox mit einer Liste verglichen wird. Bei Übereinstimmung, erscheint zB eine MsgBox.
Die Liste, mit der der Wert verglichen werden soll, soll nicht extra in ein Tabellenblatt stehen. Vielmehr reicht es aus diese wenigen Einträge direkt im Code zu verankern. Wenn ich mich recht entsinne, geht sowas über eine Array, oder?
Leider bekomme ich es in meinen Versuchen nicht hin. Versucht habe ich bisher zB
If TextBox1.Value = Array(1, 2, 3, 4) Then MsgBox "Aber Hallo!"
Kann mir jemand bitte behilflich sein?
Danke und Gruss,
Martin
Betrifft: AW: Wert in einer "Liste" nachgucken - VBA
von: ChrisL
Geschrieben am: 18.11.2003 12:36:30
Hi Martin
Glaube nicht, dass es in diesem Fall mit einem Array machbar ist. D.h. machbar ist es schon, aber nur indirekt in dem du die Array Werte über eine Schlaufe vergleichst.
Wenn es nur 4 Werte sind, würde ich es mit ODER lösen.
If TextBox1 = "1" Or TextBox1 = "2" Or .... Then
Wenn es viele Werte sind, dann würde ich die Werte trotz allem in einer Tabelle hinterlegen (ist auch für die Wartung einfacher) und z.B. mit WorksheetFunction.CountIf vergleichen...
If WorksheetFunction.CountIf(Range(...), TextBox1) > 0 Then ...
Gruss
Chris
Betrifft: AW: Wert in einer "Liste" nachgucken - VBA
von: Martin
Geschrieben am: 18.11.2003 12:43:33
das mit CountIf gefällt mir und es funktioniert. Werde es so machen!
Danke Chris
Martin