Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1696to1700
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zirkelbezug-Suche mit Makro oder Add In

Zirkelbezug-Suche mit Makro oder Add In
27.06.2019 13:50:49
stormlamp
Hallo Zusammen,
gibt es ein AddIn oder ein Makro, das alle Zirkelbezüge in einer Arbeitsmappe in einem neuen Tabellenblatt auflistet?
Im Internet habe ich ein Makro gefunden, das so etwas macht allerdings nur dann, wenn der Zirkelbezug auf einem Tabellenblatt ist:
  • 
    Sub ZirkelbezuegeAuflisten()
    Set AktBlatt = ActiveSheet
    Sheets.Add
    Set NeuesBlatt = ActiveSheet
    Zielbereich = ActiveCell.Address
    AktBlatt.Activate
    Zeilenzähler = 0
    On Error GoTo MakroNeuAufnehmen
    For Each Zelle In AktBlatt.UsedRange
    If Left(Zelle.Formula, 1) = "=" Then
    Ergebnis = Intersect(AktBlatt.Range(Zelle.Address), _
    AktBlatt.Range(Zelle.Precedents.Address))
    NeuesBlatt.Range(Zielbereich).Offset(Zeilenzähler, _
    0).Value = Zelle.Address(False, False)
    NeuesBlatt.Range(Zielbereich).Offset(Zeilenzähler, _
    1).Value = " " & Zelle.Formula
    Zeilenzähler = Zeilenzähler + 1
    Weiter:
    End If
    Next
    Exit Sub
    MakroNeuAufnehmen:
    Resume Weiter
    End Sub
    


  • Hat jemand eine Idee, ob und wie man das erweitern/ändern könnte um alle Zirkelbezüge einer Arbeitsmappe auflisten zu lassen?
    Viele Grüße
    Hans

    8
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Zirkelbezug-Suche mit Makro oder Add In
    27.06.2019 14:46:35
    Rainer
    Hallo Hans,
    Sub forEachWs()
    Dim ws As Worksheet
    For Each ws In ActiveWorkbook.Worksheets
    Call DeinMakro(ws)
    Next
    End Sub
    
    Du musst natürlich dann das Blatt mit den Ergebnissen fest zuweisen und nicht jedes Mal neu erstellen.
    Gruß, Rainer
    AW: Zirkelbezug-Suche mit Makro oder Add In
    27.06.2019 15:56:02
    stornlamp
    Hallo Zusammen,,
    die Änderung in ActiveWorkbook funktioniert nicht.
    Wenn ich die ForEach-Sub ausführe, wir für jedes vorhandene Tabellenblatt ein Auswerteblatt angelegt.
    Es sollte jedoch nur ein Auswerteblazz sein, in dem auch steht, auf welchem Tabellenblatt der Zirkelbezug gefunden wurde. Es werden auch keine Zirkelbezugfehler gefunden, wenn der Fehler mit einem anderen Blatt zusammen auftritt.
    Viele Grüße
    Hans
    Anzeige
    AW: Zirkelbezug-Suche mit Makro oder Add In
    27.06.2019 16:00:44
    Rainer
    Hallo Hans,
    dann lies bitte nochmal, was ich dir schrieb: Du musst natürlich dann das Blatt mit den Ergebnissen fest zuweisen und nicht jedes Mal neu erstellen.
    Wenn du eine Beispielmappe erstellst, dann kann ich auch sehen wo im Code dein Fehler ist.
    Gruß, Rainer
    AW: Zirkelbezug-Suche mit Makro oder Add In
    28.06.2019 10:20:37
    stormlamp
    Hallo Rainer,
    ich habe eine Datei mit den beiden Makros und 3 Tabellenblätter mit Zirkelbezügen erstellt und hochgeladen: https://www.herber.de/bbs/user/130627.xlsm
    Wenn ich das Makro "ForEach" laufen lasse, sollte ein einziges neues Blatt erstellt werden, in dem alle Zirkelbezüge aufgelistet sind.
    Es werden stattdessen jedoch 3 neue Blätter erstellt, auf denen jeweils immer der Zirkelbezug nur von Tabelle1 aufgelistet ist.
    Es wäre prima, wenn ich einen funktionierenden Code hätte.
    Gruß
    Hans
    Anzeige
    AW: Zirkelbezug-Suche mit Makro oder Add In
    28.06.2019 11:16:09
    Rainer
    Probier mal so:
    Sub AlleZirkelbezuegeAuflisten()
    Dim ws As Worksheet
    Sheets.Add before:=Sheets(1)
    Set NeuesBlatt = Sheets(1)
    Zeilenzähler = 1
    For Each ws In ActiveWorkbook.Worksheets
    Set AktBlatt = ws
    AktBlatt.Activate
    On Error GoTo MakroNeuAufnehmen
    For Each Zelle In AktBlatt.UsedRange
    If Left(Zelle.Formula, 1) = "=" Then
    Ergebnis = Intersect(AktBlatt.Range(Zelle.Address), _
    AktBlatt.Range(Zelle.Precedents.Address))
    Zeilenzähler = Zeilenzähler + 1
    NeuesBlatt.Cells(Zeilenzähler, 1).Value = ws.Name
    NeuesBlatt.Cells(Zeilenzähler, 2).Value = Zelle.Address(False, False)
    NeuesBlatt.Cells(Zeilenzähler, 3).Value = " " & Zelle.Formula
    LinkZelle = ws.Name & "!" & Zelle.Address(False, False)
    NeuesBlatt.Cells(Zeilenzähler, 4).Hyperlinks.Add _
    Anchor:=NeuesBlatt.Cells(Zeilenzähler, 4), _
    Address:="", _
    SubAddress:=LinkZelle, _
    TextToDisplay:=LinkZelle
    Weiter:
    End If
    Next
    Next
    Exit Sub
    MakroNeuAufnehmen:
    Resume Weiter
    End Sub
    
    Gruß, Rainer
    Anzeige
    AW: Zirkelbezug-Suche mit Makro oder Add In
    28.06.2019 11:44:58
    stormlamp
    Hallo Rainer,
    ganz lieben Dank, genau so hatte ich es mir vorgestellt.
    Vielen Dank auch für Deine Geduld.
    Ein angenehmes Wochenende
    Hans
    AW: Zirkelbezug-Suche mit Makro oder Add In
    28.06.2019 12:12:12
    Rainer
    Danke für deine Rückmeldung und viel Spaß damit.
    AW: Zirkelbezug-Suche mit Makro oder Add In
    27.06.2019 14:48:21
    Pierre
    Hallo Hans,
    ich rate mal mit meinen nicht vorhandenen Kenntnissen:
    ActiveSheet sagt ja, dass nur das aktuell geöffnete Blatt durchsucht werden soll.
    Vielleicht reicht es aus, wenn du stattdessen in ActiveWorkbook änderst?
    Wahrscheinlich aber wieder nicht (ist wieder zu einfach gedacht, vermute ich). Aber vielleicht probierst du es einfach mal aus.
    Gruß Pierre

    300 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige