Herbers Excel-Forum - das Archiv

Wert in einer "Liste" nachgucken - VBA

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
TextBox UserForm
Bild

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

Bild

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
Bild

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
Bild