Supportnet Computer
Planet of Tech

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.


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

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.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: