Microsoft Excel

Herbers Excel/VBA-Archiv

Neues Tabellenblatt auf Tastendruck anlegen | Herbers Excel-Forum


Betrifft: Neues Tabellenblatt auf Tastendruck anlegen von: Torsten
Geschrieben am: 11.01.2010 12:24:47

Hallo zusammen,
ich würde geren folgendes machen: und zwar auf Tastendruck soll ein neues Blatt angelegt werden, welches mit einer fortlaufenden Nummer benannt werden soll.
Gleichzeitig soll diese Nummer und gewisse Zellen mit Werten bzw. Texten gefüllt werden. Diese könnten am einfachsten von einer Vorlagetabelle kopiert werden.
Ist dieses möglich?

  

Betrifft: AW: Neues Tabellenblatt auf Tastendruck anlegen von: Klaus M.vdT.
Geschrieben am: 11.01.2010 12:36:01

Hallo Torsten,

deine Informationen sind ganz schon mager! Woher kommt die Forlaufende Nummer? Ich gehe davon aus, dass sie in der Vorlagetabelle in A1 steht.

Sub NeuesBlatt()
' Tastenkombination: Strg+Umschalt+R

    Dim FortlaufendeNummer As Long
    FortlaufendeNummer = Sheets("Vorlagetabelle").Range("A1")
    
    Sheets.Add
    With ActiveSheet
        .Name = "MyName" & FortlaufendeNummer
        Sheets("Vorlagetabelle").Cells.Copy
        .Cells.Paste
    End With
    
    Sheets("Vorlagetabelle").Range("A1") = Sheets("Vorlagetabelle").Range("A1") + 1
    
End Sub

Klappt das so?


Grüße,
Klaus


  

Betrifft: AW: Neues Tabellenblatt auf Tastendruck anlegen von: Torsten
Geschrieben am: 11.01.2010 21:55:11

Tut mir leid dass ich erst jetzt antworte, wurde aber später heute.
Also erstmal Danke für die Hilfe. Also ich möchte dass die Namen der Sheets einfach eine forlaufende Nummer haben. Jedes mal wenn ich die Tabelle öffne und eine im Sheet angelegte Taste drücke, wird ein neues Sheet mit inkrementierter Nummer angelegt und der Inhalt aus der Vorlage kopiert.

Der Code funktioniert noch nicht so ganz, aber ich kann den Fehler leider nicht finden. VB kann ich leider nicht von der Syntax.
Wenn ich die Funktion ausführe, kommt beim erste mal die Meldung 'Laufzeitfehler'438': Objekt unterstützt diese Eigenschadt oder Methode nicht', und es wird ein Blatt mit MyName0 angelegt. Das wäre ja auch i.O., jedoch ist das Sheet kpl. leer. Die Kopiervorlage hatte ich aber entsprechend benannt.
Jedes weitere Mal, wenn ich die Funktion starte, so kommt 'Laufzeitfehler 1004: Anwendungs- oder objektdefinierter Fehler'.
Kann jemand helfen?


  

Betrifft: AW: Neues Tabellenblatt auf Tastendruck anlegen von: Torsten
Geschrieben am: 11.01.2010 21:56:43

Tut mir leid dass ich erst jetzt antworte, wurde aber später heute.
Also erstmal Danke für die Hilfe. Also ich möchte dass die Namen der Sheets einfach eine forlaufende Nummer haben. Jedes mal wenn ich die Tabelle öffne und eine im Sheet angelegte Taste drücke, wird ein neues Sheet mit inkrementierter Nummer angelegt und der Inhalt aus der Vorlage kopiert.

Der Code funktioniert noch nicht so ganz, aber ich kann den Fehler leider nicht finden. VB kann ich leider nicht von der Syntax.
Wenn ich die Funktion ausführe, kommt beim erste mal die Meldung 'Laufzeitfehler'438': Objekt unterstützt diese Eigenschadt oder Methode nicht', und es wird ein Blatt mit MyName0 angelegt. Das wäre ja auch i.O., jedoch ist das Sheet kpl. leer. Die Kopiervorlage hatte ich aber entsprechend benannt.
Jedes weitere Mal, wenn ich die Funktion starte, so kommt 'Laufzeitfehler 1004: Anwendungs- oder objektdefinierter Fehler'.
Kann jemand helfen?


  

Betrifft: AW: Neues Tabellenblatt auf Tastendruck anlegen von: welga
Geschrieben am: 11.01.2010 12:37:19

Hallo Torsten,

ja ist möglich. Einfach ein Makro anlegen und dieses dann einer Tastenkombination zuordnen, über welche man dieses startet.

Gruß
Welga


  

Betrifft: AW: Neues Tabellenblatt auf Tastendruck anlegen von: welga
Geschrieben am: 13.01.2010 11:34:15

Hallo Torsten,

also mal angenommen die Vorlage liegt im Tabellenblatt "Vorlage, dann einfach ein Modul einfügen und in dieses folgenden Code:

Sub blatteinfügen()
Dim n As Long
    With ThisWorkbook
        n = .Sheets.Count + 1
        .Sheets.Add After:=Sheets(n - 1)
        .ActiveSheet.Name = n
        .Sheets("Vorlage").Activate
        .ActiveSheet.Range(Cells(1, 1), Cells(13, 4)).Select 'Hier Bereich anpassen
        Selection.Copy
        Sheets(n).Activate
        ActiveSheet.Paste
    End With
End Sub
Den Bereich entsprechend anpassen. Dann unter 'Extras-->Makro-->Makros' das entsprechende Makro auswählen und über Optionen ein Tastenkürzel zum starten eingeben.

Gruß
welga


  

Betrifft: AW: Neues Tabellenblatt auf Tastendruck anlegen von: Torsten
Geschrieben am: 13.01.2010 12:10:00

Hallo Welga,
das funktioniert schon ganz gut. Nur leider wird hier der Inhalt, aber
nicht die Formatierung mit kopiert.
Hab mal die Zeile
.ActiveSheet.Range(Cells(1, 1), Cells(20, 50)).Select

durch
.ActiveSheet.Select (All)

ersetzt, aber dann wird gar nix mehr kopiert.
Gibts hierfür noch ne Lösung? Aber mal vielen Dank für die Mühe.


Beiträge aus den Excel-Beispielen zum Thema "Neues Tabellenblatt auf Tastendruck anlegen"