Clever-Excel-Forum

Normale Version: VBA - Best. Tabellenblatt öffnen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hi Leute,

ich benötige noch einmal eure Hilfe. Ich habe in Zelle L1 ein Dropdown der vorhandenen Kalenderwochen in Form von "1.KW-31.12.2018". Zusätzlich habe ich 52 Tabellenblätter "1" bis "52".

Ich benötige nun ein Makro, welches das entsprechende Tabellenblatt öffnet, wenn im Dropdown eine Veränderung durchgeführt wird. Bislang bin ich so weit:
Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)

   If Target.Address = "$L$1" Then
       Application.EnableEvents = False
       Application.Undo
           ThisWorkbook.Sheets("???").Activate
       Application.EnableEvents = True
   End If

End Sub


Das erste Problem ist das Format in L1 (welches ich nicht ändern möchte). Das zweite Problem ist, dass das Makro wissen muss, welchen Eintrag ich im Dropdown ausgewählt habe....

Kann mir da wer helfen?


Gruß und Danke :)
Hallo,

warum denkst du über die Vorschläge, die du hier bekommst, nicht nach? Die Aufteilung auf einzelne Kalenderwochen macht, wie du siehst, zusätzliche Probleme, die man vermeiden kann.
Hallo Klaus-Dieter,

natürlich denke ich über die Vorschläge nach. Problem ist jedoch, dass der Aufbau so vorgegeben ist. Ich habe nur die Möglichkeit, ihn ein wenig komfortabler zu machen und das versuche ich hier mit eurer Hilfe.
Hallo,

du hast doch die mindesten 52 Tabellenblattreiter. Warum willst du die nicht benutzen? Komfortabler geht es gar nicht.
Hi,

wozu du den Teil mit Application.Undo brauchst weiss ich nicht. Aber dann so z.B.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim n As String

  If Target.Address = "$L$1" Then
      n = Replace(Mid(Target.Value, 1, 2), ".", "")
      Application.EnableEvents = False
      Application.Undo
      Application.EnableEvents = True
      Sheets(n).Activate
  End If

End Sub

oder einfach nur öffnen.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)

  If Target.Address = "$L$1" Then
      Sheets(Replace(Mid(Target.Value, 1, 2), ".", "")).Activate
  End If

End Sub

Gruß Elex
(15.12.2018, 11:29)Elex schrieb: [ -> ]wozu du den Teil mit Application.Undo brauchst weiss ich nicht. ...

bei dieser Salamitaktik wird´s schon mal unübersichtlich: https://www.clever-excel-forum.de/thread...#pid143255

Gruß Uwe
@ Kuwer
aufgrund einer anderen Problematik mit der Datei musste ich umstellen von 52 Excel-Dateien auf 52 Blätter innerhalb einer Mappe - deswegen die erneute Frage. Ist mein jetziger Ansatz noch schlimmer oder wie darf ich das verstehen?

@Klaus-Dieter
Natürlich kann man die Blätter unten nutzen, ich finde das Selektieren in einem Dropdown allerdings komfortabler als das Scrollen nach rechts und links, bis man das gewünschte Blatt gefunden hat. Als nächsten Schritt könnte man einbauen, dass er nur das Blatt einblendet, welches man geöffnet hat. Das schafft noch mehr Übersicht und man kann auch die Blätter finden, in denen man Einstellungen vornehmen kann.

@Elex
Leider funktionieren beide Codes nicht ... woran kann das liegen?


Wenn ihr eine bessere Idee habt, wie ich eine Art Index für die 52 Blätter basteln könnte, wäre ich natürlich sehr zufrieden.
(15.12.2018, 11:08)EasY schrieb: [ -> ]Hi Leute,
...
Zusätzlich habe ich 52 Tabellenblätter "1" bis "52".
....

Hallo, ich glaube ich habe dich schon mal gefragt: Warum 52 Tabellenblätter?
Hallo Jockel,

er findet es komfortabler.
@Jockel

Für jede Kalenderwoche ein Blatt , welches nach dem Befüllen als pdf abgespeichert und ausgedruckt werden soll... den Aufbau der Datei kann ich leider nicht ändern.
Seiten: 1 2