Freigeben über

Private Sub Workbook_Open() - BUG

Anonym
2016-11-05T12:34:27+00:00

Habe eine Frage:

Wenn ich meine Excel Tabelle öffne, möchte ich, dass immer ein fest definiertes Datenblatt ausgegeben wird.

Dazu hab ich in "Diese Arbeitsmappe" folgenden Code eingegeben:

Private Sub Workbook_Open()

Sheets("Basisdaten").Activate

Range("F5").Select

End Sub

Leider ist nach dem Öffnen nie das gewünschte Datenblatt geöffnet worden.

Excel hat nie diesen Private Sub aufgerufen. Geprüft mit MsgBox.

Nach aufwendiger Suche habe ich das Problem gefunden.

Die Excel Tabelle enthält Verknüpfungen zu anderen Arbeitsmappen.

Ich hatte nun eingestellt, (Verknüpfung bearbeiten/Eingabeaufforderung beim Start) dass beim Öffnen keine Warnung angezeigt wird und die Verknüpfungen aktualisiert werden sollen.

Das hat Excel auch gemacht aber dabei den Workbook_Open Subnicht mehr aufgerufen.

Wenn ich jetzt "Keine Warnung anzeigen und Verknüpfung nicht aktualisieren" einstelle, wird der Code aus "Diese Arbeitsmappe" ausgeführt.

Was tun? Ich möchte dass beim Öffnen die Arbeitsmappe aktualisiert wird und das Datenblatt "Projektbeschreibung" geöffnet wird.

Gibt es hier einen Workaround??

LG MICA

Microsoft 365 und Office | Excel | Für Zuhause | Windows

Gesperrte Frage. Diese Frage wurde aus der Microsoft-Support-Community migriert. Sie können darüber abstimmen, ob sie hilfreich ist, aber Sie können keine Kommentare oder Antworten hinzufügen oder der Frage folgen.

0 Kommentare Keine Kommentare

11 Antworten

Sortieren nach: Am hilfreichsten
  1. Anonym
    2016-11-11T16:00:57+00:00

    Hallo Andreas,

    leider ist es nicht ganz so einfach.

    Die Tabelle hat 7 Datenblätter.

    Pro Datenblatt gibt es ca. 15 Verknüpfungen in 3 externen Exceltabellen.

    Diese externen Datentabellen liegen, so wie auch die Haupttabelle auf dem genannten webdav Ordner im Netz. Die externen Datentabellen können immer wieder andere Werte enthalten (Stammdaten).

    Deshalb kann ich deinen Vorschlag nicht einsetzen.

    Habe jetzt aber einen Workaround eingebaut.

    Ich öffne die Tabelle jetzt mit "Keine Warnung anzeigen und Verknüpfung nicht aktualisieren"

    Damit wird das Datenblatt "Basisdaten" geöffnet.

    Im Datenblatt "Basisdaten" kann ich jetzt ein Makro manuell starten mit dem ich die Daten aktualiseren kann**.**

    Ist zwar nicht das, was ich eigentlich wollte aber so kann ich das Problem etwas umschiffen.

    Dennoch danke, dass auch du dich dem Problem angenommen hast.

    LG Carsten

    Hallo Carsten,

    neben der netten Unterstützung von Claus und Andreas, kannst du auch Hilfe vom MSDN Forum bekommen. Diese ist unsere Support-Plattform für Entwickler, dort werden VBAs und Makros regelmäßig gehandelt.

    Liebe Grüße

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare
  2. Anonym
    2016-11-06T09:19:43+00:00

    Hallo Andreas,

    leider ist es nicht ganz so einfach.

    Die Tabelle hat 7 Datenblätter.

    Pro Datenblatt gibt es ca. 15 Verknüpfungen in 3 externen Exceltabellen.

    Diese externen Datentabellen liegen, so wie auch die Haupttabelle auf dem genannten webdav Ordner im Netz. Die externen Datentabellen können immer wieder andere Werte enthalten (Stammdaten).

    Deshalb kann ich deinen Vorschlag nicht einsetzen.

    Habe jetzt aber einen Workaround eingebaut.

    Ich öffne die Tabelle jetzt mit "Keine Warnung anzeigen und Verknüpfung nicht aktualisieren"

    Damit wird das Datenblatt "Basisdaten" geöffnet.

    Im Datenblatt "Basisdaten" kann ich jetzt ein Makro manuell starten mit dem ich die Daten aktualiseren kann**.**

    Ist zwar nicht das, was ich eigentlich wollte aber so kann ich das Problem etwas umschiffen.

    Dennoch danke, dass auch du dich dem Problem angenommen hast.

    LG Carsten

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare
  3. Andreas Killer 144.1K Zuverlässigkeitspunkte Freiwilliger Moderator
    2016-11-06T07:15:34+00:00

    Somit gibt es wahrscheinlich keine Lösung für diesen BUG.

    Eigenlich schade oder fällt dir da nochwas ein??

    Der Bug ist in Deinem Kopf. ;-)

    Wo liegt das Problem vor dem Speichern das Blatt und die Zelle anzuwählen?

    Dann ist dieses auch direkt beim Öffnen da... ganz ohne Code.

    Andreas.

    Option Explicit

    Dim LastSheet As Object

    Dim LastCell As Range

    Private Sub Workbook_AfterSave(ByVal Success As Boolean)

      Application.ScreenUpdating = False

      If Not LastSheet Is Nothing Then LastSheet.Select

      If Not LastCell Is Nothing Then LastCell.Select

    End Sub

    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

      Application.ScreenUpdating = False

      Set LastSheet = ActiveSheet

      Set LastCell = ActiveCell

      Sheets("Basisdaten").Select

      Range("F5").Select

    End Sub

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare
  4. Anonym
    2016-11-05T16:06:44+00:00

    Sollte eigentlich korrekt sein:

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare
  5. Anonym
    2016-11-05T15:59:27+00:00

    Hallo Claus,

    habe das Problem noch etwas genauer untersucht.

    Die Quelle des Übels ist offensichtlich mein "wedav" Ordner.

    Die Daten liegen auf (Beispiel) 

    Basistabelle:

    https://meine-daten.de/remote.php/webdav/test-open.xlsx]

    Verknüpfungstabelle:

    https://meine-daten.de/remote.php/webdav/test-webdav.xlsx]

    In der Tabelle test-webdav stehen die zu verknüpfenden Daten.

    Mit der Excel Tabelle test-open möchte ich drauf zugreifen.

    Nur wenn ich beim Start nicht aktualisiere wird Sub Workbook_Openabgearbeitet*.*

    Somit gibt es wahrscheinlich keine Lösung für diesen BUG.

    Eigenlich schade oder fällt dir da nochwas ein??

    LG Carsten

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare