Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
844to848
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
844to848
844to848
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Rückgriff auf letztes Blatt

Rückgriff auf letztes Blatt
11.02.2007 07:26:45
Erich
Hallo EXCEL-Freunde,
ich habe mir eine Symbolleiste angelegt, mit der ich auf verschiedene Makros
zugreifen kann, z.B. dass ich auf bestimmte Blätter springe.
Nun bräuchte ich ein zusätzliches Makro:
es soll sich merken, wenn ich in ein Blatt wechsle, von welchem Blatt ich
gekommen bin um anschließende wieder zurückzuspringen; Quasi eine "Zurück-Taste".
Beispiel:
ich bin in Blatt 1,
wechsle mit einem Makro aus der Symbolleiste in Blatt 144,
jetzt möchte ich in der Symbolleiste "Zurück" anklicken und wieder in Blatt 1 landen; im Blatt 144 mache ich nur verschiedene Eingaben.
Besten Dank!
mfg
Erich
Private Tippgemeinschaft für Lotto oder Keno: http://www.kenostrategen.de

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Rückgriff auf letztes Blatt
11.02.2007 08:15:29
Erich
Hi Namensvetter,
passt einer der Codes in diesem Thread?
https://www.herber.de/forum/archiv/792to796/t792929.htm
Wichtig finde ich da Sepps Hinweis (ganz am Ende).
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: Rückgriff auf letztes Blatt
11.02.2007 08:37:05
Erich
Hallo Erich,
besten Dank. Reicht noch nicht ganz.
Ich muss den Code quasi auf zwei aufteilen. Im 1. Teil (Mehrfach) wechsle ich auf
ein Blatt "Mehrfach", dann schreibe ich was in das Blatt Mehrfach.
Anschließend soll das Startblatt mit "Blattzurück" aktiviert werden.
Im 2. Teil müsste der code also wissen, wie das Startblatt aus dem 1. Teil geheißen hat?

Sub Mehrfach1()
Dim wksStart As Worksheet
Set wksStart = ActiveSheet          ' Startblatt merken
Sheets("Mehrfach").Activate
Range("A1").Select
End Sub


Sub Blattzurück()
Dim wksStart As Worksheet
wksStart.Activate                   ' Startblatt wieder aktivieren
End Sub

Geht sowas?
Besten Dank nochmal!
mfg
Erich
Private Tippgemeinschaft für Lotto oder Keno: http://www.kenostrategen.de
Anzeige
AW: Rückgriff auf letztes Blatt
11.02.2007 11:43:42
Franz
Hallo Erich,
was wird denn in Worksheets("Mehrfach").Range("A1") rein geschrieben? Schreibst Du das händisch oder macht das Dein Makro?
Grüße Franz
Blatt zurück
11.02.2007 11:52:36
Erich
Hallo Franz,
da wird nichts reingeschrieben, die Zelle wird nur selectiert - da könnte ich aber
wohl das "Startblatt reinschreiben und hätte dann den Namen des Startblatts für den
nächsten Code parat?
Werds gleich probieren!
mfg
Erich
Private Tippgemeinschaft für Lotto oder Keno: http://www.kenostrategen.de
noch offen
11.02.2007 11:58:22
Erich
Hallo,
zu früh gefreut - bei der Umsetzung meines Plans bin ich hängengeblieben - insofern
besten Dank für weitere Hilfe!
mfg
Erich
Private Tippgemeinschaft für Lotto oder Keno: http://www.kenostrategen.de
Anzeige
AW: Blatt zurück
11.02.2007 12:12:43
Franz
Hallo Erich,
"da wird nichts reingeschrieben" - wozu wird die Zelle dann selektiert, was willst Du dort? Es ist schwer zu helfen, wenn nicht genau klar ist, worum's eigentlich geht...
Grüße Franz
Blatt zurück
11.02.2007 12:20:53
Erich
Hallo Franz,
sorry; aber ich selektiere quasi das Blatt Mehrfach und wähle einfach die Zelle A1
aus in der dann der Cursor steht, um dann mir auf den Blatt was anzuschauen.
mfg
Erich
Private Tippgemeinschaft für Lotto oder Keno: http://www.kenostrategen.de
Lösung?
11.02.2007 13:03:32
Franz
Hallo Erich,
probier mal, ob das das ist, was Du suchst:
- in "DieseArbeitsmappe" schreibst Du:
Option Explicit

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Dim wksStart As Worksheet
Set wksStart = Sh
Range("A1") = wksStart.Name
End Sub

