Anzeige
Archiv - Navigation
1420to1424
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

Tabellenblatt anlegen, wenn noch nicht vorhanden

Tabellenblatt anlegen, wenn noch nicht vorhanden
21.04.2015 21:43:31
Norbert
Hallo,
habe als VBA-Neuling ein Problem: ich möchte Tabellenblätter aus der Vorlage "Aufsicht" generieren. Im Bereich "Aufsichten" soll mit jedem vorkommendem Text ein Blatt entstehen. Dort können jedoch Texte doppelt vorkommen. Es funktioniert nur bis zum ersten Eintrag, der doppelt vorkommt. Meine Überprüfung, ob es das Tabellenblatt schon gibt, scheint nicht zu funktionieren:
Sub AufsichtsTabellenErzeugen()
Dim Zelle As Range
Sheets("Aufsicht").Activate
For Each Zelle In Range("Aufsichten")
If Not BlattVorhanden(Zelle.Value) Then
Sheets("Aufsicht").Copy After:=Sheets(Sheets.Count) 'Vorlagetabelle Aufsicht als letztes Blatt in die Arbeitsmappe kopieren
ActiveSheet.Name = Zelle.Value
End If
Next Zelle
End Sub

Public Function BlattVorhanden(BlattName As String) As Boolean
Dim Blatt As Object
Application.ScreenUpdating = False
For Each Blatt In ActiveWorkbook.Sheets ' Namen aller Tabellen prüfen
If Blatt.Name = BlattName Then
BlattVorhanden = True
Exit Function
End If
Next Blatt
BlattVorhanden = False
End Function

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblatt anlegen, wenn noch nicht vorhanden
22.04.2015 07:32:06
fcs
Hallo Norbert,
du musst zusätzlich prüfen, ob eine Zelle keinen Text enthält und bei der Prüfung der Namen dafür sorgen, dass nur Groß- oder Kleinschreibung verglichen wird, da Excel hier nicht unterscheidet..
Gruß
Franz
Sub AufsichtsTabellenErzeugen()
Dim Zelle As Range
Application.ScreenUpdating = False
Sheets("Aufsicht").Activate
For Each Zelle In Range("Aufsichten")
If Zelle.Value  "" And Not BlattVorhanden(Zelle.Value) Then
Sheets("Aufsicht").Copy After:=Sheets(Sheets.Count) 'Vorlagetabelle Aufsicht als  _
letztes Blatt in die Arbeitsmappe kopieren
ActiveSheet.Name = Zelle.Value
End If
Next Zelle
Application.ScreenUpdating = True
End Sub
Public Function BlattVorhanden(BlattName As String) As Boolean
Dim Blatt As Object
For Each Blatt In ActiveWorkbook.Sheets ' Namen aller Tabellen prüfen
If LCase(Blatt.Name) = LCase(BlattName) Then
BlattVorhanden = True
Exit Function
End If
Next Blatt
BlattVorhanden = False
End Function

Anzeige
AW: Tabellenblatt anlegen, wenn noch nicht vorhanden
22.04.2015 12:39:30
Norbert
Hallo Franz,
Super, vielen Dank, funktioniert :-)))
Das mit der Groß-/Kleinschreibung hatte ich schon, war nicht von Bedeutung.
Das Problem lag an den leeren Zellen, die es auch gab.
Gruß
Norbert

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige