Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Erste Freie Zeile ab Zeile X
#1
Hey Leute könnt ihr mir eventuell aufzeigen wie der Code lauten müssten wenn ich in die erste Freie Zeile ab z.B. E9 schreiben möchte ?
Also wenn E9 besetzt ist dann in E10 usw.
Was ich bis jetzt gefunden hatte war etwas in die nächste Freie Zeile zu schreiben.

Danke Gruß
Antworten Top
#2
Hallo,
Cells(Rows.Count, xxx).End(xlUp).Row
liefert Dir die letzte belegte Zeile in Spalte xxx, wenn nicht gefiltert ist.
Gruß der AlteDresdner (Win11, Off2021)
Antworten Top
#3
Range("E9").End(xlDown).Offset(1, 0)
dürfte es eher treffen, wenn Lücken gefüllt werden sollen.
(und ja! eine kleine Fehlerbehandlung schadet nixxx)

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#4
Ok das sieht schon mal gut aus. Aber wie müsste ich das dann weiter anweisen wenn er ab dort dann die letzte Zeile auswendig machen soll ?
Antworten Top
#5
Hallo,

Zitat:Aber wie müsste ich das dann weiter anweisen wenn er ab dort dann die letzte Zeile auswendig machen soll 

hast Du eigentlich mal einen der Codeschnipsel ausprobiert, die Dir hier geschickt wirden
oder hast Du keine Ahnung, was Du damit machen sollst /kannst?
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#6
Hallo,

hier mal einige Beispiele aus dieser Kategorie. Mögen sie Dir weiterhelfen.

Zitat:Option Explicit



Sub letzte_Zeile()
'letzte Zeile in Spalte A suchen
Zeilenanzahl = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
MsgBox "Zeile: " & Zeilenanzahl
End Sub



Sub letzte_Spalte()
'letzte Spalte in Zeile 1 suchen
Spaltenanzahl = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column
MsgBox "Spalte: " & Spaltenanzahl & Chr(10) & _
       "Buchstabe: " & SpaltenBuchstaben(Spaltenanzahl)
End Sub



Sub letzteZeile_letzteSpalte()
Dim Zeilenanzahl As Long
Dim Spaltenanzahl As Long
Dim lngi As Long
                                                                'letzte Zeile in Spalte A suchen
Zeilenanzahl = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row

                                                                'letzte Spalte in der Zeile suchen und
                                                                'Schrifteintag hinter letzter genutzter Spalte
    For lngi = 1 To Zeilenanzahl
        Spaltenanzahl = ActiveSheet.Cells(lngi, Columns.Count).End(xlToLeft).Column
        Cells(lngi, Spaltenanzahl + 1) = "Hallo, hier ist Schluß"
    Next lngi
End Sub

... und wenn das mit ab Zeile x wirklich ernst gemeint war und ich das richtig verstanden habe, dann
ziehst Du eben von der ermittelten Summe das x ab
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#7
(30.05.2018, 18:03)RPP63 schrieb: Range("E9").End(xlDown).Offset(1, 0)
dürfte es eher treffen, wenn Lücken gefüllt werden sollen.
Das ist nicht ganz so einfach. End(xlDown) kommt entweder bei der a) nächsten oder bei der b) lokal letzten gefüllten Zelle an. Beides muss daher separat codiert werden. Im Falle a) kann Offset(1,0) nämlich auf eine leere oder gefüllte Zelle treffen.

.End() "toggelt" gewissermaßen, ohne zu wissen, ob es gerade on oder off ist. Also am Anfang oder am Ende (oder beides!) eines gefüllten Bereiches. Daher sind es auch nicht 2 Zustände, sondern noch ein dritter dazwischen.
Antworten Top
#8
Hallo Philipp,

das wäre mein Vorschlag:
Sub Makro1()
With Range(Cells(9, 5), Cells(Rows.Count, 5))
If Application.WorksheetFunction.CountBlank(.Cells) Then
With .Find(What:="", After:=.Cells(.Cells.Count), LookIn:=xlValues, LookAt:=xlWhole, _
SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
.Value = InputBox("Hier ist die Zelle " & .Address(0, 0) & ". Ich brauche Input!")
End With
Else
MsgBox "Es gibt keine leeren Zellen im Bereich " & .Address(0, 0) & ".", vbExclamation
End If
End With
End Sub
Gruß Uwe
Antworten Top
#9
Pseudocode mit 3 Ausgängen, der letzte von RPP63:

If [E9] = "" Then i = 9 Else If [E10] = "" Then i = 10 Else i = Range("E9").End(xlDown).Offset(1, 0).Row

umzustricken auf "Start Anywhere"
Antworten Top
#10
(31.05.2018, 07:47)LCohen schrieb: Pseudocode mit 3 Ausgängen, der letzte von RPP63:

If [E9] = "" Then i = 9 Else If [E10] = "" Then i = 10 Else i = Range("E9").End(xlDown).Offset(1, 0).Row

umzustricken auf "Start Anywhere"

Geil danke erstmal,
aber wie würde das Klammertechnisch aussehen wenn ich am Ende noch einen festgelegten Wert dort eintragen möchte ?

If [E9] = "" Then i = 9 Else If [E10] = "" Then i = 10 Else i = Range("E9").End(xlDown).Offset(1, 0).Row ).value = "Test"
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste