VBA: Excel - Next sheet

Tach Community,

ich erzeuge dynamische Worksheets. Kenne also im Script deren
Namen noch nicht. Mein ziel ist es von einer uebersichtsseite
hyperlinks zu generieren, die eine funktion aufrufen , die widerum
einen der generierten sheets loescht.

mein problem:
das generieren der hyperlinks klappt schon…
allerdings klappt das mit dem loeschen des worksheets nicht.
ich bekomme immer die meldung, dass der Bezug ungueltig sei.

Hier ein wenig code:

Public Function addDeleteHyperlink(zelle, spalte, reiter)
 ActiveSheet.Hyperlinks.Add Anchor:=ActiveSheet.Cells(zelle, spalte), Address:="", SubAddress:= \_
"deleteReiter(""" & reiter & """)", TextToDisplay:="Delete"

 ThisWorkbook.ActiveSheet.Range("A" & zelle).Font.ColorIndex = 3
End Function

Public Function deleteReiter(reiter As Integer)

ThisWorkbook.Worksheets(reiter).Delete

End Function

Wenn ich ueber MsgBox ThisWorkbook.Worksheets(reiter).name
ausgebe bekomme ich den richtigen angezeigt.
raetsel… was mach ich falsch?

gruss

Pixel

ich erzeuge dynamische Worksheets. Kenne also im Script deren
Namen noch nicht. Mein ziel ist es von einer uebersichtsseite
hyperlinks zu generieren, die eine funktion aufrufen , die
widerum
einen der generierten sheets loescht.

mein problem:
das generieren der hyperlinks klappt schon…

nö:smile:

allerdings klappt das mit dem loeschen des worksheets nicht.
ich bekomme immer die meldung, dass der Bezug ungueltig sei.

Das ist richtig, die Hyperlinks sind nicht korrekt.

Probiere es mal so:

in einem Standardmodul:

Public Function addDeleteHyperlink(zelle, spalte, reiter)
ActiveSheet.Hyperlinks.Add Anchor:=ActiveSheet.Cells(zelle, spalte), Address:="", SubAddress:= \_
 ActiveSheet.Name & "!" & ActiveSheet.Cells(zelle, spalte).Address, TextToDisplay:="Delete" & reiter
ThisWorkbook.ActiveSheet.Range("A" & zelle).Font.ColorIndex = 3
End Function
'
Sub deleteReiter2(reiter As Integer)
ThisWorkbook.Worksheets(reiter).Delete
End Sub
'
Sub test()
Call addDeleteHyperlink(5, 6, 3)
End Sub

Im Klassenmodul der Tabelle:

Private Sub Worksheet\_FollowHyperlink(ByVal Target As Hyperlink)
Application.DisplayAlerts = False
Call deleteReiter2(Replace(Target.Name, "Delete", ""))
Application.DisplayAlerts = True
End Sub

Gruß
Reinhard

Hier ein wenig code:

Public Function addDeleteHyperlink(zelle, spalte, reiter)
ActiveSheet.Hyperlinks.Add
Anchor:=ActiveSheet.Cells(zelle, spalte), Address:="",
SubAddress:= _
„deleteReiter(“"" & reiter & „“")", TextToDisplay:=„Delete“

ThisWorkbook.ActiveSheet.Range(„A“ &
zelle).Font.ColorIndex = 3
End Function

Public Function deleteReiter(reiter As Integer)

ThisWorkbook.Worksheets(reiter).Delete

End Function

Wenn ich ueber MsgBox ThisWorkbook.Worksheets(reiter).name
ausgebe bekomme ich den richtigen angezeigt.
raetsel… was mach ich falsch?

gruss

Pixel