Registriert seit: 08.08.2017
Version(en): 365
30.05.2018, 18:46
(Dieser Beitrag wurde zuletzt bearbeitet: 30.05.2018, 18:46 von PhilippB.)
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ß
Registriert seit: 24.10.2015
Version(en): 2010
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)
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
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)
Registriert seit: 08.08.2017
Version(en): 365
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 ?
Registriert seit: 11.04.2014
Version(en): '97 bis 2016; 365
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?
Registriert seit: 11.04.2014
Version(en): '97 bis 2016; 365
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
Registriert seit: 21.12.2017
Version(en): MS 365 Family (6 User x 5 Geräte für jeden) Insider-Beta
30.05.2018, 22:36
(Dieser Beitrag wurde zuletzt bearbeitet: 30.05.2018, 22:45 von LCohen.)
(30.05.2018, 19: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.
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
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
Registriert seit: 21.12.2017
Version(en): MS 365 Family (6 User x 5 Geräte für jeden) Insider-Beta
31.05.2018, 08:47
(Dieser Beitrag wurde zuletzt bearbeitet: 31.05.2018, 08:47 von LCohen.)
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"
Registriert seit: 08.08.2017
Version(en): 365
(31.05.2018, 08: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"
|