AW: UserForm Initialisieren
17.02.2021 19:46:07
Werner
Hallo,
wozu das gut sein soll, kannst nur du wissen. Mir zumindest ist unklar, wozu du erst mit der einen Userfor, einen Fehler in Spalte J schreibst um ihn dann gleich wieder mit Userform 2 zu entfernen. Aber egal.
1. ermittelst du im Initialize der Userform2 durch +1 die erste freie/leere Zelle. Die ist aber leer, da gibts nichts zum Leeren. Was du willst ist die letzte belegte Zelle. Also muss das +1 weg.
2. versucht du auf den Wert der Variablen last aus dem Initialize dann im Code des Commandbuttons zuzugreifen. Das geht so aber nicht. Wenn deinInitialize Code durchgelaufen ist, geht der Wert von last verloren. Die Variablen last im Initialize und im Buttoncode haben nichts miteinander zu tun.
Einfach last im Buttoncode ermitteln.
Ich habe dir den Code mal umgeschrieben, die Spaltenbezeichnungen kannst du auch als Buchstaben angeben. Liest sich einfacher und die "Spaltenzählerei" fällt weg.
Das Initialize der zweiten Userform kannst du löschen.
UF Daten:
Private Sub CB_Dateneingabe_Click()
Dim last As Integer
last = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Offset(1).Row
Cells(last, "A") = TB_Daten
If Cells(last, "A") = "Dateneingabe" Or Cells(last, "A") = "" Then
Cells(last, "J").Value = "Fehler"
UF_Daten.Hide
UF_Fehler.Show
End If
End Sub
Private Sub Userform_initialize()
TB_Daten = "Dateneingabe"
End Sub
UF Fehler
Option Explicit
Private Sub CB_Exit_Click()
Dim last As Long
last = Cells(Rows.Count, "A").End(xlUp).Row
Cells(last, "J").ClearContents
Unload Me
UF_Daten.Show
End Sub
Gruß Werner