Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zum letzten verwendeten Tabellenblatt springen

Zum letzten verwendeten Tabellenblatt springen
07.11.2006 13:18:57
Kai
Hallo,
ich bräuchte einmal mehr eure Hilfe. Folgende Problematik: Ich habe eine Tabelle mit elf Tabellenblätter. In den ersten Zehn können Daten eingetragen werden, welche mit Hilfe eines Scripts in das elfte Tabellenblatt kopiert werden. Nun hätte ich ganz gerne die Möglichkeit, dass ich aus dem elften Tabellenblatt in das zu letzt bearbeitete Tabellenblatt zurückspringe ohne die Blattregisterkarten zu benutzen. Ich hatte hier zwar schon in der Recherche etwas gefunden, jedoch funktioniert dies nicht.
Wie lässt sich dies realisieren?
Schon mal vielen Dank im Voraus.
Gruß
Kai
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zum letzten verwendeten Tabellenblatt springen
07.11.2006 13:27:14
Ptonka
Hallo,
ich würde eine Schaltfläche pro Tabellenblatt einfügen und jeweils mit dem entsprechenden Code versehen:

Sub Schaltfläche1_BeiKlick
Sheets("Tabellenblatt_1").select
End Sub

Wobei statt "Tabellenblatt_1" der Name Deines aufzurufenden Tabllenblattes stehen muss.
Gruß,
Ptonka
Anzeige
AW: Zum letzten verwendeten Tabellenblatt springen
07.11.2006 13:44:44
Erich
Hallo Kai,
vielleicht ist der Rücksprung gar nicht nötig.
Beim Kopieren von Daten aus dem gerade bearbeiteten Blatt in das elfte Blatt kann das gerade bearbeitete Blatt aktiv bleiben.
Poste doch mal das Makro, mitr dem du kopierst.
Noch ne Frage: Was hast du in der Recherche gefunden, und was funktioniert da nicht?
(Vielleicht muss ein Antworter dann nicht wieder bei Adam und Eva anfangen...)
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Zum letzten verwendeten Tabellenblatt springen
07.11.2006 14:14:58
Kai
Hallo,
also das hier hatte ich gefunden (habe nur die Angabe mit dem Button geändert)

Private Sub CommandButton7_Click()
strSheet = ActiveSheet.Name
strRange = ActiveCell.Address
Sheets(strSheet).Select
Range(strRange).Select
End Sub

Folgendes Makro wird verwendet um die Daten in das elfte Tabellenblatt zu kopieren

Private Sub CommandButton1_Click()
Dim Zeile As Long
With Sheets("Quelle")
For Zeile = 1 To .Range("G65536").End(xlUp).Row
If .Cells(Zeile, 7) > 0 Then
.Cells(Zeile, 7).EntireRow.Copy
If Sheets("Ziel").Range("A13") = "" Then
Sheets("Ziel").Range("A13").PasteSpecial Paste:=xlPasteAll
Else
Sheets("Ziel").Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
End If
End If
Next 'Zeile
End With
With Sheets("Ziel")
.Columns("C:F").EntireColumn.Hidden = True
.Activate
.Columns("H:I").NumberFormat = _
"_-[$€-2] * #,##0.00_-;-[$€-2] * #,##0.00_-;_-[$€-2] * ""-""?_-;_-@_-"
.Range("B4").Select
End With
End Sub

(Hoffe die Anzeige ist korrekt.)
Gruß
Kai
Anzeige
AW: Zum letzten verwendeten Tabellenblatt springen
07.11.2006 14:54:29
EtoPHG
Hallo Kai,

Private Sub CommandButton1_Click()
Dim Zeile As Long
Dim iActSheet As Integer
iActSheet = ActiveSheet.Index
' Dein Kopiercode, was immer der auch macht, ich hab ihn nicht analysiert, ist mir zu komplex...
ThisWorkbook.Sheets(iActSheet).Activate
End Sub

Gruss Hansueli
Anzeige
AW: Zum letzten verwendeten Tabellenblatt springen
07.11.2006 15:34:27
Kai
Hi,
ähm, ich glaube ich habe mich hier blöd ausgedrückt. Ich möchte einfach nur, dass Excel, wenn ich auf den Button klicke, er in das letzte Tabellenblatt zurückspringt das ich bearbeitet hatte. Ob hier vorher was kopiert wurde ist dabei nicht von Bedeutung.
Einen "normalen" Sprung mache ich im VBA-Code mit
Sheets("Zieltabelle").Select
Ich brauche im Prinzip nichts anderes wie
Sheets("Zurück zum letzten verwendeten Tabellenblatt").Select
Also entschuldigt nochmals das Missverständnis.
Gruß
Kai
Anzeige
AW: Zum letzten verwendeten Tabellenblatt springen
07.11.2006 15:37:49
EtoPHG
Hallo Kai,
Nix blöd ausgedrückt.
Ist mir schon klar was Du willst.
Füg doch die 3 Zeilen am Anfang und Ende in Deinen Code ein und probiers aus.
Bzw. ersetz einfach meinem blöden 'Kommentar mit Deinen Codezeilen.
Ich behaupte dann macht das Makro was Du willst.
Gruss Hansueli
Anzeige
AW: Zum letzten verwendeten Tabellenblatt springen
07.11.2006 16:20:54
Erich
Hallo Kai,
welches ist das zuletzt bearbeitete Blatt?
Dein Kopiermakro kopiert Daten aus dem Blatt "Quelle" nach "Ziel".
Befindet sich der CommandButton1 dazu auf dem Blatt "Quelle"?
Hast du in den ersten 10 Blättern analoge Makros - mit anderen Namen als "Quelle"?
Dann könnstest du
With Sheets("Quelle")
ersetzen durch
With ActiveSheet
und das Makro dann identisch in allen 10 Blättern nutzen.
Oder befindet sich CommandButton1 vielleicht auf dem Blatt "Ziel"?
Wenn das Blatt, aus dem zuletzt kopiert wurde, das zuletzt bearbeitete Blatt ist,
dann kannst du im Kopiermakro eine Variable "wsLast" belegen mit
Set wsLast = ActiveSheet oder Set wsLast = Sheets("Quelle")
In den Code des Rücksprung-Buttons kannst du dann
If not wsLast is Nothing then wsLast.activate schreiben.
Die Variable "wsLast" musst du in einem Standardmakro oberhalb der Prozeduren deklarieren:
Public wsLast as Worksheet
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zum letzten verwendeten Tabellenblatt springen in Excel


