Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zellen einer Formel markieren

Zellen einer Formel markieren
Holger
Hallo Excelaner,
mein Problem heute kling ganz einfach. Ich habe in einer bestimmten Zelle (sagen wir B3) eine Formel (z. B. =summe(a5:A9)).
Ich möchte nun, dass die Zellen A5 bis A9 farbig markiert sind. Das soll sich natürlich auch ändern, wenn ich den Zellbezug in der Formel ändere.
Kann jemand helfen?
Eiserne Grüße
Holger

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Formeln - Spur zum Vorgänger (owT)
10.12.2010 14:51:38
Renee

AW: Formeln - Spur zum Vorgänger (owT)
10.12.2010 15:00:05
chris
Hallo Holger,
so könntest Du den Breich der Formel auslesen und den Bereich färben.
Was natürlich noch abgefragt werden muss ist wo der alte Bereich war bzw. ob der alte Formelbereich wieder zurückgefärbt werden soll.
Option Explicit
Dim cb
Sub test()
cb = WorksheetFunction.Substitute(Cells(3, 2).Formula, "=SUM", "")
Range(cb).Interior.ColorIndex = 3
End Sub

wie bitte? (8 Jahre Forumserfahrung?) ...
10.12.2010 15:05:24
Renee
Chris b.,
Das soll wohl keine Antwort auf meinen Vorschlag sein ?
Überleg dir mal, was bei deinem Vorschlag passiert, wenn statt einer simplen Range-Adresse, etwas anderes (z.B. eine weitere Formel) in der Summenformel steht!
GreetZ Renée
Anzeige
Vorgängerzellen per VBA einfärben
10.12.2010 15:17:40
NoNet
Hallo Holger,
wenn immer nur die gleiche Zelle (z.B. B3) geprüft werden soll, dann funktioniert folgende Lösung :
Gib in ein Modul (z.B. "Modul1") folgende Codezeile ein (globale Variable zum Speichern der Bezugszellen der "alten" Formel/Funktion aus Zelle B3) :
Public rngAlterBereich As Range
Gib in das Klassenmodul des Tabellenblattes der Zelle B3 folgenden Code ein :
Private Sub Worksheet_Change(ByVal Target As Range)
'Vorgaengerzellen einfärben
Dim rngZ As Range, rngFormelZelle As Range
Set rngFormelZelle = [B3] 'diese Zelle wird überprüft
If Not Intersect(Target, rngFormelZelle) Is Nothing Then
If Not rngAlterBereich Is Nothing Then rngAlterBereich.Interior.ColorIndex = xlNone
On Error Resume Next 'Falls keine Bezüge in Formel/Funktion :
If rngFormelZelle.HasFormula Then
For Each rngZ In rngFormelZelle.Precedents
'MsgBox rngZ.Value, , rngZ.Address
'oder auch : farblich markieren
rngZ.Interior.ColorIndex = 4 'Grün färben
If rngAlterBereich Is Nothing Then
Set rngAlterBereich = rngZ
Else
Set rngAlterBereich = Union(rngAlterBereich, rngZ)
End If
Next
End If
End If
End Sub
Gruß, NoNet
Anzeige

344 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige