Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: In nächste freie Zeile schreiben

In nächste freie Zeile schreiben
01.07.2008 09:28:05
KNiff
Hi!
Ich weiß nicht wie ich vorgehen soll:
Ich hab in einer Exceltabelle eine Userform erstellt wo man Werte eintragen kann, die danach in das Sheet übernommen werden sollen. Es soll immer in die nächste freie Zeile Eingetragen werden. Ich hab leider keine Ahnung wie der VBA-Ausgabecode aussehen könnte. Vielleicht könnt ihr mir weiterhelfen.
Wär echt super.
Gruß Kniff

Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: In nächste freie Zeile schreiben
01.07.2008 09:29:41
Hajo_Zi
Hallo Nick,
Die allerletzte benutzte Zeile, unabhängig von der Spalte liefert:
MsgBox Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row

AW: In nächste freie Zeile schreiben
01.07.2008 09:39:00
KNiff
Nick?
Ich glaube wir reden aneinander vorbei. Er soll mir nicht eine MsgBox mit der Info anzeigen was die letzte ausgefüllte Zeile ist, sondern soll die Werte die ich in der UserForm eingegeben soll er in die nächste freie Zeile reinschreiben.
Gruß KNIFF

Anzeige
AW: In nächste freie Zeile schreiben
01.07.2008 09:45:00
Hajo_Zi
Hallo Nick,
MsgBox zu ersetzen durch Variable= habe ich nicht als so großes Problem angesehen.
Gruß Hajo

AW: In nächste freie Zeile schreiben
01.07.2008 10:13:00
Erich
Hallo Vorname,
zu "Nick" schau mal, was in https://www.herber.de/forum/faq.htm zu NickNames steht...
Probiers mal mit (hier für Spalte 1 = A):
Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1) = TextBox1 'oder was auch immer
Übrigens:
Damit wird nicht die nächste freie Zelle bestimmt, sondern die Zelle unter dem letzten Eintrag.
Es könnte ja sein, dass nur die Zellen A1 und A5 belegt sind. Dann wäre A2 die nächste freie Zelle.
Mit der obigen Anweisung wird A6 belegt.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: In nächste freie Zeile schreiben
01.07.2008 10:02:00
KNiff
Hmm, klappt immernoch nicht. Die Variable heißt bei mir "Team" und das Sheet "Spielerverzeichnis".
HAb das so eingetragen:
Team = Sheets("Spielerverzeichnis").UsedRange.SpecialCells(xlCellTypeLastCell).Row

AW: In nächste freie Zeile schreiben
01.07.2008 10:06:00
Hajo_Zi
Hallo Nick,
die letzte Zeile wird damit ermittelt. Was klappt nun nicht?
Ich hätte vielleicht auch
Team = Sheets("Spielerverzeichnis"). UsedRange.SpecialCells(xlCellTypeLastCell).Row+1
genommen da Du in die freie Zeile schreiben willst.
cells(team,1)=Textbox1
Gruß Hajo

Anzeige
AW: In nächste freie Zeile schreiben
01.07.2008 10:07:25
Andi
Hi,
was heißt klappt nicht?
Passiert nichts, oder gibt es eine Fehlermeldung? Wenn ja welche?
Wie ist Deine Variable team deklariert?
Schönen Gruß,
Andi

Damit hast Du schon mal die Zeile!
01.07.2008 10:11:48
Matthias
Hallo
als Beispiel:
Du hast ein Userform mit einer Textbox und einem Button

Private Sub CommandButton1_Click()
Dim Team As Long
Team = Sheets("Spielerverzeichnis").UsedRange.SpecialCells(xlCellTypeLastCell).Row
Cells(Team, 1) = TextBox1.Value
End Sub


Mit Team = Sheets("Spielerverzeichnis").UsedRange.SpecialCells(xlCellTypeLastCell).Row hast Du nun die ZeilenNummer in Deiner Variablen.
Nun mußt Du Excel aber auch sagen, in welche Spalte geschrieben werden soll!
Hier im Beispiel in Spalte "A"
Cells(Team, 1) '1 steh für "A"
Gruß Matthias

Anzeige
AW: Damit hast Du schon mal die Zeile!
01.07.2008 10:54:00
Patrick
Hmm, weiß auch nich wo dran das liegt, auf alle Fälle macht er immernoch nix. Entschuldigung für die großen Umstände, VBA is halt nicht grad meins....
Hab hier mal die Datei zum Download bereit gestellt: https://www.herber.de/bbs/user/53486.zip
vielleicht hilft das weiter.
Grüße Kniff

Anzeige
AW: ... und auch nicht das richtige Blatt
01.07.2008 11:37:00
Erich
Hallo Patrick,
du bestimmst zwar mit
Team1 = Sheets("Spielerverzeichnis").UsedRange.SpecialCells(xlCellTypeLastCell).Row
die letzte Zeile des Blattes "Spielerverzeichnis",
aber mit
Cells(Team1, 1) = txtTeam.Value
schreibst du den Wert in Cells(Team1,1) des gerade aktiven Blattes - und das ist dein 1. Blatt.
Schau da mal nach unten ab Zeile 1000...
Besser packst du den ganzen Abschnitt in eine With-Klammer:
With Worksheets("Spielerverzeichnis")
.Cells(Team1, 1) = txtTeam.Value (mit dem Punkt vor Cells)
Noch etwas:
Mit SpecialCells(xlCellTypeLastCell) kommst du nicht weiter, da kommt für Team1 immer ca. 1001 raus.
(Du hast Formeln bis Zeile 1000 im Blatt stehen.)
Weiter oben im Thread habe ich dir eine Alternative beschrieben:
https://www.herber.de/forum/messages/990062.html
Noch ein Tipp:
"Dim Team1 As Long" sollte ganz oben in der Prozedur stehen, nicht mittendrin.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: ... und auch nicht das richtige Blatt
01.07.2008 12:10:48
Patrick
Jetzt sagt er mir: Laufzeitfehler 1004 ---- Anwendungs- oder objektdefinierter Fehler.
Er schreibt immernoch die Teamnummer in das erste Sheet wo der Button sitzt.
Quellcode sieht wie folgt aus:

Private Sub CommandButton1_Click()
Dim Team As Integer
Dim Team1 As Long
With Worksheets("Spielerverzeichnis")
.Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1) = txtTeam.Value
.Cells(Team1, 1) = txtTeam.Value
Worksheets("Spielerverzeichnis").Activate
End With
End Sub


Gruß PAtrick

Anzeige
AW: neuer Versuch
01.07.2008 13:40:00
Erich
Hi Patrick,
da sind noch einige Fehler drin gewesen:
Team1 wird zwar als Long deklariert und in der Zeile
.Cells(Team1, 1) = txtTeam.Value
verwendet, aber nie mit einem Wert belegt.
Das produziert einen Fehler, denn Team1 ist = 0, und diese Zeile gibt's nicht.
Mit Cells(.Rows.Count, 1).End(xlUp).Row wird die letzte Zeile des gerade aktiven Blattes bestimmt.
Du willst aber die letzte Zeile des Blattes "Spielerverzeichnis" haben.
Da fehlen (da das Ganze in der With-Klammer steht), noch ein paar Punkte.
Nicht falsch, aber überflüssig, da nicht gebraucht: Dim Team As Integer
Probiers mal mit

Private Sub CommandButton1_Click()
Dim Team1 As Long
With Worksheets("Spielerverzeichnis")
.Cells(.Cells(.Rows.Count, 1).End(xlUp).Row + 1, 1) = txtTeam.Value
.Activate     ' auch hier kannst und solltest du die With-Klammer nutzen
End With
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Werte in die nächste freie Zeile in Excel schreiben


Schritt-für-Schritt-Anleitung

