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

Hinzufügen von Tabellenblättern

Hinzufügen von Tabellenblättern
03.11.2014 10:49:53
Tabellenblättern
Hallo zusammen,
ich habe ein kleines Problem mit Hinzufügen von Tabellenblättern (siehe Datei):
https://www.herber.de/bbs/user/93499.xlsm
Es sollen Tabellenblätter mit Namen aus dem Feld "bereich" eingefügt werden.
Wenn ein Tabellenblatt gleichen Namens (hier 105) bereits vorhanden ist, soll kein Blatt hinzugefügt werden.
Mit meinem Programmcode wird in diesem Fall ein Blatt "Tabelle123" angelegt, was auch logisch ist, da der Befehl "worksheets.add" zuerst ausgeführt wird.
*************************************
Sub tab_anlegen()
Dim zelle As Range
Sheets("Tabelle1").Activate
For Each zelle In Selection
On Error Resume Next
Worksheets.Add
ActiveSheet.Name = zelle.Value
Next zelle
End Sub

**************************************
Vielen Dank im Voraus
Viele Grüße
Günter

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Name als Param nach Add angeben! Gruß owT
03.11.2014 10:53:32
Luc:-?
:-?

AW: Hinzufügen von Tabellenblättern
03.11.2014 12:10:35
Tabellenblättern
Danke für die schnelle Antwort...
...funktioniert nicht wirklich oder ich bin zu dusselig...
**********************************
Sub tab_anlegen()
Dim zelle As Range
Sheets("Tabelle1").Activate
For Each zelle In Selection
On Error Resume Next
Worksheets.Add.Name = zelle.Value
Next zelle
End Sub

**********************************
Für den doppelten Eintrag wird immer noch ein zusätzliches leeres Blatt eingefügt,
was bei einer großen Anzahl von Duplikaten stört.
Ich brauche etwas ähnliches wie ein "select distinct" :-)
Gruß
Günter

Anzeige
Lies nach! Worksheets.Add zelle.Value -- orT
03.11.2014 12:18:45
Luc:-?
Gruß, Luc :-?

AW: Lies nach! Worksheets.Add zelle.Value -- orT
03.11.2014 12:33:31
Daniel
Hi
was Luc vorgeschlagen hat hilft nicht.
du kannst bei Worksheets.Add nicht den Namen des einzufügenden Blattes als Parameter vorgeben.
über die Parameter dieser Funktion kannst du folgedes steuern:
a) an welcher Stelle das Blatt eingefügt werden soll (after/before)
b) wieviele Blätter du einfügen willst (Count)
c) was für ein Blatt (Tabelle, Chart) du einfügen willst (Type)
den Namen kannst du nicht vorgeben, dieser wird von Excel beim Erstellen automatsich vergeben und du musst ihn nachträglich ändern.
Gruß Daniel

Anzeige
Ja, da habe ich das falsch erinnert, ...
03.11.2014 17:36:33
Luc:-?
…Günther,
aber beim empfohlenen Nachlesen wär's wohl klar geworden… ;-)
Abgesehen mal von Daniels umfassenderer GesamtRegie für dein Problem, kann man so etwas auch wie folgt machen:
Dim wSh As Worksheet
Set wSh = ActiveWorkbook.Worksheets.Add: wSh.Name = "gewünschterName"

Gruß, Luc :-?

AW: Ja, da habe ich das falsch erinnert, ...
03.11.2014 17:45:24
Daniel
Kann man so machen, aber was bringts?
Es wird eine zusätzliche Variable benötigt und das Problem ist nicht gelöst.
Gruß Daniel

...zB saubere Referenzierung! Fremdwort? ;-] owT
03.11.2014 18:37:30
Luc:-?
:-?

AW: Lösung des Problems! Unwichtig?
03.11.2014 19:17:11
Daniel
Direkt nach dem Einfügen eines Blattes ist das neue Blatt immer das aktive Sheet.
Von daher ist in diesem Fall und zu diesem Zeitpunkt ActiveSheet meiner Ansicht nach schon eine saubere Referenzierung.
Ausserdem, was nützt eine saubere Referenzierung, wenn die Aufgabe nicht gelöst wurde?

Anzeige
Darum ging's hier doch jetzt gar nicht, ...
03.11.2014 20:32:25
Luc:-?
…aber du willst wohl wieder mal das letzte Wort behalten. Mit dir zu diskutieren macht weder Spaß noch bringt es irgendeinen Nutzen… :-[
Im Übrigen, setzt doch mal einen Pkt hinter ActiveSheet — was zeigt dir dann der VBE-Intellisense an, na…?
Die VBE-Hilfe-Bspp von MS zeichnen sich idR auch durch viele, deiner Meinung nach überflüssige Objekt­Variablen aus → warum wohl…?
Luc :-?

AW:nein, es ging darum..
03.11.2014 20:44:11
Daniel
dass Günther beim Erstellen der Blätter vermeiden wollte, das für Zellen, für schon ein Blatt besteht nochmal eines erstellt hat.
Das hat dich bisher ja nicht wirklich interessiert.

Anzeige
Habe ich auch nicht behauptet, aber ...
04.11.2014 03:44:17
Luc:-?
…wahrscheinlich hast du ja eines von diesen Dingern, bei denen man nur hört, was man hören will, und offensichtlich auch nur sieht, was man sehen will… :->>
Luc :-?

AW: Hinzufügen von Tabellenblättern
03.11.2014 12:21:15
Tabellenblättern
Hi
dann solltest du vor dem Einfügen eines neuen Blattes prüfen, ob ein Blatt mit diesem Namen schon vorhanden ist.
Das geht am einfachsten, in dem man im "On Error Resume Next"-Zustand versucht das Blatt mit dem entsprechenden Namen einer Variablen zuzuweisen.
Wenn diese Aktion ohne Fehler gelingt, ist das Blatt bereits vorhanden, wenn ein Fehler entsteht, fehlt das Blatt und muss angelegt werden.
Desweitern musst du bei numerischen Blattnamen darauf auchten, dass du sauber zwischen Blattname (ist immer ein Text) und der Indexnummer des Blattes unterscheidest.
Sheets(105) ist das 105. Blatt, Sheets("105") ist das Blatt mit dem Namen "105" auf dem Reiter.
der Code dazu sieht so aus:
Sub tab_anlegen()
Dim zelle As Range
Dim ws As Worksheet
Sheets("Tabelle1").Activate
On Error Resume Next
For Each zelle In Selection
Err = 0
Set ws = Worksheets(CStr(zelle.Value))
If Err  0 Then
Worksheets.Add
ActiveSheet.Name = zelle.Value
End If
Next zelle
On Error GoTo 0
End Sub

Anzeige
AW: Hinzufügen von Tabellenblättern
03.11.2014 14:43:14
Tabellenblättern
das funzt,
vielen Dank für die schnelle Hilfe
Gruß
Günter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige