Eingabe der Userform automatisch in nächste freie Zeile schreiben

  • Excel

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Skorpion79.

    Eingabe der Userform automatisch in nächste freie Zeile schreiben

    Hallo,

    mein Code funkt nicht und ich komme einfach auf keine lösung. Manchmal schreibt es in die nächste Zeile, manchmal überschreibt es jedoch einfach wieder die erste Zeile. Er soll bei A2 anfangen in dem Sheet "Rückmeldung". Hoffe mir kann jemand helfen!!! merci vorab!

    Visual Basic-Quellcode

    1. Private Sub CommandButton1_Click()
    2. 'Durch Klick auf den Button die Werte aus der Userform in die Zellen schreiben
    3. ActiveSheet.Unprotect Password:="TVD"
    4. Dim FinalRow As Integer
    5. FinalRow = Cells(Rows.Count, 1).End(xlUp).Row
    6. FinalRow = ActiveCell.Row + 1
    7. Sheets("Rückmeldung").Range("A" & CStr(FinalRow)).Value = txt_datum.Text
    8. Sheets("Rückmeldung").Range("B" & CStr(FinalRow)).Value = cbx_typ.Text
    9. Sheets("Rückmeldung").Range("D" & CStr(FinalRow)).Value = cbx_fehler.Text
    10. Sheets("Rückmeldung").Range("F" & CStr(FinalRow)).Value = txt_bemerkung.Text
    11. Sheets("Rückmeldung").Range("G" & CStr(FinalRow)).Value = txt_menge.Text
    12. Sheets("Rückmeldung").Range("H" & CStr(FinalRow)).Value = txt_nacharbeit.Text
    13. Sheets("Rückmeldung").Range("I" & CStr(FinalRow)).Value = txt_verschrott.Text
    14. ActiveWorkbook.Save
    15. ActiveSheet.Protect Password:="TVD"
    16. Unload Me
    17. End Sub
    Funktioniert leider immer noch nicht.
    Bin langsam echt am verzweifeln...

    habe jetzt dieses hier versucht:
    aber er überschreibt immer noch die erste zeile...

    Quellcode

    1. Dim FinalRow As Integer
    2. Range("A65536").End(xlUp).Select
    3. FinalRow = ActiveCell.Row + 1

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „keepsmile“ ()

    Skorpion79 schrieb:

    Range("A65536").End(xlUp).Row +1
    ist seit Excel2007 etwas unsauber.
    Auch wenn selten die 64k-Grenze überschritten wird.

    Visual Basic-Quellcode

    1. NextFreeRow = Cells(Rows.Count,1).End(xlUp).Row + 1
    Zu beachten ist weiterhin, dass diese Methode davon ausgeht, dass die erste Spalte grundsätzlich gefüllt ist (zumindest in der letzten Zeile).
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --