Registriert seit: 24.09.2015
Version(en): 2010
Hi Zusammen,
ich hab hier im Inet einen Code gefunden:
Code:
Sub NeuesSheet()
02.
'** Neues benanntes Tabellenblatt einfügen
03.
'** einfügen als letztes Blatt
04.
05.
'** Dimensionierung der Variablen
06.
Dim blatt As Object
07.
Dim BlattName As String
08.
Dim bloFlg As Boolean
09.
10.
'** Blattname festlegen
11.
BlattName = "Neues Blatt"
12.
13.
'** Prüfen, ob das Blatt, welches eingefügt werden soll bereits vorhanden ist
14.
'** Nur einfügen, wenn Blatt noch nicht vorhanden ist
15.
For Each blatt In Sheets
16.
If blatt.Name = BlattName Then bolflg = True
17.
Next blatt
18.
19.
'** Blatt nur einfügen, wenn noch nicht vorhanden
20.
If bolflg = False Then
21.
With ThisWorkbook
22.
.Sheets.Add after:=Sheets(Worksheets.Count)
23.
.ActiveSheet.Name = "Neues Blatt"
24.
End With
25.
End If
26.
27.
End Sub
Wie kann ich diesen Code so abändern - das :
er neues Sheet bei Klick auf eine Zelle im Bereichen von C:C erstellt
er den namen der Zelle als beschriftung des Sheets übernimmt?
Gruß
Sascha
Registriert seit: 24.10.2015
Version(en): 2010
Hallo alti89,
mit einfachem Klick geht es nicht. Der nachfolgende Code setzt einen Doppelklick auf die Zelle voraus, man könnte es noch auf das andere mögliche Ereignis (BeforeRightClick) umbauen, würde ich aber nicht empfehlen.
Im Code sind zwei Möglichkeiten für den Blattnamen vorhanden:
1. aus Zellinhalt (auskommentiert)
2. aus Namen der Zelle (ist aktiv).
Der Code gehört in den Codeteil des entsprechenden Blattes.
Gruß der AlteDresdner
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 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(Worksheets.Count)
.ActiveSheet.Name = BlattName
End With
End If
End If
Cancel = True 'eigentliches Doppelklick-Ergebnis canceln
End If
End Sub
Gruß der AlteDresdner (Win11, Off2021)
Registriert seit: 24.09.2015
Version(en): 2010
Perfekt vielen Dank.
Funktioniert 1 a
Registriert seit: 24.09.2015
Version(en): 2010
ok gleich noch eine Frage hinterher ..
gibt es die möglichkeit das erstellte Sheet "vor" zu Formatieren?
Registriert seit: 24.10.2015
Version(en): 2010
(28.10.2015, 16:42)alti89 schrieb: ok gleich noch eine Frage hinterher ..
gibt es die möglichkeit das erstellte Sheet "vor" zu Formatieren?
Aber ja, mit .Sheets.Add before:=Sheets(1) wird es dann vor dem 1. Blatt eingefügt.
Kreigt man auch raus, wenn man mal Add markiert und die Taste F1 drückt, da sind die möglichen Parameter und Optionen in der Hilfe sichtbar.
Soll keine Kritik zur Frage, sondern eine Anregung sein!
Gruß der ALteDresdner
Gruß der AlteDresdner (Win11, Off2021)
Registriert seit: 10.04.2014
Version(en): Office 2007, 2016, Win 10 64 bit
Hi,
ich denke seine Frage war, das neue Sheet mit bestimmten Formatierungen zu versehen beim Erstellen und Einfügen.
Mit freundlichen Grüßen :)
Michael
Registriert seit: 11.04.2014
Version(en): '97 bis 2016; 365
Hallo Michael,
Zitat:ich denke seine Frage war, das neue Sheet mit bestimmten Formatierungen zu versehen beim Erstellen und Einfügen.
... dann wäre es ja eine relativ einfache Geschichte.
Ein Blatt als Vorlage einrichten, es bei Bedarf kopieren und letztendlich umbenennen ... feddisch
Registriert seit: 24.09.2015
Version(en): 2010
ja ::D das war mein Gedanke dahinter, das z.B das neue Sheet schon eine Tabelle enthält. ?
wenn ja wie kann ich das denn machen ? :)
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
das funktioniert im Prinzip genau so.
Sheets.Add erzeugt ein neues Blatt
Sheets(...).Copy kopiert eines. Dan genauen Code kannst Du z.B. durch Aufzeichnen ermitteln.
. \\\|/// 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
okay,
leider kenn ich micht nich so ( oder noch nicht so gut ) in VBA aus,
kann ich diese makro einfach die Formatierung rein nehmen, in dem ich ein Blatt erstell und das erstellen aufnehme mit diesem Makro rekorder ?
sorry bin was das angeht ziemlicher anfänger