Tabellenblatt löschen wenn bestimmte Zeile gelöscht wird

  • Excel

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Tabellenblatt löschen wenn bestimmte Zeile gelöscht wird

    Guten Abend,

    Ich erstelle über eine userform eine neue Zeile mit einem Namen. Daraufhin wird eine Tabelle (Muster) kopiert und ebenfalls mit diesem Namen benannt. Wie bekomme ich es nun hin das diese Tabelle gelöscht wird wenn ich den Namen lösche? Das darf nicht Zeilen abhängig sein weil ich viele Namen mit vielen Tabellen (immer eine pro Person) erstellen aber auch löschen möchte

    ich danke euch vielmaös für eure Hilfe
    Grundidee:
    Wenn eine Zelle in der Namensspalte verändert oder gelöscht wird, alle Sheets überprüfen, ob ein Namenseintrag existiert, wenn nicht löschen.

    Visual Basic-Quellcode

    1. ​Private Sub WorkSheet_Change(ByVal Target As Range)
    2. If Not Intersect(Target, Range("A:A")) Is Nothing Then DeleteUnusedSheets
    3. End Sub
    4. Private Sub DeleteUnusedSheets()
    5. Dim ws As Worksheet
    6. For Each ws In Worksheets
    7. If Not ws Is Me Then
    8. If Range("A:A").Find(ws.Name, LookIn:=xlValues, LookAt:=xlWhole) Is Nothing Then ws.Delete
    9. End If
    10. Next
    11. End Sub

    Ist aber schon ein heißes Eisen, ein Sheet zu löschen, sobald der Eintrag gelöscht wird.
    Zumindest würde ich mir zur Sicherheit noch zusätzliche Logik einbbauen.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Hey erstmal vielen Dank,

    aber er macht genau das gegenteil er löscht jetzt alle Datein sobald ich eine Zeile lösche.


    Hast du sonst einen Vorschlag wie ich das Übersichtlich gestalten kann?

    Mein Problem ist das über die Zeit 40 Namen drin stehen können die mit einem Hyperlink zu den Tabellen verlinkt sind (also auch 40 Tabellen). Wenn dann ein Name gelöscht wird muss man die zugehörige Tabelle unter den 40 Stück suchen und auch händisch löschen. Das finde ich sehr unübersichtlich.

    Oder kann man vielleicht sagen wenn der Hyperlink weg ist wird die verlinkte Tabelle gelöscht?

    Ich bin VBA anfänger und habe das bis hierhin durch das lesen in Foren gelöst. Komme jetzt dort aber leider nicht weiter.

    Für einen Vorschlag oder eine Lösung wäre ich sehr dankbar

    BiG_Appl3 schrieb:

    wenn Zeile mit x Namen gelöscht wird lösche Worksheet mit ebenfalls Namen x

    BiG_Appl3 schrieb:

    er löscht jetzt alle Datein sobald ich eine Zeile lösche
    Ich denke das war das Ziel.

    BiG_Appl3 schrieb:

    wenn der Hyperlink weg ist wird die verlinkte Tabelle gelöscht?
    Klar.
    Such halt anstatt dem Namen den Hyperlink.

    Können wir uns darauf einigen, dass du dein Problem mal richtig beschreibst und mit dem richtigen Vokabular?
    Sind das jetzt Worksheets, Dateien, Tabellen oder Hyperlinks?
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Ok ich versuche es nochmal, Entschuldigung. Wie gesagt ich kenne mich damit noch nicht so aus. Versuche mir Aber eben eine Excel Datei zu erstellen mit der ich eine Übersicht erstellen kann.

    Ich habe ein Worksheet(Übersicht) in welchem ich über eine Userform Namen einfügen kann. Ich trage den Namen in eine Textbox ein, diesen namen schreibt er in die nächste freie Zeile. Mit dem namen eröffnet er ein neues worksheet (eingetragener Name).
    Gleichzeitig wird dem Namen in (Worksheet(Übersicht) ein hyperlink zugeordnet welcher auf das Worksheet (eingetragener Name) verlinkt ist.

    Da ich evtl 40 Namen (somit 40 Worksheets(eingetragener Name) in der Übersicht eingetragen habe und dann mal welche lösche wäre es gut wenn das Worksheet (eingetragener Name) Gelöscht wird sobald ich den namen in der Übersicht lösche. Verknüpft sind die beiden über einen Hypelink.

    BiG_Appl3 schrieb:

    Verknüpft sind die beiden über einen Hypelink.
    Wie verknüpfst du ein Worksheet?
    Du kannst in einem internen Hyperlink nur einen Range eintragen.

    Wo ist jetzt das verbleibende Problem?
    Willst du rausfinden, ob ein Sheet verlinkt ist?

    Visual Basic-Quellcode

    1. Function isLinkedSheet(ByVal ws As Worksheet) As Boolean
    2. Dim hl As Hyperlink
    3. For Each hl In Hyperlinks
    4. If hl.Name Like ws.Name & "!*" Then
    5. isLinkedSheet = True
    6. Exit Function
    7. End If
    8. Next
    9. End Function​
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --