Registriert seit: 10.04.2014
Version(en): Office 2007, 2016, Win 10 64 bit
Hi,
erzeuge eine neue Tabelle mit deinen Formatierungen und speicher die als Musterdatei ab.
Dann kannst du im Makro das du ja hast, statt der Sheets.Add den Befehl Sheets.Copy verwenden.
Code:
Sheets.Add after:=Sheets(Sheets.Count), Type:="G:\Temp\Formatmuster.xlsx"
Den Namen und Pfad zur Musterdatei mußt du natürlich im Code anpassen.
Dabei ist die Datei Formatmuster.xlsx die Datei mit der formatierten Vorlagetabelle. Das Makro wird in der Datei eingefügt, wo das neue Sheet einzufügen ist und die Musterdatei muß dabei nicht geöffnet sein. Danach benennt du das neue Sheet entsprechend um.
Mit freundlichen Grüßen :)
Michael
Registriert seit: 24.10.2015
Version(en): 2010
Hallo alti89,
don't worry, alle haben mal angefangen!
Also: in Datei Blatt Temp erzeugen, so formatieren, wie Du das haben willst, anschließend ausblenden (auf den Blattnamen Rechtsklick und Ausblenden).
Der leicht geänderte Code ist dann:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim blatt As Object '** Dimensionierung der Variablen
Dim BlattName As String
Dim bolFlg As Boolean
If Target.Column = 3 Then 'DBlClick Spalte C
'neuer Blattname aus Zellinhalt
'BlattName = Target.Text 'Inhalt der Zelle
'neuer Blattname aus Name der Zelle
On Error Resume Next 'falls Zelle keinen Namen hat
BlattName = Target.Name.Name 'Name der Zelle
If Not Err And BlattName <> "" Then 'keine leere Zelle, Name vorhanden
'** Prüfen, ob das Blatt, welches eingefügt werden soll bereits vorhanden ist
bolFlg = False
For Each blatt In Sheets
If blatt.Name = BlattName Then bolFlg = True
Next blatt
If Not bolFlg Then '** Blatt nur einfügen, wenn noch nicht vorhanden
With ThisWorkbook
.Sheets("Temp").Visible = True 'Einblenden
.Sheets("Temp").Copy after:=Sheets(Worksheets.Count)'Blatt kopieren
.ActiveSheet.Name = BlattName' umbenennen
.Sheets("Temp").Visible = False' wieder ausblenden
End With
End If
End If
Cancel = True 'eigentliches Doppelklick-Ergebnis canceln
End If
End Sub
Gruß der AlteDresdner
Gruß der AlteDresdner (Win11, Off2021)
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
hier ist dann noch mal die Stelle aus dem Code vom Dresdner
.Sheets.Add after:=Sheets(Worksheets.Count)
Den ersetzt Du durch
.Sheets("MeinMusterSheet").Copy after:=Sheets(Worksheets.Count)
Wenn Dein Blatt mit der Tabelle nicht "MeinMusterSheet" heißt, dann musst Du das im Code entsprechend anpassen.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 24.09.2015
Version(en): 2010
Das Probier ich nachher gleich aus !
vielen Dank schonmal , werde über erfolg oder misserfolg berichten :D
Registriert seit: 24.09.2015
Version(en): 2010
Hey,
also so ganz komm ich nicht zurecht :(
nun Funktioniert mein Code gar nicht mehr :(
hab ihn so angepasst
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim blatt As Object '** Dimensionierung der Variablen
Dim BlattName As String
Dim bolFlg As Boolean
If Target.Column = 2 Then 'DBlClick Spalte C
'neuer Blattname aus Zellinhalt
BlattName = Target.Text 'Inhalt der Zelle
'neuer Blattname aus Name der Zelle
On Error Resume Next 'falls Zelle keinen Namen hat
'BlattName = Target.Name.Name 'Name der Zelle
If Not Err Or BlattName <> "" Then 'keine leere Zelle
'** Prüfen, ob das Blatt, welches eingefügt werden soll bereits vorhanden ist
bolFlg = False
For Each blatt In Sheets
If blatt.Name = BlattName Then bolFlg = True
Next blatt
If Not bolFlg Then '** Blatt nur einfügen, wenn noch nicht vorhanden
With ThisWorkbook
.Sheets.Add after:=Sheets(Sheets.Count), Type:="C:\Users\sascha.altmann\AppData\Roaming\Microsoft\Templates\Test.xltx"
.ActiveSheet.Name = BlattName
End With
End If
End If
Cancel = True 'eigentliches Doppelklick-Ergebnis canceln
End If
End Sub
Registriert seit: 24.10.2015
Version(en): 2010
[quote pid='26606' dateline='1446460024']
Hallo alti89,
was heißt: nun funktioniert er gar nicht mehr?
Was geht nicht, in welcher Codezeile tritt welcher Fehler auf?
Eigentlich sollte es funtkionieren, wenn die Vorlage da ist.
Gruß der ALteDresdner
[/quote]
Gruß der AlteDresdner (Win11, Off2021)
Registriert seit: 24.09.2015
Version(en): 2010
Hey,
also es kommt kein Fehler, er hüpft nur immer in das Letzte Tabellenblatt
das wars dann auch schon
Registriert seit: 10.04.2014
Version(en): 2016 + 365
Hi Sascha,
(02.11.2015, 11:27)alti89 schrieb: also so ganz komm ich nicht zurecht :(
nun Funktioniert mein Code gar nicht mehr :(
hab ihn so angepasst
Code:
If Target.Column = 2 Then 'DBlClick Spalte C
'neuer Blattname aus Zellinhalt
BlattName = Target.Text 'Inhalt der Zelle
klickst Du in Spalte 2 (B) oder 3 ©?
Registriert seit: 24.09.2015
Version(en): 2010
Registriert seit: 10.04.2014
Version(en): 2016 + 365
02.11.2015, 11:52
(Dieser Beitrag wurde zuletzt bearbeitet: 02.11.2015, 11:57 von Rabe.)
Hi Sascha,
(02.11.2015, 11:48)alti89 schrieb: 2(B) :)
wenn die Datei vorhanden ist und ich in die richtige Spalte doppelklicke, funktioniert das Makro bei mir, das Musterarbeitsblatt wird eingefügt und umbenannt!
Hast Du das Makro im Code-Modul des doppelzuklickenden Tabellenblattes?