Statt "A1" nimmst Du irgendeine Zelle gaaaaaanz weit hinten, die sicher in keinem Deiner Blätter gebraucht wird, z. B. "IV60000"
in ein Modul dann noch:
Option Explicit
Sub zurueck()
Dim wksName As String
wksName = Range("A1")
Worksheets(wksName).Activate
End Sub
auch hier musst Du "A1" gegen die Zelle Deiner Wahl austauschen. Für dieses Makro erstellst Du Dir dann einen Button auf Deiner Symbolleiste, damit kommst Du wieder zurück.
Grüße Franz
Anzeige
Danke
11.02.2007 17:54:02
Erich
Hallo Franz,
danke - das funktioniert soweit. Muss mir jetzt noch eine Lösung in der form suchen,
dass immer nur die Tabellen in die Zelle IV1 eingetragen werden, die sich
zwischen den Tabellen "Beginn" und "Ende" befinden. Ich habe einen Bereich
innerhalb der Datei mit vielen Tabellen; ein Teil davon befindet sich quasi zwischen
zwei Begrenzungen (Beginn/Ende) weil diese für bestimmte Berechnungen notwendig sind.
Falls Du da noch eine Idee hast - besten Dank!
mfg
Erich
Private Tippgemeinschaft für Lotto oder Keno: http://www.kenostrategen.de
Anzeige
AW: Zum letzten verwendeten Tabellenblatt
11.02.2007 21:58:22
Erich
Hallo zusammen,
das sollte so gehen:
in DieseArbeitsmappe:
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
If Sh.Index >= Sheets("Anfang").Index And Sh.Index <= Sheets("Ende").Index Then _
Range("IV1") = Sh.Name
End Sub
in ein allg. Modul:
Sub zurueck()
If Not IsEmpty(Range("IV1")) Then Sheets(Range("IV1").Value).Activate
End Sub
Dann steht in IV1 nichts oder der Name des letzten "zulässigen" Blatts, von dem aus gewechselt wurde.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
DANKE!
11.02.2007 22:06:43
Erich
Hallo Erich,
funktioniert perfekt!!
(wurde der Beitrag 1x geändert - wenn ja wie geht das?)
mfg
Erich
Private Tippgemeinschaft für Lotto oder Keno: http://www.kenostrategen.de
Anzeige
AW: neue Version
12.02.2007 08:40:27
Erich
Hi Erich,
danke für Deine Rückmeldung! Die Lösung hat aber noch einen heftigen Nachteil:
Alle Blätter werden "beschmutzt" durch den EIntrag in IV1.
Das bläht den verwendeteten Bereich und auch den Standard-Druckbereich unnötig auf.
Durch Nutzung einer Dokumenteigenschaft lässt sich das vermeiden.
Hier wird auch gleich die Funktionsleiste beim Öffnen erstellt und beim Schließén wieder gelöscht:
in DieseArbeitsmappe:
Option Explicit
'                                                     LetztesBlatt eintragen (wenn ...)
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
If Sh.Index >= Sheets("Anfang").Index And _
Sh.Index <= Sheets("Ende").Index Then _
ActiveWorkbook.CustomDocumentProperties("LetztesBlatt").Value = Sh.Name
End Sub
'                                                     Symbolleiste "myZurück" anlegen
Private Sub Workbook_Open()
Dim oBar As CommandBar, oBtn As CommandBarButton
On Error Resume Next
Application.CommandBars("myZurück").Delete
On Error GoTo 0
Set oBar = Application.CommandBars.Add("myZurück", msoBarTop, False, True)
Set oBtn = oBar.Controls.Add
With oBtn
.Caption = "Zurück"
.FaceId = 41            ' Pfeil nach links
.OnAction = "Zurueck"   ' Name des Makros
.Style = msoButtonIconAndCaption
End With
oBar.Visible = True
End Sub
'                                                     Symbolleiste "myZurück" löschen
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.CommandBars("myZurück").Delete
On Error GoTo 0
End Sub
<b>in ein allg. Modul:
Option Explicit
Sub Zurueck()                                ' Code zu Zurück-Button in Funktionsleiste
Sheets(ActiveWorkbook.CustomDocumentProperties("LetztesBlatt").Value).Activate
End Sub
Sub InitEigenschaft()
'                                                  Dateieigenschaft einrichten (einmalig!)
'  kann man auch per Hand machen:
'     Datei - Eigenschaften - Reiter "Anpassen"
'     Name: LetztesBlatt
'     Typ:  Text
'     Wert: Anfang
Dim prop As DocumentProperty, blnOK As Boolean
'                                          prüfen, ob Eigenschaft schon angelegt
For Each prop In ActiveWorkbook.CustomDocumentProperties
If prop.Name = "LetztesBlatt" Then blnOK = True
Next prop
If Not blnOK Then ActiveWorkbook.CustomDocumentProperties.Add Name:="LetztesBlatt", _
LinkToContent:=False, Type:=msoPropertyTypeString, Value:="Anfang"
End Sub
Zu deiner Frage in Klammern: Beiträge können ausschliesslich von Hans W. Herber editiert werden.
(Nochmal Danke an Hans dafür!)
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
Gigantisch!!
13.02.2007 06:06:03
Erich
Hallo Erich,
das ist SUPER!!
Geht noch was zur Kosmetik:
Wenn ich den zurück-Pfeil aktiviere, kann dann der Reiter (=Blattname) unten
ungefähr in der Mitte des Bildschirms erscheinen? Derzeit immer ganz links oder ganz
rechts.
Besten Dank!
mfg
Erich
Private Tippgemeinschaft für Lotto oder Keno: http://www.kenostrategen.de
AW: Scrollen in Blattregister
13.02.2007 09:51:15
Erich
Hi Erich,
auch das noch! ;-))
So super und gigantisch war das doch nicht - die Idee mit den Properties hatte Heide schon in
https://www.herber.de/forum/archiv/792to796/t792929.htm
gepostet.
Probier mal diese (bei stark unterschiedlich langen Blattnamen "suboptimale") Kurzlösung:
Sub Zurueck()                                ' Code zu Zurück-Button in Funktionsleiste
Dim intI As Integer
Const intAnz = 4     ' an die Länge der Blattnamen anpassen
Sheets(ActiveWorkbook.CustomDocumentProperties("LetztesBlatt").Value).Activate
intI = ActiveSheet.Index
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
If intI > intAnz Then ActiveWindow.ScrollWorkbookTabs Sheets:=intI - intAnz
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
Danke!
14.02.2007 06:28:00
Erich
Hallo Erich,
besten Dank! Da ich aus Übersichtsgründen kurze Blattnamen gewählt habe ist das
jetzt optimal!!
mfg
Erich
Private Tippgemeinschaft für Lotto oder Keno: http://www.kenostrategen.de

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige