Supportnet / Forum / Tabellenkalkulation
Datei-Eigenschaften Excel mittels Formular abfragen
Frage
Hallo...
Ich würde gerne mit Hilfe eines Makros beim Start von Excel (bzw. beim Starten der entsprechenden Vorlage) ein Formular starten, damit der User die Datei-Eigenschaften (Autor, Titel, Thema etc.) benutzerfreundlich über dieses Formular eintragen kann. Die eingetragenen Daten sollen dann also in den Datei-Eigenschaften gespeichert werden.
Geht das?
Danke im Voraus für eure Hilfe!
Antwort 1 von coros
Hallo hippokrates,
nachfolgend ein VBA Code, bei dem beim Öffnen der Datei die Daten für die Eigenschaften in InputBoxen eingetragen werden können. Besser wäre es sicherlich so etwas über eine UserForm zu realisieren, da man dann eine Maske hätte, in der man alles auf einmal eingeben könnte. Aber eventuell reicht Dir die Lösung ja schon
Kopiere den Code in das VBA Projekt „DieseArbeitsmappe“.
Ich hoffe, Du kommst klar. Bei Fragen melde Dich bitte.
Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 1 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
nachfolgend ein VBA Code, bei dem beim Öffnen der Datei die Daten für die Eigenschaften in InputBoxen eingetragen werden können. Besser wäre es sicherlich so etwas über eine UserForm zu realisieren, da man dann eine Maske hätte, in der man alles auf einmal eingeben könnte. Aber eventuell reicht Dir die Lösung ja schon
Kopiere den Code in das VBA Projekt „DieseArbeitsmappe“.
Option Explicit
Private Sub Workbook_Open()
On Error Resume Next
ActiveWorkbook.BuiltinDocumentProperties("Title") = InputBox("Titel eingeben", "Titel...")
ActiveWorkbook.BuiltinDocumentProperties("Subject") = InputBox("Thema eingeben", "Thema...")
ActiveWorkbook.BuiltinDocumentProperties("Author") = InputBox("Autor eingeben", "Autor...")
ActiveWorkbook.BuiltinDocumentProperties("Manager") = InputBox("Manager eingeben", "Manager...")
ActiveWorkbook.BuiltinDocumentProperties("Company") = InputBox("Firma eingeben", "Firma...")
ActiveWorkbook.BuiltinDocumentProperties("Category") = InputBox("Kategorie eingeben", "Kategorie...")
ActiveWorkbook.BuiltinDocumentProperties("Keywords") = InputBox("Strichwörter eingeben", "Stichwörter...")
ActiveWorkbook.BuiltinDocumentProperties("Comments") = InputBox("Kommentare eingeben", "Kommentare...")
End Sub
Ich hoffe, Du kommst klar. Bei Fragen melde Dich bitte.
Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 1 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 2 von hippokrates
Vielen Dank für die schnell Antwort.
Ich hab´s mittlerweile etwas anders gelöst, ich rufe beim Starten von Excel einfach das Eigenschaften-Fenster auf, dann kann alles eingegeben werden:
Private Sub Workbook_Open()
Dim dlg As Dialog
Dim result As Boolean
Set dlg = Application.Dialogs(xlDialogProperties)
result = dlg.Show
End Sub
Dein Vorschlag würde natürlich auch funktionieren, eigentlich habe ich genau danach gefragt. Also vielen Dank für deine Antwort. Ich bin von diesem Forum und von deinen schnellen Antworten echt beeindruckt...
LG
Ich hab´s mittlerweile etwas anders gelöst, ich rufe beim Starten von Excel einfach das Eigenschaften-Fenster auf, dann kann alles eingegeben werden:
Private Sub Workbook_Open()
Dim dlg As Dialog
Dim result As Boolean
Set dlg = Application.Dialogs(xlDialogProperties)
result = dlg.Show
End Sub
Dein Vorschlag würde natürlich auch funktionieren, eigentlich habe ich genau danach gefragt. Also vielen Dank für deine Antwort. Ich bin von diesem Forum und von deinen schnellen Antworten echt beeindruckt...
LG
Antwort 3 von hippokrates
Hätte dazu doch noch eine Frage: das Auto-Makro funktioniert jetzt eigenlich wunderbar. Es gibt nur einen kleinen Schönheitsfehler: Wenn man in Excel auf Datei - Neu und dann recht auf "Leere Arbeitsmappe" klickt, dann wird nicht meine eigene Vorlage geöffnet, sondern tatsächlich eine LEERE Vorlage, ohne Makros usw.
Kann man das vielleicht noch irgendwie ändern, sodass beim Klicken auf "Leere Arbeitsmappe" auch meine eigene Vorlage "Mappe.xlt" geladen wird?
Danke...
Kann man das vielleicht noch irgendwie ändern, sodass beim Klicken auf "Leere Arbeitsmappe" auch meine eigene Vorlage "Mappe.xlt" geladen wird?
Danke...
Antwort 4 von coros
Hallo hippokrates ,
eventuell habe ich ja jetzt auf Grund der Hitze ein Brett vorm Kopf, aber ich glaube das kann man nirgends vorgeben. Excel öffnet immer beim Betätigen eine Leere Arbeitsmappe.
Man könnte da etwas mit VBA nachhelfen. Du müsstest dazu eine Personl.xls- Datei mit Excel erstellen. Wie man das macht habe ich auf meiner Homepage unter Anleitungen beschrieben. In diese Personl.xls müsste nun etwas integriert werden, das die Schaltflächen "Neu..." deaktiviert. Das bekommt man mit folgenden Befehlszeilen hin:
Diese Zeilen gehören in das VBA Projekt "DieseArbeitsmappe" der Personl.xls und dort in das Workbook_Open - Ereignis. Sie bewirken, dass beide Neu- Schaltflächen beim Starten deaktiviert werden. Dann musst Du mittels Makro eine Neue Symbolleiste erstellen lassen, die eine Schaltfläche enthält, mit der man Deine Vorlage öffnen kann. Den Aufruf der Symbolleiste muss ebenfalls in das Workbook_Open - Ereignis der Personl.xls.
In das Workbook_BeforeClose - Ereignis der Personl.xls muss dann zum einen der Befehl zum Löschen der Symbolleiste und die Befehlszeilen
Diese bewirken, dass die Schaltflächen "Neu" beim Beenden wieder frei gegeben werden, da deise sonst dauerhaft deaktiviert bleiben.
Wenn Du dann die Personl.xls wie auf meiner Homepage beschrieben speicherst, wird bei jedem Öffnen von Excel die Schaltflächen deaktiviert, die neue Symbolleiste erstellt und man kann dann immer nur als leere Arbeitsmappe Deine Vorlage aufrufen.
Ich hoffe, Du kommst klar. Bei Fragen melde Dich bitte.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
eventuell habe ich ja jetzt auf Grund der Hitze ein Brett vorm Kopf, aber ich glaube das kann man nirgends vorgeben. Excel öffnet immer beim Betätigen eine Leere Arbeitsmappe.
Man könnte da etwas mit VBA nachhelfen. Du müsstest dazu eine Personl.xls- Datei mit Excel erstellen. Wie man das macht habe ich auf meiner Homepage unter Anleitungen beschrieben. In diese Personl.xls müsste nun etwas integriert werden, das die Schaltflächen "Neu..." deaktiviert. Das bekommt man mit folgenden Befehlszeilen hin:
With Application
.CommandBars("Worksheet Menu Bar").Controls("Datei").Controls("Neu...").Enabled = False
.CommandBars("Standard").Controls("Neu").Enabled = False
End WithDiese Zeilen gehören in das VBA Projekt "DieseArbeitsmappe" der Personl.xls und dort in das Workbook_Open - Ereignis. Sie bewirken, dass beide Neu- Schaltflächen beim Starten deaktiviert werden. Dann musst Du mittels Makro eine Neue Symbolleiste erstellen lassen, die eine Schaltfläche enthält, mit der man Deine Vorlage öffnen kann. Den Aufruf der Symbolleiste muss ebenfalls in das Workbook_Open - Ereignis der Personl.xls.
In das Workbook_BeforeClose - Ereignis der Personl.xls muss dann zum einen der Befehl zum Löschen der Symbolleiste und die Befehlszeilen
With Application
.CommandBars("Worksheet Menu Bar").Controls("Datei").Controls("Neu...").Enabled = True
.CommandBars("Standard").Controls("Neu").Enabled = True
End WithDiese bewirken, dass die Schaltflächen "Neu" beim Beenden wieder frei gegeben werden, da deise sonst dauerhaft deaktiviert bleiben.
Wenn Du dann die Personl.xls wie auf meiner Homepage beschrieben speicherst, wird bei jedem Öffnen von Excel die Schaltflächen deaktiviert, die neue Symbolleiste erstellt und man kann dann immer nur als leere Arbeitsmappe Deine Vorlage aufrufen.
Ich hoffe, Du kommst klar. Bei Fragen melde Dich bitte.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

