Clever-Excel-Forum

Normale Version: VBA - Neues Sheet erzeugen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5 6 7
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.
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
Hallöchen,

hier ist dann noch mal die Stelle aus dem Code vom Dresdner Smile

.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.
Das Probier ich nachher gleich aus !

vielen Dank schonmal , werde über erfolg oder misserfolg berichten :D
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
[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]
Hey,

also es kommt kein Fehler, er hüpft nur immer in das Letzte Tabellenblatt
das wars dann auch schon Huh
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 ©?
2(B) :)
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?
Seiten: 1 2 3 4 5 6 7