Zirkelbezüge anzeigen
#11
Hallo

nun ja, über Anwenderfreundlich, oder nicht, da kann man streiten. Fakt ist, ich liebe VBA!
Wenn man eine Datei  mit vielen Tabellen hat, spüre ich den Zrkelbezug damit mühelos auf.
Ich brauche nicht jedes Sheet einzeln abzusuchen, und kann mir die Zelle anzeigen lassen!

mfg Gast 123
Antworten Top
#12
Moin!
Ja, scheint tatsächlich ein kleiner Bug zu sein, denn
ActiveSheet.CircularReference.Count
(und CircularReferences ist nicht im Angebot)
ergibt immer 1 (oder halt 0), egal wie viele ZBs sich auf dem Blatt befinden.
Aber im Prinzip ist es ja auch egal:
Wenn ich in A1 und B1 ZBs habe, wird mir der erste in der Statusleiste angezeigt.
Löse ich ihn auf, wird der zweite angezeigt.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#13
Hi,

wenn man öfters Zirkelbezüge suchen muss, bietet sich der RefTreeAnalyser von JPK an
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top
#14
Hallo

ich weiss nicht, was  der RefTreeAnalyser drauf hat??  Aber selbst wir können "Clever" sein!
Mit dieser Variante bekommt man wirklich alle Zirkelbezüge in allen Tabellen angezeigt. 
Einmal als Msgbox, mit Tabelle und Zelle, und diese Zelle ist durch ein "'" Zeichen als roter Text markiert!


mfg Gast 123

Code:
Sub Zirkelbezüge_finden()
Dim j As Integer, Txt As String
    On Error Resume Next
    For j = 1 To Worksheets.Count
    With Worksheets(j)
neu:   Adr = .CircularReference.Address(, 0)
       If Adr <> "" Then
           If Txt <> "" Then Txt = Txt & vbLf
           Txt = Txt & .Name & "  /  " & Adr
           .Range(Adr).Value = " ' " & .Range(Adr).FormulaLocal
           .Range(Adr).Font.ColorIndex = 3
       End If
    End With
    Next j
    If Txt = "" Then Txt = "Es liegen keine Zirkelbezüge vor"
    MsgBox Txt  'Alle Zirkelbezüge anzeigen
End Sub
Antworten Top
#15
(22.12.2023, 23:21)Gast 123 schrieb: Mit dieser Variante bekommt man wirklich alle Zirkelbezüge in allen Tabellen angezeigt. 

Moin!
No sir!
[wie sich mein Excel 2003 vor 20 Jahren verhalten hat, weiß ich nicht mehr]
Es wird der erste ZB pro Tabellenblatt angezeigt.
(Dass ein einzelnes Blatt durchaus mal 20 ZBs haben kann, dürfte nicht mittels VBA abgearbeitet werden können)

Und da genau dies das hiesige Thema betrifft, bist Du leicht off topic.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#16
Hallo an alle Kollegen

testet bitte noch einmal diese neue Version. Ich will NICHT rechthaberisch sein, es interessiert mich rein technisch ob man Excel legitim austricksen kann. Darin bin ich halt ein sog. "Tüfftelbruder". Ich habe den Code mehrfach getestet. Schliesse aber nicht aus, das er bei den neuen Versionen vielleicht nicht mehr funktioniert.

Ich bin gespannt auf eure Rückmeldung, und wünsche euch ein frohes Weihnachtsfest aus der Ferne.

mfg Gast 123

Code:
Sub Zirkelbezüge_finden()
Dim j As Integer, Txt As String
    On Error Resume Next
    For j = 1 To Worksheets.Count
    With Worksheets(j)
    Do
'      Application.Calculate
       Adr = .CircularReference.Address(, 0)
       If InStr(Txt, .Name & "  /  " & Adr) Then Exit Do
           .Select  'Sheet anzeigen
           Range(Adr).Select: MsgBox Adr
           If Txt <> "" Then Txt = Txt & vbLf
           Txt = Txt & .Name & "  /  " & Adr
           .Range(Adr).Value = " ' " & .Range(Adr).FormulaLocal
           .Range(Adr).Font.ColorIndex = 3
    Loop
    End With
    Next j
    If Txt = "" Then Txt = "Es liegen keine Zirkelbezüge vor"
    MsgBox Txt  'Alle Zirkelbezüge anzeigen
End Sub

Nachtrag  Anbei meine Testdatei, mit wüsten Daten aus diversen Tests.


Angehängte Dateien
.xls   Test 2.xls (Größe: 59,5 KB / Downloads: 6)
Antworten Top
#17
Hallo,

ich habe den Code in einer neu erstellen Datei mit zwei Tabellenblättern unter MS 365 getestet.

Die "eingebauten" Zirkelbezüge wurden gefunden, in Text umgewandelt und farblich hervorgehoben.
Gruß
Peter
Antworten Top
#18
Moin!
Auch von mir die Bestätigung:
Alle selbst erstellten ZBs in einer neuen Datei wurden jetzt gefunden!
Thumps_up

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#19
Hallo an die Kollegen

erst mal frohe Weihnachten und erholsame Feiertage, wünsche ich euch von ganzem Herzen!

Vielen Dank das ihr den Code getestet habt, und er auch in der neuen Excel Version funktioniert.
Ich denke in dieser Form ist er zum schnellen aufspüren von vielen Zirkelbzügen brauchbar.
Danke noch mal für eure Bereitschaft ihn zu testen.

mfg Gast 123
Antworten Top
#20
Hallo Gast 123,

auch Dir und allen Lesern ein Frohes Weihnachtsfest 2023 und eine gesunde Zeit zwischen den Jahren!

So brauchbar Dein Code für die Zirkelbezüge auch sein mag, muss ich doch etwas "bemängeln"! Denn wenn Du Deinen Code (wie ich es grundsätzlich mache!) mit "Option Explicit" eingeleitet hättest, wäre er auf einen Fehler hinausgelaufen! Warum? Die Varibale "Adr" hast du nicht definiert! Diese sollte eigentlich im Dim-Befehl mit "Adr As String" nicht vergessen werden!

Trotzallem einen Guten Rutsch ins Jahr 2024 und weiterhin so aktiv hier im Forum!
[Bild: attachment-190.gif]
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste