beim nachfolgenden Code hat mir sehr maßgeblich Luschi weitergeholfen. Er soll bewirken, dass die Textboxes in einer UF aus einem versteckten Tabellenblatt "Daten" gefüllt werden. Grundsätzlich funktioniert das auch soweit. Jetzt stelle ich allerdings ein Problem fest. Bei Aufruf der UF springt Excel immer auf das erste Tabellenblatt zurück. Habe ich also mehrere Tabellenblätter kann ich z.B. das zweite, dritte etc. gar nicht ansteuern, da immer der Sprung auf das erste Tabellenblatt erfolgt. Es sollen die Daten der Textfelder über einen anderen Code jeweils in das aktive Tabellenblatt gebucht werden. Die UF selbst wird, nachdem das jeweilige Tabellenblatt geöffnet ist, über ein Zusatzmenü im Arbeitsblattmenü gestartet. Interessant dabei ist aber, dass der Sprung zum ersten Tabellenblatt nur dann erfolgt, wenn ich die gespeicherte Mappe öffne. Lege ich frisch neue Tabellenblätter an und habe die Mappe noch nicht gespeichert, kann ich in das jeweils geöffnete Blatt buchen, ohne dass der Sprung zum ersten Tabellenblatt erfolgt. Was mache ich verkehrt? -Danke schon jetzt wieder für die Hinweise.
Herzliche Grüße
Wolfgang
Option Explicit
Dim active_xSheet As Worksheet
Private Sub UserForm_Activate()
Set active_xSheet = ActiveSheet
Textfelder_Fuellen "Daten"
End Sub
Sub Textfelder_Fuellen(ByVal x_Sheet As String)
Dim mySheet As Worksheet
Set mySheet = ThisWorkbook.Worksheets(x_Sheet)
With mySheet
.Cells.NumberFormat = "General"
.Columns("G:G").NumberFormat = "m/d/yyyy"
Me.TextBox1.Value = .Range("C2").Value & Space(1) & .Range("D2").Value
If .Range("G2").Value = "" Then
Me.TextBox2.Text = .Range("F2").Value
Else
Me.TextBox2.Text = .Range("G2").Value & Space(1) & .Range("F2").Text
End If
Me.TextBox3.Value = .Range("E2").Value
Me.TextBox4.Value = .Range("I2").Text
End With
End Sub