Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

TextBox in UserForm dynamisch ansprechen

Frage Entwicklung VB for Applications

Mitglied: lena123

lena123 (Level 1) - Jetzt verbinden

21.10.2007, aktualisiert 22.10.2007, 19482 Aufrufe, 8 Kommentare

Hallo!

Ich habe ein UserForm mit 10 TextBoxen mit den Namen: TextBoxA1, TextBoxA2, TextBoxA3, ...

Ich möchte jetzt mit einer Schleife die einzelnen TextBoxen ansprechen, mein Code sieht bis jetzt so aus:


Sub Test()

Dim tb As TextBox
Dim i As Integer

i = 1
Do While i < 11

With tb
.Name = "TextBoxA" & i
End With

Worksheets("Tabelle1").Cells(1, 1).Value = tb.Value

Loop

End Sub



Das funktioniert nur leider so nicht, hat jemand einen Tipp für mich?

Viele Grüße
Mitglied: vbMaxi
21.10.2007 um 16:51 Uhr
sers lena123,
setzt die Textboxen doch einfach in den Index also dann hast du Textbox(0), Textbox(1) und anstatt 0 und 1 schreibst du einfach i rein.

sieht dann ungefähr so aus:

01.
For i = 0 To 2 
02.
   t(i).Text = "hallo" 
03.
Next
lg vbmaxi
Bitte warten ..
Mitglied: lena123
21.10.2007 um 17:15 Uhr
Hallo vbmaxi,

danke für die Antwort, aber das habe ich schon versucht und die folgenden Möglichkeiten funktionieren leider nicht:

TextBoxA(i).Value
TextBoxA[i].Value
TextBox("A" & i).Value

Mit a = "TextBoxA" & i kann ich den Namen ansprechen aber ich möchte auch den Wert der in das Textfeld eingegeben wurde auslesen.

Vielleicht noch eine andere Idee?

Gruß
lena
Bitte warten ..
Mitglied: vbMaxi
21.10.2007 um 17:41 Uhr
hallo lena123,
wie ich das sehen benutzt du execel oder???
dann funktioniert des auch net weil execel diese index eigenschaft nicht unterstützt!!
sry mein fehler

lg vbmaxi
Bitte warten ..
Mitglied: lena123
21.10.2007 um 18:30 Uhr
Hallo vbmaxi,

ja stimmt, ich benutze Excel / VBA , habe ich vergessen zu erwähnen, aber trotzdem danke,

lg lena
Bitte warten ..
Mitglied: miniversum
21.10.2007 um 18:50 Uhr
Versuchs mal so:
01.
    For ti = 1 To 10 
02.
        For ci = 0 To UserForm1.Controls.Count - 1 
03.
            If UserForm1.Controls.Item(ci).Name = "TextBox" & ti Then 
04.
                MsgBox UserForm1.Controls.Item(ci).Text 
05.
            End If 
06.
        Next ci 
07.
    Next ti
Es werden alle steuerelemente auf der Form durchgesucht und wenn der name "TextBox" & ti (ti=nummer der textbox) lautet ist das das Steuerelement dieser Textbox und er kann verwendet werden (Hier wird der Text der darinsteht angezeigt).

miniversum
Bitte warten ..
Mitglied: lena123
21.10.2007 um 19:18 Uhr
Dankeschön miniversum,

so funktioniert es einwandfrei!

Gruß, lena
Bitte warten ..
Mitglied: bastla
21.10.2007 um 20:43 Uhr
Hallo lena123!

Als Alternative könntest Du auch ein "control array" (dynamisch) erstellen - das folgende Beispiel basiert auf einer UserForm mit 2 CommandButtons:
01.
Option Explicit 
02.
Dim Lb() As Control, Tx() As Control 
03.
 
04.
Private Sub CommandButton1_Click() 
05.
Tx(3).BackColor = vbRed 
06.
End Sub 
07.
 
08.
Private Sub CommandButton2_Click() 
09.
MsgBox Tx(3).Text 
10.
End Sub 
11.
 
12.
Private Sub UserForm_Click() 
13.
Dim i As Integer 
14.
For i = 1 To 4 
15.
    Me.Height = i * 20 + 40 
16.
    ReDim Preserve Lb(i) As Control, Tx(i) As Control 
17.
    Set Lb(i) = Controls.Add("Forms.Label.1", "lbl_" & CInt(i), True) 
18.
    With Lb(i) 
19.
        .Top = i * 20 + 2 
20.
        .Left = 10 
21.
        .Width = 58 
22.
        .Height = 12 
23.
        .Caption = "Beschriftung " & i & ":" 
24.
    End With 
25.
     
26.
    Set Tx(i) = Controls.Add("Forms.TextBox.1", "txt_" & CInt(i), True) 
27.
    With Tx(i) 
28.
        .Top = i * 20 
29.
        .Left = 70 
30.
        .Width = 150 
31.
        .Height = 15 
32.
        .Text = "leer " & i 
33.
    End With 
34.
Next 
35.
End Sub
Die dynamischen Steuerelemente werden per Click auf die bereits geladene UserForm erst erzeugt. Die Verwendung der indizierten Controls wird dann anhand der beiden Buttons demonstriert.

Grüße
bastla
Bitte warten ..
Mitglied: lena123
22.10.2007 um 08:25 Uhr
Hallo Bastla,

werd ich gleich nochmal ausprobieren, danke!

Vg lena
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
gelöst Excel VBA In Userform Maske Text nach Eingabe löschen (1)

Frage von kluthi69 zum Thema Microsoft Office ...

Visual Studio
gelöst C-Sharp WPF Binding TextBox.Text und Property MVVM (die 2.) (4)

Frage von mayho33 zum Thema Visual Studio ...

Batch & Shell
gelöst Powershell: Suchen und dynamisch erweitern (2)

Frage von rkrausby zum Thema Batch & Shell ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Heiß diskutierte Inhalte
Windows 10
Windows für Privatanwender "nicht mehr handhabbar" (35)

Frage von FA-jka zum Thema Windows 10 ...

LAN, WAN, Wireless
Komplett neues Netzwerk, Ubiquiti WLAN, Router, Switch (15)

Frage von Freak-On-Silicon zum Thema LAN, WAN, Wireless ...

Backup
Backup Wochen- Monats- Jahressicherung (13)

Frage von Meterpeter zum Thema Backup ...

RedHat, CentOS, Fedora
Fedora, RedHat, Centos: DNS-Search Domain setzen (13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...