Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1008to1012
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

Summenformel Zellbezüge markieren

Summenformel Zellbezüge markieren
08.09.2008 08:38:00
Christian
Hi Leute,
heute möchte ich eine Frage stellen die mich schon eine Zeit lang beschäftigt, für die ich aber leider selber noch keine Antwort gefunden habe.
Ich habe ein Registerblatt in dem einige "Summen-Formeln" stehen, die auf Zellbeüge in anderen Registerblättern (alle in der selben Arbeitsmappe) verweisen. Fast alle Summen-Formeln beziehen ihre Zellbezüge aus nur einem Registerblatt.
Nun ist das Excel in seiner Grundfunktionalität ja so nett und markiert die Zellbezüge einer Formel mit einem bunten Rahmen, damit man sich leichter orientieren kann. Das funktioniert ja in dem man mit der Maus die Formel oben in der Bearbeitungsleiste aktiviert. Allerdings funktioniert das nur, wenn die Formel sich im selben Registerblatt wie die Zellbezüge befindet.
Nun meine Frage:
Hat jemand von euch eine Idee, wie man entweder über eine Excel Basisfunktionalität oder über ein Makro, es fertig bringt, dass man Zellbezüge von Formeln farblich markiert?
Am Besten natürlich wenn man eine Zelle mit einer Formel auswählt und dann einen Button drückt, der dann wiederum alle Zellbezüge von mir aus mit "Gelb" hervorhebt und bei Deaktivierung des Button die Hervorhebung wieder löscht.
Ich habe schon eine ganz schöen Zeit lang nach so einer Funktionalität im Internet gesucht, aber leider nichts gefunden, aber vielleicht kann mir jemand von euch diesbezüglich weiterhelfen.
Danke
lg
Christian

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Summenformel Zellbezüge markieren
08.09.2008 09:22:00
David
Hallo Christian.
Mit der Funktion
ActiveCell.Precedents.Address
bekommst du die Adressen aller "Vorgänger" der aktiven Zelle (im Format z. Bsp. "$N$32:$O$32". (Entspricht in etwa dem Klick auf "Spur zum Vorgänger"). Das müsste man dann mit Textfunktionen zerlegen in Einzeladressen (Doppelpunkt als Trennzeichen?) und diese dann per VBA einfärben.
Ich hab das nicht weiter ausprobiert, weil ich auch nicht so der VBA-Experte bin.
Mit ein bischen Bastelei bekommst du das aber sicher hin.
Gruß
David
AW: Summenformel Zellbezüge markieren
08.09.2008 10:19:00
Christian
Hallo David,
danke einmal für den Tipp.
Das wird sicher eine ganz schöne Bastelei im VBA, vorallem weil ich dank meiner fast nicht vorhandenen VBA Künste da echt probieren (und viel aufzeichnen) muss ;-)
lg Christian
Anzeige
AW: Summenformel Zellbezüge markieren
08.09.2008 11:19:19
David
Wie ich gerade festgestellt habe, liefert der Befehl nur Bezüge auf dem gleichen Tabellenblatt, ist also wahrscheinlich für dich nutzlos.
Eine andere Möglichkeit kenne ich nicht. Das Auslesen der Formel und Zerlegen in die Zellbezüge halte ich aufgrund der vielen verschiedenen Möglichkeiten für nicht realisierbar.
Das ist dann wohl ein Fall für die VBA-Profis.
Gruß
David
AW: Summenformel Zellbezüge markieren
08.09.2008 12:46:05
Christian
Hi David,
Danke für die zusätzliche Info, dann brauch ich auf Grund der neuen Erkenntnis gar nicht erst anfangen ;-)
Vielleicht weiß ja noch wer was zu dem Thema.
Aber vielen Dank erstmal.
lg
Christian
Anzeige
AW: Summenformel Zellbezüge markieren
08.09.2008 14:18:59
David
Hallo Chris,
falls du die Muße hast, dich damit zu beschäftigen, kannst du meinen Code ja weiter ausbauen:

Sub Formelverweise_suchen()
Dim Formel, Bezug_n(100), Buchst1, Buchst2, Blatt, Zelle As String, Zähler, Länge As Integer
Zähler = 0
Worksheets("Tabelle1").Activate
Formel = Range("B7").FormulaLocal 'hier steht die zu analysierende Formel
Länge = Len(Formel)
For i = 1 To Länge
Buchst1 = Mid(Formel, i, 1)
If Buchst1 = ";" Or Buchst1 = "(" Then
For j = 1 To Länge - i
Buchst2 = Mid(Formel, i + j, 1)
If Buchst2 = "(" Then GoTo sprung
If Buchst2 = ")" And i + j  0 Then
Blatt = Left(Bezug_n(k), check - 1)
Zelle = Right(Bezug_n(k), Len(Bezug_n(k)) - check)
MsgBox Blatt
Worksheets(Blatt).Activate
MsgBox Zelle
Range(Zelle).Interior.ColorIndex = 27    'Farbe gelb
End If
Next
End Sub


Ist noch nicht ausgereift, aber man sieht die Herangehensweise. Fehlerbehandlung ist noch nicht eingebaut und ich habe es nur mit wenigen Formel getestet, weiß also nicht, ob das auch mit komplexen Formeln geht. Wenn in der Formel eine Pfadangabe und/oder eine andere Tabelle steht, geht's auch nicht. Die Bezüge innerhalb des aktiven Blatts werden auch nicht ausgelesen, die kannst du dann aber mit dem im ersten Post beschriebenen Befehl auslesen und auswerten.
Außerdem sollte man noch irgendwie berücksichtigen, dass die entsprechenden Zellen vielleicht schon eine Farbe haben, die hinterher wieder hergestellt werden sollte. Auch wenn alle Zellen vorher farblos waren, sollte man einbauen, dass man ein zweites Makro hinterherschickt, was dieses wieder herstellt.
Wie gesagt, als Denkansatz taugts allemal - für mich ist das Thema damit beendet.
Gruß
David

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige