Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1268to1272
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

neu erstellte Tab (nicht aktive) Namen zuweisen

neu erstellte Tab (nicht aktive) Namen zuweisen
Peter
Guten Tag
Mit untenstehendem Code lösche ich in einem Workbook die Tabelle "Index" und lege sie wieder an.
Wie muss ich den Code anpassen, damit die neue Tabelle mit "Index" benannt wird und nicht eine andere Tabelle, die zufällig aktiv ist?
Gruss, Peter
Sub TabellenIndex()
Dim WkbThis As Excel.Workbook
Set WkbThis = ThisWorkbook
Application.DisplayAlerts = False
WkbThis.Sheets("Index").Delete
Application.DisplayAlerts = True
WkbThis.Worksheets.Add after:=Sheets("Stammdaten")
ActiveSheet.Name = "Index"   ?
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
mit Fehlerroutine ...
17.07.2012 12:02:17
Matthias
Hallo Peter
Eigentlich ist das korrekt, denn nach Add ist das neue Blatt das aktive Blatt
ABER:
Du hast nicht bedacht, das es ja sein könnte das dieses Blatt(Index) mal nicht vorhanden ist.
Lösch also mal Blatt(Index) händisch und lass Deinen Code laufen - schwupps da gibts eine Fehlermeldung
Habs mal so umgesetzt:
Option Explicit
Sub TabellenIndex()
Dim WkbThis As Excel.Workbook
Set WkbThis = ThisWorkbook
On Error GoTo ErrSheet
Application.DisplayAlerts = False
WkbThis.Sheets("Index").Delete
Application.DisplayAlerts = True
WkbThis.Worksheets.Add after:=Sheets("Stammdaten")
ActiveSheet.Name = "Index"
Exit Sub
ErrSheet:
If MsgBox("zu löschende Tabelle ist nicht vorhanden" & vbLf & "Soll Tabelle(Index) neu  _
erstellt werden", vbYesNo) = vbYes Then
WkbThis.Worksheets.Add after:=Sheets("Stammdaten")
ActiveSheet.Name = "Index"
End If
Application.DisplayAlerts = True
End Sub

Gruß Matthias
Anzeige
AW: mit Fehlerroutine ...
17.07.2012 12:19:12
Peter
Hallo Matthias
Danke für deine Antwort.
Ich habe mit
Application.DisplayAlerts = False
bedacht, dass das Sheet "Index" nicht vorhanden sein könnte.
Die Fehlermeldung, welche produziert wird, wird mir nicht angezeigt.
Mein Problem bleibt aber:
Wie schaffe ich es, dass die neue Tabelle mit "Index" benannt wird? Mit ActiveSheet.Name funktioniert das nicht, denn der Code wird aus einem anderen Workbook aufgerufen und daher ist auch eine andere Tabelle bei diesem Zeitpunkt aktiv.
Gruss, Peter
AW: mit Fehlerroutine ...
17.07.2012 12:27:41
Peter
hallo
Kleiner Nachtrag:
Wie aus meinen vorhergenenden Einträgen ersichtlich sein sollte, wird aus dem Workbook "A" eine Code aus Workbook "B" aufgerufen, der unter anderem bewirkt, dass in Workbook "B" ein allfällig bestehendes Worksheet "Index" gelöscht und eine neue Tabelle angelegt wird.
Wie kann ich diese neue Tabelle mit "Index" benennen, ohne, dass Workbook "B" aktiviert werden muss? (Nach Möglichkeit möchte ich Workbook "B" nicht aktivieren).
Gruss, Peter
Anzeige
AW: mit Fehlerroutine ...
17.07.2012 12:46:39
Kawensmann
Hallo,
versuch mal, das einzubauen:
  Dim ws As Worksheet
Set ws = WkbThis.Worksheets.Add(after:=Sheets("Stammdaten"))
ws.Name = "Index"
Gruß
Kawensmann
AW: mit Fehlerroutine ...
17.07.2012 13:43:20
Peter
Hallo Kawensmann
Vielen Dank.
So funktioniert es perfekt.
Gruss, Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige