Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
280to284
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
280to284
280to284
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige