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

Neues Tabellenblatt wenn noch nicht vorhanden

Neues Tabellenblatt wenn noch nicht vorhanden
13.08.2015 11:24:18
worm77
Hallo zusammen
Ich möchte über VBA ein neues Tabellenblatt einfügen, falls noch keines mit einem bestimmten Namen existiert.
Über ein Forum habe ich dann was gefunden und angepasst.
Mein Code sieht wie folgt aus:
#############################################################################


Windows("TimesSeries_Basis.xlsx").Activate
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Sheets
If ws.Name = Master_Sheet_Name Then
GoTo WEITER
Else
GoTo NEUES_BLATT_EINFUEGEN
End If
Next ws
GoTo WEITER
NEUES_BLATT_EINFUEGEN:
Sheets.Add
New_Sheet_Name = ActiveSheet.Name
Sheets(New_Sheet_Name).Name = Master_Sheet_Name
WEITER:>

#############################################################################
Wenn das Blatt noch nicht existiert, funktioniert alles wunderbar, aber wenn
es bereits vorhanden ist, versucht der Code trotzdem, ein neues einzufügen und
umzubenennen. Es geht also in jedem Fall zu der Sprungmarke NEUES_BLATT_EINFUEGEN.
Kann mir da jemand sagen, wie ich das Problem lösen kann?
Besten Dank für eure Hilfe!
Gruss Rolf

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Neues Tabellenblatt wenn noch nicht vorhanden
13.08.2015 11:31:19
Nepumuk
Hallo,
teste mal:
Public Sub Einfuegen()
    Dim objWorksheet As Worksheet
    Dim blnFound As Boolean
    For Each objWorksheet In ThisWorkbook.Worksheets
        If objWorksheet.Name = Master_Sheet_Name Then
            blnFound = True
            Exit For
        End If
    Next
    If Not blnFound Then
        Set objWorksheet = ThisWorkbook.Worksheets.Add
        objWorksheet.Name = Master_Sheet_Name
    End If
    Set objWorksheet = Nothing
End Sub

Gruß
Nepumuk

Anzeige
AW: Neues Tabellenblatt wenn noch nicht vorhanden
13.08.2015 11:59:05
worm77
Hallo Nepumuk
Leider funktioniert's noch nicht so richtig...
Anscheinend prüft es im falschen Workbook ...
Ich habe ein Excel-Sheet ("TimesSeries.xlsm"), in dem ich verschiedene Konfigurationen vornehme und dann mit +a das Makro ausführe.
Das Tabellenblatt soll dann aber im File "TimesSeries_Basis.xlsx" mit Daten aus einem Textfile befüllt, resp. eingefügt warden...
Nun fügt es ein neues Sheet in "TimesSeries.xlsm" ein, obwohl ich das Basis-File vorher extra aktiviere (Windows("TimesSeries_Basis.xlsx").Activate).
Hier mal mein ganzer code, den ich mit deinem angepasst habe:
    Dim Auswahl, SourceFile, Master_Sheet_Name, New_Sheet_Name
Dim LastRow As Long
Dim Zelle As Range
Windows("TimesSeries.xlsm").Activate
Sheets("Mastertable").Select
Range("E16").Select
SourceFile = ActiveCell.Value
Master_Sheet_Name = "MASTERDATA_" & Range("E21").Value & "_Q" & Range("E22").Value
Windows("TimesSeries_Basis.xlsx").Activate
Dim objWorksheet As Worksheet
Dim blnFound As Boolean
For Each objWorksheet In ThisWorkbook.Worksheets
If objWorksheet.Name = Master_Sheet_Name Then
Sheets(Master_Sheet_Name).Select
Sheets(Master_Sheet_Name).Cells.Clear
blnFound = True
Exit For
End If
Next
If Not blnFound Then
Set objWorksheet = ThisWorkbook.Worksheets.Add
objWorksheet.Name = Master_Sheet_Name
End If
Set objWorksheet = Nothing
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & SourceFile, Destination:=Range("$A$1" _
))
.Name = "file"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 437
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(4, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With

Anzeige
AW: Neues Tabellenblatt wenn noch nicht vorhanden
13.08.2015 12:02:27
Nepumuk
Hallo,
na dann:
Public Sub Einfuegen()
    Dim objWorksheet As Worksheet
    Dim blnFound As Boolean
    For Each objWorksheet In Workbooks("TimesSeries_Basis.xlsx").Worksheets
        If objWorksheet.Name = Master_Sheet_Name Then
            blnFound = True
            Exit For
        End If
    Next
    If Not blnFound Then
        Set objWorksheet = Workbooks("TimesSeries_Basis.xlsx").Worksheets.Add
        objWorksheet.Name = Master_Sheet_Name
    End If
    Set objWorksheet = Nothing
End Sub

Gruß
Nepumuk

Anzeige
AW: Neues Tabellenblatt wenn noch nicht vorhanden
13.08.2015 12:08:26
worm77
Perfekt!
Vielen herzlichen Dank!
Gruss Rolf

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige