Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1112to1116
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
Index-Nr. für Objekte in Userform
David
Hallo, ich schon wieder... ;-)
laut Hilfe hat wohl jedes Objekt einer UF eine Index-Nummer, so dass ich die mit einer Schleife abarbeiten könnte. Wo aber finde ich die Index-Nummer für jedes Objekt? In den Eigenschaften jedenfalls nicht.
Danke und Gruß
David
AW: Index-Nr. für Objekte in Userform
28.10.2009 13:00:19
JogyB
Hi.
Meinst Du TabIndex?
Was willst Du mit der denn machen?
Gruss, Jogy
AW: Index-Nr. für Objekte in Userform
28.10.2009 13:32:29
David
Hallo Jogy,
ich habe mehrere Eingabefelder (Textboxen), die möchte ich auf eine bestimmte Bedingung des eingegebenen Textes prüfen. Damit ich nicht für jede Textbox einzeln ein If... konstruieren muss, wollte ich die per For-Next-Schleife durchlaufen lassen.
Gruß
David
PS: Dummerweise finde ich den Hilfe-Eintrag nicht mehr, wo ich das gelesen hatte... :-(
AW: Index-Nr. für Objekte in Userform
28.10.2009 14:22:25
JogyB
Hi.
Wenn die z.B. TextBox1 bis TextBox9 heissen:
For i = 1 To 9
Me.Controls("TextBox" & i).Value = i
Next
Den Index den Du meinst gibt es meines Wissens nur in VB, aber nicht in VBA.
Gruss, Jogy
Anzeige
AW: Index-Nr. für Objekte in Userform
28.10.2009 15:34:49
David
Das hilft leider nicht, da die Textboxen selbst verschiedene Namen haben und keine Nummer tragen.
Gruß
David
AW: Index-Nr. für Objekte in Userform
28.10.2009 17:41:57
JogyB
Hi.
Dann benenn die Textboxen um, deren Name ist ja frei wählbar. Der erste wichtige Schritt beim Aufbau einer UF ist immer eine Struktur, die eine gewisse Automatisierung zulässt. Ohne das wirst Du wahnsinnig.
Selbst mit dem Index von VB kämst Du anders nicht weiter, da dort dann alle TextBoxen denselben Namen hätten und sich nur den Index unterscheiden.
Ein Alternative wäre noch, alle Controls durchzugehen und nur mit den Textboxen irgendwelche Operationen durchzuführen:
Dim myCtl As Control
For Each myCtl In UserForm1.Controls
If TypeOf myCtl Is MSForms.TextBox Then
myCtl.Value = Now
End If
Next

Das kannst Du natürlich um weitere Prüfungen ergänzen, damit Du nur die Textboxen erwischst, die Du haben willst.
Oder Du packst am Anfang alle relevanten Textboxen in eine Collection, dann kannst Du die danach wieder abrufen. Dann hast Du den Aufwand wenigstens nur ein Mal.
Dim myCol As New Collection
Private Sub CommandButton1_Click()
Dim myCtl As Control
For Each myCtl In myCol
myCtl.Value = Now
Next
End Sub
Private Sub UserForm_Initialize()
With Me
myCol.Add .TextBox1
myCol.Add .TextBox5
myCol.Add .TextBox7
End With
End Sub
Gruss, Jogy
Anzeige
AW: Index-Nr. für Objekte in Userform
29.10.2009 07:52:12
David
Hallo Jogy,
ich hatte die Textbox-Namen nach Inhalt vergeben, um nicht immer nachschauen zu müssen, um welche es sich denn handelt. Deine Hinweise sind natürlich richtig.
Da es sich in dem Fall um meine erste vollständige UF handelt, buch ich das unter "Anfänger-Fehler".
Mir ging es in diesem Fall zum Beispiel darum, die 10 Textboxen, die ich habe darauf zu prüfen, ob tatsächlich eine Zahl eingetragen wurde und nicht etwa Text, was im Code dann natürlich zu Fehlern führt.
Vorerst habe ich diese Prüfung außen vor gelassen und "vertraue" auf die User, dass die richtigen Daten eingegeben werden. Einige andere Plausibilitätsprüfungen habe ich jedenfalls eingebaut.
Danke und Gruß
David
Anzeige
AW: Index-Nr. für Objekte in Userform
28.10.2009 14:26:35
Peter
Hallo David,
das ginge z. B. so:
Option Explicit
Private Sub CommandButton1_Click()
Dim iIndx  As Integer
For iIndx = 1 To 7
If Trim(Controls("TextBox" & iIndx)) = "" Then
MsgBox "Bitte auch die TextBox" & iIndx & " ausfüllen - danke", _
16, "   Hinweis für " & Application.UserName
Exit For
End If
Next iIndx
End Sub
Gruß Peter
AW: Index-Nr. für Objekte in Userform
28.10.2009 15:36:10
David
Hallo Peter,
wie schon im anderen Post, geht leider so nicht, da die Textboxen keine Nummern tragen.
Trotzdem danke, die Sache mit dem Controls(textbox-name) kann ich an anderer Stelle gut gebrauchen.
Gruß
David
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige