Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Letzte Zeile springen bei öffnen

Letzte Zeile springen bei öffnen
17.06.2009 15:56:25
chris58
Hallo !
Kann mir bitte wer sagen, was ich ändern muß um bei dem Code nicht in die Zeile 45 sondern in die nächste leere Zeile zu springen, wenn ich das Tool öffne ?
Danke
chris
Hier der Code:

Private Sub Workbook_Open()
Range("A45").Select
Range("A1:M9996").Sort Key1:=Range("C2"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Sheets("Empfaenger").Select
Range("A1:E9999").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Sheets("Kunden").Select
End Sub


Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Letzte Zeile springen bei öffnen
17.06.2009 16:52:13
Heiko
hallo chris,

Private Sub Workbook_Open()
dim i as integer
range("A45").select
if Range("A45")"" then
for i=46 to 10000
if cells(i,1)="" then
cells(i,1).select
exit for
end if
next i
end if
Range("A1:M9996").Sort Key1:=Range("C2"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Sheets("Empfaenger").Select
Range("A1:E9999").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Sheets("Kunden").Select
End Sub


heiko

Anzeige
AW: Letzte Zeile springen bei öffnen
18.06.2009 08:08:09
chris58
Danke, das geht bestens
nochmals danke
chris
AW: Letzte Zeile springen bei öffnen
18.06.2009 09:59:36
chris58
Hallo
Jezt habe ich noch ein "klitzekleines" Problem.
Ich habe diesen Code in diversen Arbeitsblättern um zu vermeiden, daß andere die Codes löschen können. Mit dem vorigen Doppelklick gelange ich in das Sheet "Abbucher". Bisher ging alles bestens, jedoch seit gestern macht der u.a. Code maken.
Kann wer sagen, warum das so ist, es kommt immer ein Laufzeitfehler 1004 ... Die Zelle oder das Diagramm, das Sie versuchen zu ändern, ist geschützt und somit schreibgeschützt usw.
Hier der Code: (er sollte eingentlich bewirken, daß der Schutz neutralisiert wird und nach dem Eintrag wieder aktiviert wird)

Private Sub Worksheet_Activate()
ActiveSheet.Protect Password:="cesar", Userinterfaceonly:=True
End Sub


Danke für jede Hilfe
chris

Anzeige
AW: Letzte Zeile springen bei öffnen
18.06.2009 10:11:02
Heiko
hallo chris,
wenn du mit "neutralisiert" meinst, den arbeitsblattschutz aufzuheben, musst du schreiben:

activesheet.unprotect "passwort"


wenn du nur willst, dass niemand an deinem vba-code rumfummelt, kannst du im vba-editor, projekt-explorer mit rechtsklick auf deinen dateinamen -> "Eigenschaften von VBA-Projekt..." -> reiter "Schutz" das projekt zur anzeige sperren und ein passwort vergeben.
heiko

Anzeige
AW: Letzte Zeile springen bei öffnen
18.06.2009 10:22:54
chris58
Hallo !
Ich meinte mit Code eigentlich die Formeln in diesem Sheet. Wenn ich nun den VBA Code so ändere dann kommt:
Anwenungs- oder objektdefinierter Fehler
und die Daten werden zwar in das Sheet übertragen, jedoch mit dem Laufzeitfehler 1004 usw.
chris
AW: Letzte Zeile springen bei öffnen
18.06.2009 10:36:41
Heiko
hallo chris,

Sub schutzein() 'Mappen und Blattschutz einschalten
'Exit Sub 'Für Testzwecke
With ActiveSheet
.Range("B1").Locked = False
.Range("C1:D1").Locked = False
.Range("B3:C3").Locked = False
.Range("G3").Locked = False
.Range("B5:D5").Locked = False
.Range("B7").Locked = False
.Range("B11").Locked = False
.Range("A15").Locked = False
.Range("F15").Locked = False
.Range("B18:B52").Locked = False
.Range("B58").Locked = False
.Range("B60").Locked = False
.Range("B62").Locked = False
.Range("E62:F62").Locked = False
.Range("E82:F82").Locked = False
End With
ActiveSheet.Protect Password:="test", Contents:=True, Scenarios:=True
ThisWorkbook.Protect Password:="test", Structure:=True, Windows:=True
End Sub


mit "Range("A1:A3").Locked=False" hebst du den schutz für die zellen A1:A3 auf. beachte dabei, dass verbundene zellen mit "Range("A1:A3")" angegeben werden müssen.
sollte der lösungsvorschlag nicht deinen vorstellungen entsprechen, lade bitte die excel-datei hoch.
heiko

Anzeige
AW: Letzte Zeile springen bei öffnen
18.06.2009 11:55:57
chris58
Danke, jedoch wollte ich nur bei Doppelklick aus dem Tabellenblatt "Kunden" (der die Daten übernimmt) beim gesamten Tabellenblatt "Abbucher" und "Brief" den Schutz aufheben, die Daten reinstellen lassen (durch den Doppelklick) und dann die beiden Tabellenblätter wieder genauso geschützt haben, wie vor dem Doppelklick. Leider kann ich die Datei nicht hier reinstellen, da ich ansonst ALLES ändern müsste.
Danke jedenfalls für deine Hilfe
chris
Anzeige
AW: Letzte Zeile springen bei öffnen
18.06.2009 12:34:30
Heiko
hallo chris,
wo (zelle, tabellenblatt) klickst du doppelt hin? warum überhaupt doppelklick?
ansonsten:

private sub worksheet_beforedoubleclick(byval target as range)
if target=range("A1:Z999") then
worksheets("abbucher").unprotect "passwort"
worksheets("brief").unprotect "passwort"
end if
call datenkopieren
worksheets("abbucher").protect Password:="passwort", Contents:=True, Scenarios:=True
worksheets("brief").protect Password:="passwort", Contents:=True, Scenarios:=True
end sub


den code beim tabellenblatt "kunden" einfügen.
bedenke, dass doppelklick auch heißt zelle/ diagramm bearbeiten.
heiko

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Letzte Zeile in Excel schnell erreichen


Schritt-für-Schritt-Anleitung

Um in Excel direkt zur letzten Zeile oder zur nächsten leeren Zeile zu springen, kannst du VBA (Visual Basic for Applications) nutzen. Hier ist ein einfaches Beispiel, das dir hilft, beim Öffnen einer Datei automatisch zur letzten beschriebene Zeile zu springen:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Doppelklicke im Projekt-Explorer auf DieseArbeitsmappe.

  3. Füge den folgenden Code ein:

    Private Sub Workbook_Open()
        Dim i As Long
        Range("A45").Select
        If Range("A45") <> "" Then
            For i = 46 To 10000
                If Cells(i, 1) = "" Then
                    Cells(i, 1).Select
                    Exit For
                End If
            Next i
        End If
    End Sub
  4. Schließe den VBA-Editor und speichere deine Datei als xlsm (Excel-Makro-fähige Datei).

  5. Schließe und öffne die Datei erneut, um den Code auszuführen und ans Ende der Excel-Tabelle zu springen.


Häufige Fehler und Lösungen

Fehler 1: Laufzeitfehler 1004

  • Problem: Du erhältst den Fehler, wenn du versuchst, auf geschützte Zellen zuzugreifen.
  • Lösung: Stelle sicher, dass du den Arbeitsblattschutz vor dem Zugriff auf die Zellen aufhebst. Füge im Code die Zeile ActiveSheet.Unprotect "dein_passwort" vor der Auswahl hinzu.

Fehler 2: Der Code springt nicht zur letzten Zeile

  • Problem: Der angegebene Bereich ist nicht korrekt oder es gibt keine leeren Zellen.
  • Lösung: Überprüfe, ob der Bereich (z.B. Range("A1:A10000")) korrekt definiert ist und genügend leere Zeilen vorhanden sind.

Alternative Methoden

  1. Tastenkombinationen:

    • Du kannst die STRG + Pfeil nach unten-Tastenkombination verwenden, um schnell zur letzten beschriebene Zeile in einer Spalte zu springen.
    • Mit STRG + Pfeil nach oben kommst du zur ersten beschrifteten Zeile.
  2. Excel-Funktionen:

    • Verwende die VERGLEICH-Funktion, um den letzten Eintrag einer bestimmten Spalte zu finden. Beispiel:
      =VERGLEICH(9^9; A:A)
    • Diese Formel gibt dir die Zeilennummer des letzten Wertes in der Spalte A zurück.

Praktische Beispiele

  • Code, um bei Doppelklick auf ein Blatt zur letzten Zeile zu springen:

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range)
        If Not Intersect(Target, Me.Range("A1:A1000")) Is Nothing Then
            Dim lastRow As Long
            lastRow = Cells(Rows.Count, 1).End(xlUp).Row
            Cells(lastRow + 1, 1).Select
        End If
    End Sub
  • Code, um beim Öffnen der Datei an das Ende der Tabelle zu springen:

    Private Sub Workbook_Open()
        Dim ws As Worksheet
        Set ws = ThisWorkbook.Sheets("DeinBlatt")
        ws.Cells(ws.Rows.Count, 1).End(xlUp).Offset(1, 0).Select
    End Sub

Tipps für Profis

  • Automatisierung: Verwende Makros, um repetitive Aufgaben zu automatisieren, wie das Springen zur letzten Zeile oder das Einfügen von neuen Daten.
  • Verwendung von Namen: Definiere Namen für bestimmte Bereiche, um den Code lesbarer zu machen. Beispiel: LetzteZeile = Cells(Rows.Count, 1).End(xlUp).Row
  • Fehlerbehandlung: Implementiere On Error Resume Next, um den Code robuster zu machen.

FAQ: Häufige Fragen

1. Wie kann ich in Excel zum letzten Eintrag springen? Verwende die Tastenkombination STRG + Pfeil nach unten, um direkt zur letzten beschriebene Zeile zu gelangen.

2. Wie kann ich einen VBA-Code zum Springen zur letzten Zeile anpassen? Ändere die Range- und Cells-Referenzen im Code, um die spezifischen Spalten oder Zeilen anzupassen, die du verwenden möchtest. Achte darauf, den Schutz der Blätter entsprechend zu heben, falls erforderlich.

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