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

Gültigkeitsbereich für Textboxen

Gültigkeitsbereich für Textboxen
25.04.2007 11:40:00
Michael
Hallo,
ich habe ein Problem bei der VBA Programmierung.
Ich habe eine Userform erstellt und gereriere dynamisch 120 Textfelder.
oben=30
for i = 0 to 199
set answa(i) = controls.add("forms.textbox.1", ,true)
with answa(i)
.left =45
.top=oben
.width=30
.height=15
select case i
case 0: .text=""
case 1: .text=""
usw
case199: .text=""
end select
end with
oben =oben+30
next i
das erzeugen der Textboxen funktioniert auch einwandfrei
es dürften allerdings nur zahlen zwischen 1 und 5 eingetragen werden
deshalb meine frage: wie kann ich einen gültigkeitsbereich für die Textboxen (alle 120 haben die gleiche Restriktion Zahlen zwischen 1 und 5) in die schleife einbauen?
Vielen Dank für die Hilfe
Michael

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Gültigkeitsbereich für Textboxen
25.04.2007 12:42:53
Peter
Hallo Michael,
für 120 TextBoxes in einem UserForm(ular) bietet sich ein Klassenmodul an, so dass mit einem einzigen Makro die Eingabe von 1 bis 5 abgefragt, bzw. gewährleistet wird.
Schau mal unter Klassenmodul bei Google Klassenmodul site:herber.de
wenn du nicht weißt, wie man das programmiert.
Da du die Textboxes generierst, weiß ich allerdings nicht, ob das Klassenmodul damit zurechtkommt.
Ich stell deine Frage auf offen.
Gruß Peter

AW: Gültigkeitsbereich für Textboxen
25.04.2007 16:14:00
Peter
Hallo Michael,
sieh dir einmal die beigefügte Mappe an. Hier gibt es zwar nur 6 TextBoxes, aber das ist nicht wichtig, denn es wird geprüft, ob und aus welcher TextBox welcher Wert eingegeben wurde.
https://www.herber.de/bbs/user/42019.xls
Gruß Peter

Anzeige
AW: Gültigkeitsbereich für Textboxen
25.04.2007 22:17:57
Josef
Hallo Michael,
ein leeres UF, ein Klassenmodul mit dem namen "clsTB" und diesen Code. Einfach mal probieren.
' **********************************************************************
' Modul: clsTB Typ: Klassenmodul
' **********************************************************************

Option Explicit

Private WithEvents TBox As MSForms.TextBox

Public Function Init(TB As MSForms.TextBox) As Object
Set Init = Nothing
Set TBox = TB
Set Init = Me
End Function

Private Sub TBox_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
    Case 49 To 53 'Zahlen von 1 bis 5
    Case Else
        KeyAscii = 0
End Select
End Sub

' **********************************************************************
' Modul: UserForm1 Typ: Userform
' **********************************************************************

Option Explicit
Dim TxtBox() As clsTB

Private Sub UserForm_Initialize()
Dim iTop As Integer, iLeft As Integer, iIndex As Integer
Dim objTB As MSForms.TextBox

Me.Height = 450
Me.Width = 380

iTop = 15
iLeft = 15

For iIndex = 1 To 200
    Set objTB = Controls.Add("forms.textbox.1", , True)
    With objTB
        .Left = iLeft
        .Top = iTop
        .Width = 30
        .Height = 15
        .MaxLength = 1
        .Tag = CStr(iIndex)
    End With
    
    Redim Preserve TxtBox(iIndex)
    Set TxtBox(iIndex) = New clsTB
    TxtBox(iIndex).Init objTB
    
    Set objTB = Nothing
    
    iTop = iTop + 18
    If iIndex Mod 20 = 0 Then
        iTop = 15
        iLeft = iLeft + 35
    End If
Next
End Sub

Gruß Sepp

Anzeige
AW: Gültigkeitsbereich für Textboxen
26.04.2007 17:07:00
Michael
Hallo,
komm leider erst heut wieder dazu. ich hab es ausprobiert und es klappt. vielen dank für die hilfe.
Michael

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige