Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

For i = 1 to 20 geht das??

Forumthread: For i = 1 to 20 geht das??

For i = 1 to 20 geht das??
16.07.2003 10:44:18
Tobi
Hallo zusammen,
habe folgendes Problem: Habe diesen Code für 20 Tesxtboxen in einer Userform. Kann ich das irgendwie vereinfachen?? Z.B. mit For i = 1 to 20. Habe es auch schon versucht (siehe unten) nur dann erscheint 20 mal die Msgbox. Was mache ich falsch?
Diesen Code habe ich 20 mal

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If IsDate(TextBox1) = False Then
MsgBox "Format fehlerhaft."
Cancel = True
End If
End Sub


Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If IsDate(TextBox2) = False Then
MsgBox "Format fehlerhaft."
Cancel = True
End If
End Sub

Das habe ich versucht, aber geht nicht:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
For i = 1 to 20
If IsDate(TextBoxi) = False Then
MsgBox "Format fehlerhaft."
Cancel = True
End If
Next i
End Sub

Danke für Eure Hilfe
Tobi
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: For i = 1 to 20 geht das??
16.07.2003 11:21:36
ChrisL
Hi Tobi
Theoretisch kannst du schon Schlaufen machen...
Controls("TextBox" & i)
Vorausgesetzt, dass du die TextBox bei 'Exit' prüfen willst, nützt dir dies in diesem Fall aber nichts.
Eine Möglichkeit wäre die Überprüfung in ein Modul auszulagern, erspart dir aber auch nicht viel Schreibarbeit.
' Standardmodul
Option Explicit
Public TBalle As Object
Public Abbruch As Boolean
Sub Check()
If IsDate(TBalle) Then
Abbruch = False
Else
MsgBox "Format fehlerhaft."
Abbruch = True
End If
End Sub

' Userform
Option Explicit

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Set TBalle = Me.ActiveControl
Call Check
If Abbruch = True Then Cancel = True
End Sub


Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Set TBalle = Me.ActiveControl
Call Check
If Abbruch = True Then Cancel = True
End Sub

Dann würd ich dir schon eher die Variante empfehlen...
Option Explicit

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If IsDate(ActiveControl) = False Then
MsgBox "Format fehlerhaft."
Cancel = True
End If
End Sub


Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If IsDate(ActiveControl) = False Then
MsgBox "Format fehlerhaft."
Cancel = True
End If
End Sub

Gruss
Chris

Anzeige
AW: For i = 1 to 20 geht das??
16.07.2003 11:31:40
tobi
Thaks

;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige