Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

letzte freie Zeile beschreiben

Forumthread: letzte freie Zeile beschreiben

letzte freie Zeile beschreiben
17.11.2019 15:34:26
Mike
Hallo Excelprofies,
nach dem ich hier vor einigen Monaten schon mal geholfen worden bin, bitte ich noch einmal
um Hilfe in VBA.
Ich möchte gern per Userform mit 3 TextBoxen (Textbox1, Textbox2, Textbox3) aus dem aktuellen
Tabellenblatt immer in die letzten freie Zeile neben einander beschreiben.
(Der Inhalt aus Textbox1 soll in Spalte A, Inhalt aus Textbox2 in Spalte B und der Inhalt aus TextBox C
soll in Spalte C)
Die Userform mit den TextBoxen und eine Schaltfläche zum starten bekomme ich hin.
Wer kann mir Hilfe geben, damit ich den Inhalt aus den 3 TextBoxen in die erste freie Zeile
im aktiven Tabellenblatt füllen kann.
Grüße
Mike
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: letzte freie Zeile beschreiben
17.11.2019 15:37:14
Klaus
Hallo Mike,
keine Beispieldatei, darum nur ganz grober Code den du anpassen musst.
Sub WerteSchreiben()
dim lRow as long
with Tabelle1
lRow = .cells(.rows.count,1).end(xlup).row +1 'Erste freie Zeile in Spalte A
.cells(lRow, 1).value = Userformname.Textbox1.Value
.cells(lRow, 2).value = Userformname.Textbox2.Value
.cells(lRow, 3).value = Userformname.Textbox3.Value
end with
end sub
LG,
Klaus
Anzeige
AW: letzte freie Zeile beschreiben
17.11.2019 15:51:03
Mike
Hallo Klaus,
Hallo HaJo_Zi,
die Lösung von Klaus ist perfekt.
Genau so hab ich es mir vorgestellt.
Danke euch beiden für eure Bemühungen und die schnelle Hilfe.
P.S.
Ich liebe dieses Forum.
Mike
AW: letzte freie Zeile beschreiben
17.11.2019 15:37:17
Hajo_Zi
Halo Mike,
Zeile = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row+1
keine Ahnung wie man Zeilen nebeneinanderr beschreibt.

Anzeige
AW: in andere Mappe speichern
17.11.2019 16:18:13
Mike
Hallo Klaus M,
eine bitte habe ich noch.
Wie kann ich die Informationen aus Textbox1,Textbox2... nicht im aktiven Tabellenblatt
sondern in einer anderen Excelmappe (Uebersicht_Anfragen.xlsm)speichern und diese Excelmappe
wieder schließen.
LG
Mike
Hab es hiermit ausprobiert aber funzt nicht:
Private Sub CommandButton1_Click()
Dim lRow As Long
Workbooks.Open "C:\Users\Mike\Documents\Uebersicht_Anfragen.xlsm"
With Tabelle1
lRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1 'Erste freie Zeile in Spalte A
.Cells(lRow, 1).Value = UserForm1.TextBox1.Value
.Cells(lRow, 2).Value = UserForm1.TextBox2.Value
.Cells(lRow, 3).Value = UserForm1.TextBox3.Value
End With
End Sub

Anzeige
AW: in andere Mappe speichern
17.11.2019 16:20:29
Hajo_Zi
With Workbooks("Uebersicht_Anfragen.xlsm").Worksheets("Tabelle1")
Die Datei ist auf.
Gruß Hajo
AW: in andere Mappe speichern
17.11.2019 16:30:28
Mike
Hallo HaJo_Zi,
suuuuuuuuupi.
Danke und Gruß
Mike
Anzeige
Anzeige

Infobox / Tutorial

Letzte freie Zeile in Excel beschreiben


Schritt-für-Schritt-Anleitung

