Das Makro zum Erstellen und Formatieren eines Blattes soll logischerweise nicht ausgeführt werden, wenn dieses bereits existiert.
Bisher habe ich mir so beholfen:
If Sheets.Count \> 1 Then
Exit Sub
End If
Inzwischen gibt es aber mehrere Blätter, so daß das nicht mehr klappt.
Mir schwebt eine Bedingung vor, die in etwa so aussieht:
If Sheet "Gesamtliste" Exists Then
...
Aber ich krieg’s nicht hin.
Wie ist die korrekte Syntax?
In der Hoffnung auf Eure Tips!
Gruß
Hans
PS: „Gesamtliste“ ist übrigens die Bezeichnung, in die ich das Blatt umbenannt habe (also das was im VBA-Editor in Klammern dahinter steht) und nicht der eigentliche Name des Objektes. Dieser lautet weiterhin mal „Tabelle1“, mal „Tabelle2“ oder „TabelleX“ usw., also z.B.
Das Makro zum Erstellen und Formatieren eines Blattes soll
logischerweise nicht ausgeführt werden, wenn dieses bereits
existiert.
Hi Hans,
Option Explicit
Sub Makro1()
Dim vorhanden As Boolean, n As Worksheet
For Each n In ThisWorkbook.Worksheets
If n.Name = "Gesamtliste" Then
vorhanden = True
Exit For
End If
Next n
If vorhanden = False Then Call MeinMakro
End Sub
Sub MeinMakro()
'...
End Sub
Ich vermute, daß diese Abfrage immer dann ausgeführt werden soll, wenn Du ein neues Blatt für einen neuen Abnehmer zur Datei hinzufügst.
Ich habe hier mal was geschrieben, was eigentlich Deinen Vorstellungen entsprechen könnte:
Bitte gehe dazu wieder in der Visual Basic-Editor
Doppelklicke im Projekt-Explorer auf ein Modul
Kopiere den folgenden Code in das Code-Fenster des Moduls:
Function GleicherName(NeuerName As String) As Boolean
Dim tmpSheet As Integer
For tmpSheet = 1 To Sheets.Count
If Sheets(tmpSheet).Name = NeuerName Then
MsgBox „Dieser Name existiert schon für ein Tabellenblatt“
GleicherName = True
Exit For
End If
Next
End Function
Bitte öffne jetzt das Code-Fenster, das die Prozedur zum Umbenennen der Tabellenblätter enthält
Dort kannst Du an geeigneter Stelle (die ich nicht kenne) den nun folgenden Code einfügen:
If GleicherName(Sheets(„Gesamttabelle“).Cells(4, 1)) = True Then Exit Sub
Wenn ich mich recht erinnere, standen doch die Namen immer in Zelle A4 (‚Cells(4, 1)‘), oder? Falls nicht, dann mußt Du den Code noch entsprechend anpassen.
Herzlichsten Dank an Euch Drei.
Die Lösungen hab ich alle ausprobiert und sie funktionieren einwandfrei.
Aber ich werde wieder nicht verraten, welche ich letztendlich einbaue, damit niemand enttäuscht ist umsonst gearbeitet zu haben.