Supportnet / Forum / Tabellenkalkulation
VBA - Prüfung Blattname
Frage
Guten Morgen!
[u]Folgendes Problem:[/u]
Per Makro wird in einer Excel-Datei ein neues Blatt erzeugt.
Der Blattname wird aus einer Zelle übernommen.
Wenn der Blattname schon vorhanden ist, kommt es zu einem Laufzeitfehler und das Makro läuft nicht durch --> keine "Umbenennung" des Blattnamens.
Wie kann ich diesen "abfangen" bzw. wie kann ich prüfen, ob der Blattname schon vorhanden ist?
Habe dazu eine Musterdatei unter
[url]http://www.netupload.de/detail.php?img=8bba31db43d41c32a75b3cbfc809b1a1.xls[/url]
abgelegt.
Thanx
Tom
Antwort 1 von coros
HaAllo Tom,
dann sieht das Makro wie folgt aus. Tausche das nachfolgende Makro gegen Dein Altes aus.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
dann sieht das Makro wie folgt aus. Tausche das nachfolgende Makro gegen Dein Altes aus.
Sub Blattkopie()
Dim iSheet as Integer
'
Application.ScreenUpdating = False
ActiveSheet.Unprotect Password:="test"
asn = ActiveSheet.Name
'Ist die Zelle B11 ungleich leer, dann wird das Basis-Blatt kopiert
'und als 1:1 Kopie eingefügt.
'Danach wird der Button entfernt und sämtliche Zellen geschützt.
If Range("b11") <> "" Then
'######################## Blattprüfung Anfang ##########################
'Schleife zum Prüfen ob Blatt bereits vorhanden
For iSheet = 1 To Worksheets.Count
If Sheets(iSheet).Name = "Basis " & Range("B11").Text Then
MsgBox "Blatt bereits vorhanden, daher kein Blatt erstellt"
Exit Sub
End If
Next
'######################## Blattprüfung Ende ###########################
Sheets("Basis").Copy Before:=Sheets(2)
ActiveSheet.Shapes("Button 1").Delete
ActiveSheet.Name = "Basis " & Range("B11").Text
Range("C1") = "Blatt geschützt"
ActiveSheet.Shapes("Text Box 2").Delete
'Blattfarbe wird auf 'keine Farbe' gesetzt
ActiveSheet.Tab.ColorIndex = xlColorIndexNone
With Range("A6:B11")
.Locked = True
.FormulaHidden = False
End With
ActiveSheet.Protect Password:="test"
Else
MsgBox "kein Blatt erstellt"
End If
Range("a1:a1").Select
Worksheets(asn).Activate
Application.ScreenUpdating = True
ActiveSheet.Protect Password:="test"
End Sub
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 2 von Tomschi
Hallo Oliver!
Deine Antwort --> und der Tag ist gerettet!
VIELEN, VIELEN DANK!
Wünsche ein schönes Wochenende.
Tom
Deine Antwort --> und der Tag ist gerettet!
VIELEN, VIELEN DANK!
Wünsche ein schönes Wochenende.
Tom
Antwort 3 von coros
Hallo Tom,
danke Dir für Deine Rückmeldung. Dir ebenfalls ein schönes Wochenende.
MfG,
Oliver
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.
danke Dir für Deine Rückmeldung. Dir ebenfalls ein schönes Wochenende.
MfG,
Oliver
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.