Schritt-für-Schritt-Anleitung

Um in Excel zum letzten verwendeten Tabellenblatt zu springen, kannst du einen Button erstellen, der ein VBA-Makro ausführt. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Entwicklertools aktivieren: Stelle sicher, dass das Menü "Entwicklertools" in Excel aktiviert ist. Gehe dazu auf "Datei" > "Optionen" > "Menüband anpassen" und aktiviere "Entwicklertools".

  2. Button einfügen: Füge einen Button in dein Arbeitsblatt ein. Klicke auf "Einfügen" in der Gruppe "Steuerelemente" und wähle "Button (Formularsteuerelement)".

  3. Makro zuweisen: Wenn du den Button platzierst, fragt Excel nach einem Makro. Klicke auf "Neu", um ein neues Makro zu erstellen.

  4. VBA-Code einfügen: Füge folgenden Code in das VBA-Editor-Fenster ein:

    Dim wsLast As Worksheet
    
    Private Sub CommandButton1_Click()
       Set wsLast = ActiveSheet ' Das aktuell bearbeitete Blatt speichern
       ' Hier kommt dein Kopiercode
       If Not wsLast Is Nothing Then
           wsLast.Activate ' Zum zuletzt bearbeiteten Blatt zurückspringen
       End If
    End Sub
  5. Makro testen: Schließe den VBA-Editor und klicke auf den Button, um zu testen, ob du zum letzten verwendeten Tabellenblatt springst.


Häufige Fehler und Lösungen

  • Fehler: Der Button funktioniert nicht.

    • Lösung: Stelle sicher, dass du den VBA-Code korrekt eingefügt und das Makro gespeichert hast.
  • Fehler: Es springt nicht zum richtigen Blatt.

    • Lösung: Überprüfe, ob die Variable wsLast korrekt gesetzt wird, bevor du den Sprung machst.

Alternative Methoden

  1. Verwendung von Excel Shortcuts: Du kannst auch Excel Shortcuts verwenden, um zwischen Arbeitsblättern zu wechseln. Drücke Ctrl + Page Up, um zum vorherigen Blatt zu wechseln und Ctrl + Page Down, um zum nächsten Blatt zu springen.

  2. Direkt zu einem Blatt springen: Wenn du häufig zu einem bestimmten Blatt musst, kannst du auch einen Shortcut erstellen, indem du das Makro direkt mit einer Tastenkombination verbindest.


Praktische Beispiele

  1. Ein Button zum ersten Tabellenblatt: Wenn du auch oft zum ersten Tabellenblatt springen möchtest, kannst du folgenden Code verwenden:

    Private Sub CommandButton2_Click()
       Sheets(1).Select ' Zum ersten Tabellenblatt springen
    End Sub
  2. Ein Button zum nächsten Tabellenblatt: Um zum nächsten Tabellenblatt zu springen, kannst du diesen Code verwenden:

    Private Sub CommandButton3_Click()
       Dim nextSheetIndex As Integer
       nextSheetIndex = ActiveSheet.Index + 1
       If nextSheetIndex <= ThisWorkbook.Sheets.Count Then
           Sheets(nextSheetIndex).Select
       End If
    End Sub

Tipps für Profis

  • VBA-Optimierung: Um die Leistung zu verbessern, kannst du die Bildschirmaktualisierung ausschalten, während das Makro läuft:

    Application.ScreenUpdating = False
    ' Dein Code hier
    Application.ScreenUpdating = True
  • Makro-Sicherheit: Stelle sicher, dass du die Sicherheitseinstellungen für Makros überprüfst, damit dein Code problemlos ausgeführt werden kann.


FAQ: Häufige Fragen

1. Wie kann ich in Excel zum ersten Tabellenblatt springen?
Du kannst einen Button mit folgendem VBA-Code nutzen:

Sheets(1).Select

2. Gibt es einen Shortcut, um zwischen den Arbeitsblättern zu wechseln?
Ja, du kannst die Tasten Ctrl + Page Up und Ctrl + Page Down verwenden, um zwischen den Arbeitsblättern zu navigieren.

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