UserForm Textboxen mit Werten aus Excel Datei füllen?
Ich habe eine Excel Datei, die mittels Makro mit Werten befüllt wird.
Dasselbe Makro soll nun eine bestimmte Spalte der Datei durchlaufen und dann mittels Schleife alle TextBoxen der UserForm mit diesen Werten füllen.
Mein Versuch dazu:
Dim i As Byte
Dim currentName As String
For i = 1 To 10
currentName = sheet.Cells(i, "H").Value
UserForm1.Controls("TextBox" & CStr(i)).Value = currentName
Next
Funktioniert leider nicht. Muss ich bei der Initialisierung der UserForm oder der TextBoxen noch was beachten?
Fehlermeldung: Laufzeitfehler 91: Objektvariable oder With-Blockvariable nicht festgelegt.
Folgende Zeile wird markiert:
UserForm1.Controls("TextBox" & CStr(i)).Value = currentName
1 Antwort
Schreib im Userform folgendes:
(in Excel2007/ 2010 getestet)
Private Sub UserForm_Initialize()
Dim i As Byte
Dim currentName As String
For i = 1 To 10
'8 = H
currentName = Cells(i, 8).Value
UserForm1.Controls("TextBox" & CStr(i)).Text = currentName
Next
End Sub
Und markiert UserForm1.Show in meinem eigentlichen Makro
Im die Userform1 zu öffnen schreibst du folgendes in ein module. Dieses Makro startest du dann auch mit einem Button oder wie auch immer du willst. userformstarten öffnet dann die Userform, die aber beim öffnen initialisiert wird mit dem Makro das ganz unten steht
Sub userformstarten()
Userform1.show
End sub
Dann in der Userform dies hier:
Private Sub UserForm_Initialize()
Dim i As Byte
Dim currentName As String
For i = 1 To 10
'8 = H
currentName = Cells(i, 8).Value
UserForm1.Controls("TextBox" & CStr(i)).Text = currentName
Next
End Sub
Wo in mein Modul muss ich Userform1.show benutzen? Habs jetzt ans Ende getan und mir wird das UserForm nicht angezeigt.
Habe außerdem das Gefühl, dass der durch die falsche Excel Datei läuft, wenn ich deinen Code in mein UserForm einfüge.
Das Makro sammelt Dateien aus 2 verschiedenen Excel Dateien und ich glaube Cells(i, 8).Value wird jetzt in der falschen Excel datei gesucht. Als ich den Code noch in meinem Modul stehene hatte und nicht im UserForm hat das Makro auf jeden Fall in der richtigen Datei gesucht.
Schau mal:
https://imgur.com/a/vdQ8O
wenn man dann oben auf das "test" klickt, startet es so wie du willst
Der button test hat das Makro "userformstarten" zugeordnet
Wenn du das Tabellenblatt wirklich auch fixieren willst, dann so
Private Sub UserForm_Initialize()
Dim i As Byte
Dim currentName As String
Sheets("Tabelle1").Select
For i = 1 To 10
'8 = H
currentName = Sheets("Tabelle1").Cells(i, 8).Value
UserForm1.Controls("TextBox" & CStr(i)).Text = currentName
Next
End Sub
Also ich habs eigentlich so wie du und finde den Fehler nicht. Hab mal einen Pastebin von meinem Code erstellt ..
Wichtig wäre, dass du den Userform_initialize auch wirklich IN deinem Userform1 stehen hast.
Also ich hab mal in mein UserForm den Sheet neu aufgerufen und den Pfad erstellt. Wenn ich jetzt im Debug-Einzelschritt Menü da durchgehe dann klappt alles und ich hab am Ende die Namen in der Textbox. Wenn ich mein Hauptmakro jedoch ausführe zeigt der mir das UserForm nichtmal. Userform_initialize ist in UserForm1
Hab einkommentiert, was wo hin gehört:
https://pastebin.com/nMRA3UTb
Schick mir dein File mal und ich schau drüber:
https://www.file-upload.net/
Bin gerade selber etwas vorran gekommen.
Probier erst selber noch ein bisschen rum. Wenn ich bis morgen nicht weiter komme, dann schick ich dir die Daten als PN.
Danke bis hierhin schonmal für deine Hilfe :)
Gerne.
Mit VBA darfst dich gern immer direkt an mich wenden :P
Hatte meine Schleife bis jetzt in dem anderen Makro drin und nicht in der UserForm datei. Muss ich denn in dem eigentlichen Makro dann nichts reinschreiben?
Der gibt mir jetzt als Fehler aus Objekt nicht gefunden