Vorlage für neue Tabellenblätter festlegen (für eine Mappe) - Excel 2010
Hallo!
nachdem mir schon hervorragend geholfen wurde, hier noch ein Anliegen, das mir enorm weiterhelfen würde:
In einer Arbeitsmappe (ich nenn sie mal A.xls) eine Vorlage für alle neuen Tabellenblätter festlegen.
Wichtig: Ich möchte NICHT für alle Arbeitsmappen, also für "ganz Excel" dieses Format festlegen, sondern nur innerhalb des einen Dokuments!
Herzlichen Dank im Voraus!
Julian
nachdem mir schon hervorragend geholfen wurde, hier noch ein Anliegen, das mir enorm weiterhelfen würde:
In einer Arbeitsmappe (ich nenn sie mal A.xls) eine Vorlage für alle neuen Tabellenblätter festlegen.
Wichtig: Ich möchte NICHT für alle Arbeitsmappen, also für "ganz Excel" dieses Format festlegen, sondern nur innerhalb des einen Dokuments!
Herzlichen Dank im Voraus!
Julian
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 519930
Url: https://administrator.de/contentid/519930
Ausgedruckt am: 22.11.2024 um 20:11 Uhr
12 Kommentare
Neuester Kommentar
Dafür gibt's in VBA das Event "NewSheet" damit kannst du darauf reagieren.
https://docs.microsoft.com/sl-si/office/vba/api/excel.workbook.newsheet
https://docs.microsoft.com/sl-si/office/vba/api/excel.workbook.newsheet
Vorlage-Sheet erstellen, es als "versteckt" kennzeichnen, dann im Event das "sh" Object löschen und anschließend das Template-Sheet kopieren, das Visible-Attribut des neuen Sheets auf True setzen, fertsch.
Zitat von @Assistenz:
Wäre es eine Option, mir kurz einen Hinweis zu geben, wo ich das "verstekct"-Attribut setze
Rechtsklick auf das Sheet => AusblendenWäre es eine Option, mir kurz einen Hinweis zu geben, wo ich das "verstekct"-Attribut setze
(und später auf "true" setze), wie ivh das "Event" erstelle? Das Sheet habe ich fertig erstellt und auch als template im selbigen Ordner abgelegt.
Wie schon gesagt Visible Eigenschaft des Sheets auf True setzenhttps://docs.microsoft.com/de-de/office/vba/api/excel.worksheet.visible
Template kommt dann ins selbe Sheet nicht in ne extra Mappe.
Danke für die EInführungs-Links! Leider ist aktuell überhaupt keine Zeit auf Arbeit, um das zu lernen.
Dann eben nach der Arbeit. Von nix kütt nix. Wenn du es fix und fertig haben willst => PNViel Erfolg.
Ciao.
Servus Julian,
hier eine Beispielmappe für dein Vorhaben
new_sheet_template_519930.xlsm
Grüße Uwe
hier eine Beispielmappe für dein Vorhaben
new_sheet_template_519930.xlsm
Private Sub Workbook_NewSheet(ByVal Sh As Object)
On Error Resume Next
'Objekte definieren
Set regex = CreateObject("vbscript.regexp")
' Regex Pattern für Nummern am Ende vom Arbeitsblattnamen
regex.Pattern = "\d+$"
With Application
' Deaktiviere temporär Events und Alerts
.EnableEvents = False
.DisplayAlerts = False
' Lösche das Standard-Sheet von Excel (Wir haben ja unser eigenes
Sh.Delete
' Kopiere das "ausgeblendete" Template ans Ende aller Arbeitsblätter
Sheets("Template").Copy After:=Sheets(Sheets.Count)
With Sheets(Sheets.Count - 1)
' Suche die Nummer im Namen des vorherigen Sheets
Set matches = regex.Execute(Sheets(.Index - 1).Name)
' Gibt es eine benenne das neue Arbeitsblatt "TabelleX" wobei X eine Nummer größer ist als die Nummer des vorherigen
If matches.Count > 0 Then
If IsNumeric(matches(0)) Then
.Name = "Tabelle" & (CInt(matches(0)) + 1)
End If
End If
' Mache das Sheet sichtbar und aktivere es
.Visible = True
.Activate
End With
' Aktiviere temporär Events und Alerts
.EnableEvents = True
.DisplayAlerts = True
End With
'Cleanup
Set regex = Nothing
End Sub
Grüße Uwe
Zitat von @Assistenz:
Hallo.
Danke für den Vorschlag!
Die Lösung mit versteckten Tabellenblättern ist leider keine Option für uns...
Hi, du scheinst das misszuverstehen. Es gibt nur ein einziges verstecktes Template-Sheet das als Vorlage dient, davon wird beim Klick auf den Button zum Erstellen eines neuen Sheets (NewSheet Event) automatisch eine Kopie erstellt.Hallo.
Danke für den Vorschlag!
Die Lösung mit versteckten Tabellenblättern ist leider keine Option für uns...
Eine Variante, das Template für neue Blätter als Standard zu setzen nur innerhalb dieses Dokuments gibt es nicht?
Das ist es doch , schaus dir einfach an. Das Skript läuft automatisch sobald der User neue Arbeistblätter erstellt, diese basieren automatisch auf dem versteckten Template Sheet, bzw. sind Kopien davon und nur in dieser Arbeitsmappe, also genau das was dir vorschwebt.