Um den Inhalt aus drei TextBoxen in die letzte freie Zeile eines Excel-Tabellenblatts zu schreiben, kannst du den folgenden VBA-Code verwenden. Dieser Prozess geht davon aus, dass du bereits eine Userform mit drei TextBoxen (Textbox1, Textbox2, Textbox3) und einem CommandButton hast.

  1. Öffne den VBA-Editor in Excel (Alt + F11).
  2. Füge eine neue Userform hinzu und platziere drei TextBoxen sowie einen Button darauf.
  3. Klicke doppelt auf den Button, um das Codefenster zu öffnen.
  4. Füge den folgenden Code ein:
Sub WerteSchreiben()
    Dim lRow As Long
    With ActiveSheet
        lRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1 ' Erste freie Zeile in Spalte A
        .Cells(lRow, 1).Value = UserForm1.TextBox1.Value
        .Cells(lRow, 2).Value = UserForm1.TextBox2.Value
        .Cells(lRow, 3).Value = UserForm1.TextBox3.Value
    End With
End Sub
  1. Schließe den VBA-Editor und teste die Userform.

Häufige Fehler und Lösungen

  • Fehler: "Objekt nicht gefunden"

    • Ursache: Überprüfe, ob der Name der Userform und der TextBoxen korrekt sind. Achte darauf, dass du die Namen im Code genau so schreibst, wie sie in Excel definiert sind.
  • Fehler: Daten werden nicht in die richtige Zeile geschrieben

    • Ursache: Stelle sicher, dass du den Befehl End(xlUp) korrekt verwendest. Dieser sucht nach der letzten benutzten Zelle in der angegebenen Spalte.

Alternative Methoden

Falls du die Daten nicht im aktiven Tabellenblatt, sondern in einer anderen Excel-Datei speichern möchtest, kannst du den folgenden Code verwenden:

Private Sub CommandButton1_Click()
    Dim lRow As Long
    Dim wb As Workbook
    Set wb = Workbooks.Open("C:\Users\Mike\Documents\Uebersicht_Anfragen.xlsm")
    With wb.Worksheets("Tabelle1")
        lRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1 ' Erste freie Zeile in Spalte A
        .Cells(lRow, 1).Value = UserForm1.TextBox1.Value
        .Cells(lRow, 2).Value = UserForm1.TextBox2.Value
        .Cells(lRow, 3).Value = UserForm1.TextBox3.Value
    End With
    wb.Close SaveChanges:=True
End Sub

Dieser Code öffnet die Excel-Datei "Uebersicht_Anfragen.xlsm", schreibt die Daten und schließt die Datei anschließend.


Praktische Beispiele

Hier sind Beispiele für die Verwendung der oben genannten Methoden:

  1. Daten in das aktive Blatt schreiben:

    • Verwende die Schritt-für-Schritt-Anleitung, um die Daten in das aktuell aktive Blatt zu schreiben.
  2. Daten in eine andere Datei speichern:

    • Nutze den alternativen Code, um die Benutzerinformationen in einer bereits bestehenden Excel-Datei zu speichern.

Tipps für Profis

  • Verwende Option Explicit: Füge Option Explicit am Anfang deines Moduls hinzu, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung mit On Error GoTo ErrorHandler, um unerwartete Fehler zu erfassen und zu beheben.

  • Datenvalidierung: Überprüfe die Eingaben in den TextBoxen, bevor du die Werte in die Excel-Datei schreibst. Das hilft, ungültige oder unerwünschte Daten zu vermeiden.


FAQ: Häufige Fragen

1. Wie finde ich die letzte freie Zeile in einer anderen Spalte? Die Methode bleibt gleich, du musst nur die Spalte im Cells-Befehl anpassen, etwa .Cells(.Rows.Count, 2).End(xlUp).Row + 1 für Spalte B.

2. Kann ich auch mehr als drei TextBoxen verwenden? Ja, du kannst so viele TextBoxen hinzufügen, wie du möchtest. Achte darauf, den VBA-Code entsprechend anzupassen, um alle Werte zu erfassen und in die entsprechenden Zellen zu schreiben.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige