Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1252to1256
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Add new Sheet and rename

Add new Sheet and rename
Albert
Guten Morgen zusammen,
ich hab mit einem Code versucht, ein neues Sheet in eine Mappe einzufügen und neu zu benennen.
Dazu verwende ich folgenden Code.
Sub Daten_übertragen()
' Daten_übertragen Makro
Cells.Select
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
Range("A1").Select
ActiveSheet.Paste
ActiveWorkbook.Sheets.Select
ActiveSheet.Name = Range("E5").Value
ActiveSheet.Select
Sheets("Zeitaufnahme").Select
Range("A1").Select
Application.CutCopyMode = False
End Sub
Allerdings benennt er hierbei entweder das Sheet "Zeitaufnahme" um oder bringt einen Laufzeitfehler.
Woran könnte der Fehler liegen?
Danke im Voraus!
Mfg
Albert

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Add new Sheet and rename
01.03.2012 08:12:35
Albert
Hallo zusammen,
ich hab mit dem Macrorecoder noch mal rumgespielt und diesen Code erhalten.
Sub Übertragen()
' Übertragen Makro
Cells.Select
Range("A1").Activate
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Buttons.Add(264, 9.75, 44.25, 4.5).Select
ActiveSheet.Buttons.Add(264, 17.25, 44.25, 25.5).Select
ActiveSheet.Buttons.Add(264, 42.75, 44.25, 0).Select
ActiveSheet.Buttons.Add(198.75, 7.5, 0, 6).Select
ActiveSheet.Paste
Range("A1").Select
Sheets("Zeitaufnahme").Select
Range("A1").Select
Application.CutCopyMode = False
End Sub
Nun fügt Excel den Bereich in ein neues Sheet als BILDDATEI...
Mfg
Albert
Anzeige
was willst Du denn erreichen ?
01.03.2012 08:15:08
Matthias
Hallo
Etwas verwirrend das Ganze
Den Angang würde ich so schreiben:
    Cells.Copy
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Paste
Application.CutCopyMode = False
und vor Cells würde ich das Objekt referenzieren (also aus welcher Tabelle)
Warum Du dann alle Tabellen markierst, bleibt mir ein Rätsel
ActiveWorkbook.Sheets.Select
obwohl Du dannach sowieso nur in ActiveSheet einen Name vergeben willst
ActiveSheet.Name = Range("E5").Value
Ich bin mir nicht sicher ob bei VBA=Gut das ganze Select sein muß?
Gruß Matthias
Anzeige
AW: was willst Du denn erreichen ?
01.03.2012 08:27:25
Albert
Hallo Matthias,
hoppala, das hab ich übersehen.
Cells.Select
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
Range("A1").Select
ActiveSheet.Paste
ActiveSheet.Select
ActiveSheet.Name = Range("E5").Value
ActiveSheet.Select
Sheets("Zeitaufnahme").Select
Range("A1").Select
Application.CutCopyMode = False
Die Exceldatei startet immer im Sheet "Zeitaufnahme". Das hab ich im Vorfeld schon deklariert.
Hm, und doppelt gemoppelt?
Aber danke für deinen Input. Nun muss ich mir noch Gedanken machen, wie ein Ablauf aussieht, wenn ein Sheetname bereits vorhanden ist.
Danke nochmal Matthias
LG
Albert
Anzeige
AW: was willst Du denn erreichen ?
01.03.2012 08:36:51
Matthias
Hallo
Das ist doch schon wieder "doppelt gemoppelt"
ActiveSheet.Select
ActiveSheet.Name = Range("E5").Value
ActiveSheet.Select
Wenn Du mit ActiveSheet.Paste die Zellen einfügst, dann befindest Du Dich doch schon in ActiveSheet
Es reicht also:
ActiveSheet.Name = QuellTabelle.Range("E5").Value
Auch hier würde ich also referenzieren
Aus welcher Tabelle holst Du Dir denn den Wert aus E5 ?
Holst Du den Wert immer aus der selben Tabelle?
Gruß Matthias
AW: was willst Du denn erreichen ?
01.03.2012 08:43:57
Albert
Hallo Matthias,
genau, der Sheetname kommt immer aus dem gleichen Quellsheet.
Danke für den Hinweis, zweimal "ActiveSheet.select" muss auch nicht sein.
Und wieder was dazu gelernt. QuellTabelle kannte ich noch nicht.
Gruß
Albert
Anzeige
was hast Du denn dazugelernt ;o)
01.03.2012 08:53:58
Matthias
Hallo
Und wieder was dazu gelernt. QuellTabelle kannte ich noch nicht
QuellTabelle habe ich doch nur als Beispiel im Beitrag benutzt
Du hast ja nicht mitgeteilt aus welchem Blatt Du den Namen fürs neue Sheet holst
Was steht denn in E5?
Im Code mußt Du dann Deinen RegisterblattNamen benutzen
ActiveSheet.Name = Worksheets("DeinBlattName").Range("E5").Value
oder den CodeName der QuellTabelle
ActiveSheet.Name = Tabelle1.Range("E5").Value
Gruß Matthias
AW: Add new Sheet and rename
01.03.2012 09:03:48
Rudi
Hallo,
das ist doch ganz einfach.
Sub SheetKopieren()
Dim wks As Worksheet, sName As String
sName = Range("E5")
On Error Resume Next
Set wks = Sheets(sName)
On Error GoTo 0
If wks Is Nothing Then
ActiveSheet.Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = sName
Else
MsgBox " Blatt " & sName & " gibt es schon!", vbCritical, "Gebe bekannt..."
End If
End Sub

Gruß
Rudi
Anzeige
AW: Add new Sheet and rename
01.03.2012 09:16:16
Albert
Hallo Rudi,
das klappt ja wunderbar!
Vielen herzlichen Dank...
Gruß
Albert

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige