Hallo Johanna.
Dafür hättest Du mehrere Möglichkeiten:
Möglichkeit 1:
Du könntest ein eindimensionales Datenfeld erstellen mit der gleichen Anzahl Felder wie TextBoxen auf Deinem Tabellenblatt vorhanden sind. Folgende Schritte wären dafür notwendig:
-
gehe über das Menü „Einfügen“ auf „Modul“
-
schreibe in den Deklarationsabschnitt des Modul-Code-Fensters folgenden Code:
Public MeinDatenfeld(1 To 20) As Variant
Dann müsstest Du für TextBox1 folgenden Code programmieren:
Private Sub TextBox1\_Change()
MeinDatenfeld(1) = TextBox1.Text
End Sub
Diesen Code müsstest Du dann entsprechend für alle 20 TextBoxen schreiben.
Danach kannst Du, um die eingetragenen Werte zu überprüfen, das Datenfeld in einer Schleife durchlaufen:
For a = 1 to 20
If MeinDatenfeld(a) = "" Then
'Code
End If
If MeinDatenfeld(a) = 0 Then
'Code
End If
Next
Möglichkeit 2:
Du verwendest das folgende Code-Prinzip:
Private Sub CommandButton1\_Click()
'Alle Textboxen auf einem Tabellenblatt
'der Button zum Auslösen dieser Prozedur befindet sich in diesem Beispiel auch auf der Tabelle
Dim shp As Shape
For Each shp In Me.Shapes
If shp.Type = msoOLEControlObject Then '12 = msoOLEControlObject 'Kontrolle ob: OLE
If shp.OLEFormat.progID Like "\*TextBox\*" Then ''Kontrolle ob: TextBox
If shp.OLEFormat.Object.Object.Text = 0 Then
MsgBox "In " & shp.OLEFormat.Object.Name & " steht eine 0"
End If
If shp.OLEFormat.Object.Object.Text = "" Then
MsgBox "In " & shp.OLEFormat.Object.Name & " steht nix"
End If
End If
End If
Next
End Sub
Viele Grüße
Carsten