236 Aufrufe
Gefragt in Tabellenkalkulation von Einsteiger_in (12 Punkte)
Ich versuche in Excel VBA  mittels des Dateiformats bestimmte Arbeitsblätter beim Start der Datei aufzurufen.

Dabei handelt es sich zum einen um eine makrovorlagedatei (xltm) und zum anderen um eine makrodatei (xlsm).

Der Code sollte entsprechend des file.formats bestimmte Aktionen ausführen, z.B. ein bestimmtes Arbeitsblatt öffnen.

Vielen Dank im voraus.

4 Antworten

+1 Punkt
Beantwortet von m-o Profi (22.8k Punkte)

Hallo Roland,

wenn beim Öffnen einer Arbeitsmappe in bestimmtes Arbeitsblatt aufgerufen werden soll, dann musst du das in der betreffenden Arbeitsmappe über das Workbook-Open-Ereignis machen.

Beispiel:

Private Sub Workbook_Open()

Worksheets("Arbeitsblatt").Activate

End Sub


Dieser Code ist in das VBA-Projekt der entsprechenden Arbeitsmappe zu kopieren. In diesem Beispiel wird z.B. beim Öffnen der Mappe die Tabelle mit dem Namen "Arbeitsblatt" aktiviert.

Gruß

M.O.

0 Punkte
Beantwortet von Einsteiger_in (12 Punkte)

Hallo M.O.

vielen Dank für deine Antwort.

Diesen Code kenne ich. Aber ich möchte halt gern mittels des datei formats ein betimmtes arbeitsblatt aufrufen.

z.b.:

 If ThisWorkbook.FileFormat = xlOpenXMLTemplateMacroEnabled Then

Worksheets("Arbeitsblatt").Activate
else
Worksheets("Arbeitsblatt").Activate
end if
Aber es funktioniert leider nicht. VBA springt immer zu Else,ob ich "=" der"<>" eintrage.
Roland
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)

Hallo Roland,

schreibe doch einfach mal folgenden Code in die entsprechenden Dateien wink:

Private Sub Workbook_Open()

MsgBox ThisWorkbook.FileFormat

End Sub

Bei einem gespeicherten Workbook im .xlsm - Format wirst du dann die 52 sehen.

Also würde dein Code so aussehen:

Private Sub Workbook_Open()

If ThisWorkbook.FileFormat = 52 Then Worksheets("Arbeitsblatt").Activate

End Sub

Wenn du deine Excel-Vorlagendatei als Vorlage öffnest (also nicht eine neue Datei aus der Vorlage erzeugst), musst du das FileFormat = 53 setzen. Wird aus der Vorlage eine neue Datei erstellt, dann bist du wieder beim Fileformat 52.

Also probiere mal den folgenden Code:

Private Sub Workbook_Open()

If ThisWorkbook.FileFormat = 53 Then
   Worksheets("Tabelle1").Activate
  Else
   Worksheets("Tabelle2").Activate
End If

End Sub

Gruß

M.O.

0 Punkte
Beantwortet von Einsteiger_in (12 Punkte)
Bearbeitet von

Hallo M.O.

Danke für die schnelle Antwort.

Leider konnte ich das Problem nicht lösen. Und ich glaube den Grund dafür zu kennen.

Egal ob ich eine Datei als VorlageMakrodatei oder normale Makrodatei öffne, das Ergebnis mit

MsgBox ThisWorkbook.FileFormat 

ist IMMER 52 !

Deshalb ist die if-else prozedur nicht hilfreich.

Ich muß mir wohl etwas anderes einfallen lassen müssen, z.B. die Dateinamen, da diese unterschiedlich sind. Die Vorlagedatei hat immer den gleichen Namen!

Vielen Dank erstmal für Deine Hilfe.

Roland

...