Um Werte in die nächste freie Zeile in Excel zu schreiben, kannst du VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und gehe in die Entwicklertools. Wenn du die Entwicklertools nicht siehst, aktivierst du sie über die Excel-Optionen.

  2. Erstelle ein Userform mit einer Textbox und einem Button.

  3. Klicke auf den Button und füge den folgenden VBA-Code ein:

    Private Sub CommandButton1_Click()
       Dim Team1 As Long
       With Worksheets("Spielerverzeichnis")
           Team1 = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
           .Cells(Team1, 1) = TextBox1.Value
       End With
    End Sub
  4. Schließe den VBA-Editor und teste dein Userform. Gib einen Wert in die Textbox ein und klicke auf den Button. Der Wert sollte in die nächste freie Zeile der Spalte A im Blatt "Spielerverzeichnis" geschrieben werden.


Häufige Fehler und Lösungen

  • Fehler 1004: Anwendungs- oder objektdefinierter Fehler
    Dieser Fehler tritt häufig auf, wenn du versuchst, auf ein nicht vorhandenes Blatt oder eine nicht vorhandene Zelle zuzugreifen. Stelle sicher, dass das Blatt "Spielerverzeichnis" existiert und korrekt benannt ist.

  • Wert wird nicht in die richtige Zeile geschrieben
    Überprüfe, ob du die richtige Methode zur Bestimmung der nächsten freien Zeile verwendest. Achte darauf, dass du die With-Klammer korrekt nutzt, um auf das richtige Blatt zuzugreifen.


Alternative Methoden

Neben der Verwendung des oben genannten Codes gibt es auch andere Methoden, um in die nächste freie Zeile zu schreiben. Eine Möglichkeit ist die Verwendung von Find, um die letzte gefüllte Zeile zu finden:

Dim letzteZeile As Long
letzteZeile = Worksheets("Spielerverzeichnis").Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
Worksheets("Spielerverzeichnis").Cells(letzteZeile, 1).Value = TextBox1.Value

Dies ist besonders nützlich, wenn du sicherstellen möchtest, dass du die letzte Zeile unabhängig von leeren Zellen berücksichtigst.


Praktische Beispiele

Hier sind einige Beispiele, wie du mit VBA in die nächste freie Zeile in Excel schreiben kannst:

  1. Schreiben in Spalte A:

    .Cells(Team1, 1) = TextBox1.Value
  2. Schreiben in Spalte B:

    .Cells(Team1, 2) = TextBox2.Value
  3. Schreiben mehrerer Werte:

    .Cells(Team1, 1) = TextBox1.Value
    .Cells(Team1, 2) = TextBox2.Value
    .Cells(Team1, 3) = TextBox3.Value

Diese Beispiele zeigen, wie du verschiedene Werte in die nächste freie Zeile des "Spielerverzeichnis"-Blattes schreiben kannst.


Tipps für Profis

  • Nutze die Option Explicit-Anweisung am Anfang deines Codes, um sicherzustellen, dass alle Variablen deklariert werden. Das hilft, Fehler zu vermeiden.

  • Verwende Application.ScreenUpdating = False, um die Bildschirmaktualisierung während der Codeausführung zu deaktivieren. Setze sie am Ende wieder auf True, um die Leistung zu verbessern.

  • Kommentiere deinen Code, um die Lesbarkeit zu erhöhen und anderen (oder dir selbst) zu helfen, den Code später besser zu verstehen.


FAQ: Häufige Fragen

1. Wie finde ich die nächste freie Zeile in einer anderen Spalte?
Du kannst die gleiche Logik verwenden, indem du nur die Spaltennummer in der Cells-Methode änderst. Zum Beispiel für Spalte B:

.Cells(Team1, 2) = TextBox1.Value

2. Was mache ich, wenn ich mehr Daten als nur Text speichern möchte?
Du kannst jede Art von Daten speichern, die du benötigst, indem du die entsprechende Variable in der Textbox oder durch eine andere Eingabemethode verwendest. Achte darauf, dass der Datentyp kompatibel ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige