Registriert seit: 11.04.2023
Version(en): Ms 2021
Mein Code:
Code:
Dim Textfelder() As MSForms.TextBox
Textfelder = Array(TextBox1, TextBox2)
Dim tb As MSForms.TextBox
For Each tb In TextBoxList
Ich möchte eine Liste an TextBoxen erstellen. Soweit bin ich jetzt mal aber ich bekomme leider immer wieder einen Typen unverträglichkeits Fehler.
"Laufzeitfehler: 13"
Typen unverträglich
Danke für die Hilfe.
Registriert seit: 25.11.2021
Version(en): 2019, 365
11.04.2023, 20:01
(Dieser Beitrag wurde zuletzt bearbeitet: 11.04.2023, 20:56 von Ralf A.)
Hi,
Dein Array heißt ja auch nicht Textboxlist sondern Textfelder...
Bsp.:
PHP-Code:
Private Sub UserForm_Click() 'in einer Userform
Dim Textfelder(), tb
Textfelder = Array(Me.TextBox1, Me.TextBox2)
For Each tb In Textfelder
Debug.Print tb.Name
Next
End Sub
Wenn Du aber Boxen in einem Tabellenblatt bearbeiten willst, musst Du anders vorgehen:
PHP-Code:
Option Explicit
Private Sub Test()
Dim Textboxen(), tb
Dim tb1 As Shape, tb2 As Shape
Dim ct As OLEObject
For Each tb In ActiveSheet.Shapes
tb.Delete 'Achtung: Alle Shapes werden gelöscht, nicht nur Textboxen...
Next
'Textbox1 erstellen
ActiveSheet.OLEObjects.Add(ClassType:="Forms.TextBox.1", Link:=False, _
DisplayAsIcon:=False, Left:=100, Top:=40, Width:=50, Height:=30.5).Name = "ErsteTextBox"
Set tb1 = Shapes("ErsteTextBox") 'Textbox 1 setten
'Textbox2 erstellen
ActiveSheet.OLEObjects.Add(ClassType:="Forms.TextBox.1", Link:=False, _
DisplayAsIcon:=False, Left:=200, Top:=40, Width:=50, Height:=30.5).Name = "ZweiteTextBox"
'Array befüllen
Textboxen = Array(tb1, Shapes("ZweiteTextBox")) 'Beachten: 2. Box wurde nicht gesettet, wird also über den Namen angesprochen!
For Each tb In Textboxen 'Alle im Array gespeicherten Objekte durchlaufen
Debug.Print tb.Name
Next
Debug.Print tb1.Name, Textboxen(0).Name,
'Werte zuweisen
Set ct = OLEObjects(tb1.Name) 'das OleObjekt setten mit tb1
ct.Object.Value = "Hallo"
Set ct = OLEObjects(Textboxen(1).Name) 'das OleObjekt setten mit dem Arrayobjekt
ct.Object.Value = Application.UserName
End Sub
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.
Ciao, Ralf
Registriert seit: 09.09.2022
Version(en): 2016
Hi,
der Fehler "Typen unverträglich" kommt, weil die Inhalte der Textboxen in das Array geschrieben werden sollen.
Versuch es mal auf einem anderen Weg:
Code:
Controls("Textbox" & x)
Mit einer ForNext-Schleife.
Außerdem würde ich empfehlen Option explicit zu verwenden. Dann wäre bei "Textboxlist" gemeckert worden.
CU
Oberon