Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1736to1740
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
Nächste feie Zelle eine Zeile darunter
03.02.2020 09:19:36
SeMa
Hallo,
die Sache wäre eigentlich sehr einfach. Ich möchte unter der Zelle C5 in der Spalte C die nächste Freie Zelle von oben aus mit dem Wert aus einer Textbox belegen.
Code:
Range("C5", Cells(Range("C5").End(xlDown).Row + 1, "C")).Value = TextBox1
Leider schreibt er mir aber nun die ganze Spalte C bis zum Ende der Tabelle mit TextBox1 voll und nicht nur den nächsten freien Platz ?
Vielen Dank schon mal!!

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

Betreff
Datum
Anwender
Anzeige
Loop
03.02.2020 09:53:21
Matthias
Hallo

Sub SeMa()
Dim x&
x = 5
Do Until Cells(x, 3) = ""
x = x + 1
Loop
Cells(x, 3) = "Dein Textbox-Text"
End Sub
Gruß Matthias
AW: Loop
03.02.2020 10:25:21
SeMa
Vielen Dank ...Super!!
AW: Nächste feie Zelle eine Zeile darunter
03.02.2020 10:48:41
Daniel
Hi
naja, mit Range(a, b) definierst du ja einen Zellbereich von a bis b.
hier sollte reichen:
Range("C5").end(xldown).Offset(1, 0).value = Textbox1.Text
allerdings muss man hier noch ein paar Sonderfälle abdecken.
Ich gehe mal davon aus, dass C5 eine Überschrift ist und daher immer befüllt ist.
das End(xldown) funktioniert aber nur dann richtig, wenn C5 und C6 befüllt sind.
C6 sollte man auf jeden Fall abfragen:
if Range("C6").value = "" then
Range("C6").value = TextBox1.Text
Else
Range("C5").End(xldown).Offset(1, 0).value = Textbox1.Text
End if
wenns ein Einzeiler werden soll, probiermal:
IIf(Range("C6").Value = "", Range("C6"), Range("C5").End(xlDown).Offset(1, 0)).Value = Textbox1.text
Gruß Daniel
Anzeige
AW: Nächste feie Zelle eine Zeile darunter
04.02.2020 09:11:37
SeMa
Vielen Dank Daniel!
Leider bin ich noch nicht ganz am Ziel.
Folgendes klappt perfekt:
Cells(Cells(Rows.Count, "B").End(xlUp).Row + 1, "B").Value = TextBox1 'erste freie Zelle in SpalteB
Genau das bräuchte ich mit xlDown ... also nicht von unten her suchen sondern von oben.. geht aber leider nicht.
AW: Nächste feie Zelle eine Zeile darunter
04.02.2020 10:05:47
Daniel
HI
warum so umständlich für den Sprung von unten nach oben reicht das:
Cells(Rows.Count, 2).end(xlup).Offset(1, 0).value = Textbox1.Text
sprung von oben nach unten geht genauso mit End(xldown):
Cells(1, 2).End(xldown).Offset(1, 0).value = Textbox1.text

allerding funktioniert der Sprung hier nur korrekt, wenn die Absprungzelle und die direkt darunter liegende Zellen befüllt sind.
das was wahrscheinlich nicht immer gegeben ist, muss man da noch eine Prüfung einbauen.
die Absprungzelle sollte eigentlich immer befüllt sein, da jede Tabelle in der Regel eine Überschrift hat, also muss man die darunter liegende Zelle abfragen:
If Cells(2, 2) = "" Then
Cells(2, 2).Value = Textbox1.Text
Else
Cells(1, 2).end(xldown).Offset(1, 0).value = Textbox1.text
End if
das kann man auch als Einzeiler schreiben, wenn man kurzen Code mag:
IIF(Cells(2, 2).value = "", Cells(2, 2), Cells(1, 2).end(xldown).Offset(1, 0)).value = Textbox1.text
Gruß Daniel
Anzeige
AW: Nächste feie Zelle darunter
04.02.2020 21:39:51
GerdL
Moin
Sub downunder()
If Cells(6, 3) = "" Then
Cells(6, 3).Value = "XXX"
ElseIf Cells(7, 3) = "" Then
Cells(7, 3).Value = "XXX"
Else
Cells(6, 3).End(xlDown).Offset(1, 0).Value = "XXX"
End If
End Sub
Gruß Gerd

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige