For Each objTextfeld In Me.Controls
21.12.2021 16:08:24
Panda
Ich habe eine Userform die ich in bestimmte Felder eines ExcelFormulars abfüllen möchte
eg ProjektNummer, ProjektName, PLName etc
In der Userform sind die Textboxen entsprechend benannt (z.B TextBoxPLName)
Im Excelformular sind die Zellen entsprechend den Textboxen benannt (=> Namen definierern) )=> bsp PLName für Name des Projektleiters
Nun wollte ich eine Schlaufe mit for Each objTExtfeld programmieren, die alle ausgefüllten TextBoxen in der USerForm
in die entsprechend benannten Zellen des Excelformulars abfüllt
Dim objTextBoxName
Dim objTextBoxNameShort
Set xlSheet = Worksheets("Objektdaten")
For Each objTextfeld In Me.Controls
If TypeName(objTextfeld) = "TextBox" Then
If Len(objTextfeld) > 0 Then
objTextBoxName = objTextfeld.Name
objTextBoxNameShort = Replace(objTextBoxName, "TextBox", "")
xlSheet.Range(xlSheet.Cells(objTextBoxNameShort)).Value = objTextfeld.Value
End If
End If
Next objTextfeld
ich erhalte eine Fehlermeldung Laufzeitfehler "5" (oder "13" in einer anderen Variante), da offensichtlich innerhalb der Schlaufe me.controlsnicht auf die Zellen zugegriffen werden kann; habe schon verschiedenes ausprobiert
ich kann die Daten nur abfüllen, wenn ich alles hardcodiere; bei über 50 Felder aber etwas mühsam
eine Schlaufe wäre da viel einfacher....
Danke für Hilfe; .. meine letzten VBA Codes sind schon 8 Jahre her ...