Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA - Neues Sheet erzeugen
#1
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
Antworten Top
#2
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)
Antworten Top
#3
Heart 

Perfekt vielen Dank.
Funktioniert 1 a
Antworten Top
#4
ok gleich noch eine Frage hinterher ..

gibt es die möglichkeit das erstellte Sheet "vor" zu Formatieren?
Antworten Top
#5
(28.10.2015, 15: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)
Antworten Top
#6
Hi,

ich denke seine Frage war, das neue Sheet mit bestimmten Formatierungen zu versehen beim Erstellen und Einfügen.
Mit freundlichen Grüßen  :)
Michael
Antworten Top
#7
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
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#8
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 ? :)
Antworten Top
#9
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)
Antworten Top
#10
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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste