Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
988to992
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
988to992
988to992
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
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

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

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

Anzeige
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

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

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

82 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige