Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1180to1184
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

Vorgänger markieren

Vorgänger markieren
strodti
Hallo liebes Forum,
es gibt ja die tolle Funktion "Spur zum Vorgänger bzw. Nachfolger". Ich würde ganz gern, wenn ich eine beliebige Zelle selektiere, dass alle direkten Vorgänger bzw. Nachfolger (also nur den Bezug davor bzw. danach) farblich verschieden markiert werden, um gleich optisch den Zusammenhang zu sehen. Die Linien und Punkte der Standardfunktion sind zwar ok, aber bei umfangreichen Formeln doch tlw. sehr "verstrickt".
Habe im Netz schon einen code für den Vorgänger gefunden, jedoch funktioniert der bei mir nicht (!?)
Option Explicit
Public Sub test()
On Error Resume Next
If Not ActiveCell.DirectPrecedents Is Nothing Then _
ActiveCell.DirectPrecedents.Interior.ColorIndex = 3
End Sub
Kann mir jemand hierbei helfen, den Code zum laufen zu bringen und um den Nachfolger (DirectDependents)zu ergänzen, da meine VBA Kenntnisse hierfür doch noch nicht ausreichend sind. Der Makrorecorder war leider auch nicht ergiebig.
MfG
Tobias
AW: Code funtioniert
14.10.2010 12:23:31
Dieter
Hi Tobias,
der Code funktioniert! Du nusst die Zelle aktivieren, die z.B. ein Summierung enthält. Dann Makro aufrufen und die Zellen werden rot markiert.
Gruss, Dieter (Drummer)
AW: Code funtioniert
14.10.2010 12:31:51
strodti
Hallo Dieter,
vielen Dank für den Hinweis mit Makro aufrufen - hätte ich auch selbst drauf kommen können und müssen! Hatte den Code so verstanden, dass wenn die Zelle selektiert ist automatisch die Vorgänger markiert werden. Ist das möglich, auch mit der Erweiterung der eventuellen Nachfolger?
Gruß,
Tobias
AW: Code funtioniert auch Nachfolger. Nur ...
14.10.2010 12:41:35
Dieter
Tobias,
Du musst nur "Precedents" durch "Dependents" (in den 2 Zeilen) ersetzen. Mac daraus ein 2, Makro, dann kannst Du mal den Vorgänger und mal den Nachfolger anzeigen.
Habe nicht viel Ahnung von VBA aber habs einfach mal ausprobiert. Es funktioniert.
Gruss, Dieter (Drummer)
Anzeige
AW: Es geht auch in einem Makro
14.10.2010 12:47:07
Dieter
Hier das geänderte Makro:
  • 
    Public Sub test()
    On Error Resume Next
    If Not ActiveCell.DirectPrecedents Is Nothing Then _
    ActiveCell.DirectPrecedents.Interior.ColorIndex = 3
    If Not ActiveCell.DirectDependents Is Nothing Then _
    ActiveCell.DirectDependents.Interior.ColorIndex = 3
    End Sub
    

  • Gruss, Dieter (Drummer)
    AW: Code funtioniert auch Nachfolger. Nur ...
    14.10.2010 12:50:27
    strodti
    Hallo Dieter,
    erstmal vielen Dank, dass Du Dich meiner annimmst.
    Das mit dem Ersetzen habe ich auch hinbekommen. Aber ich dachte eher daran, dass zeitgleich der bzw. die Vorgänger und Nachfolger einer Zelle markiert werden- und zwar wenn ich die Zelle selektiere, also ohne das Makro ausführen zu müssen. Beim selektieren einer anderen Zelle sollen dann deren Vorgänger/Nachfolger markiert werden etc. Bin der Meinung das ist ein Change- oder ClickEreignis!?
    Gruß,
    Tobias
    Anzeige
    AW: Ist was für Profis
    14.10.2010 12:55:55
    Dieter
    Hi Tobias,
    da kann ich Dir leider nicht weiterhelfen. Das ist was für VBA Profis, die sich ja evtl. noch melden.
    Gruss, Dieter (Drummer)
    AW: noch offen
    14.10.2010 12:57:57
    strodti
    Dieter - dennoch vielen Dank für Deine Hilfe und noch einen schönen Tag.
    Gruß Tobias
    AW: Danke für Rückmeldung. owT
    14.10.2010 13:02:46
    Dieter
    = ohne weiteren Text
    AW: Code funtioniert
    14.10.2010 13:13:30
    welga
    Hallo,
    schreibe folgenden Code ins Arbeitsblatt:
    Private Sub worksheet_selectionchange(ByVal target As Range)
    Dim rg As Range
    Application.EnableEvents = False
    For Each rg In ActiveSheet.UsedRange
    With rg.Interior
    .Pattern = xlNone
    .TintAndShade = 0
    .PatternTintAndShade = 0
    End With
    Next
    If Not Intersect(ActiveCell, target) Is Nothing Then
    On Error Resume Next
    If Not ActiveCell.DirectPrecedents Is Nothing Then _
    ActiveCell.DirectPrecedents.Interior.ColorIndex = 3
    If Not ActiveCell.DirectDependents Is Nothing Then _
    ActiveCell.DirectDependents.Interior.ColorIndex = 10
    End If
    Application.EnableEvents = True
    End Sub
    

    Ist zumindest mal ein Vorschlag meinerseits
    Anzeige
    AW: Code funtioniert
    14.10.2010 13:22:41
    strodti
    Hallo Welga,
    erstmal vielen Dank für Deine Antwort.
    1. Bekomme Laufzeitfehler xxxx und markiert mir die Zeile .TintAndShade = 0,
    2. kann diesen Fehler leider nicht reproduzieren, da nun nichts mehr passiert!? (sonst könnte ich 1. genauer ausführen)
    Gruß,
    Tobias
    AW: Code funtioniert
    14.10.2010 13:32:06
    welga
    Hallo,
    ich denke es hängt damit zusammen, dass Office2003 den Befehl noch nicht kennt. Du kannst die Zeilen rauslöschen.
    Dass nichts mehr passiert hängt damit zusammen, dass deine Events durch den Abbruch noch deaktiviert sind.
    Überschreibe den Code mit folgendem:
    Dim a As Boolean
    Sub anschalten()
    Application.EnableEvents = True
    If a = False Then
    a = True
    Else
    a = False
    For Each rg In ActiveSheet.UsedRange
    rg.Interior.Pattern = xlNone
    Next
    End If
    End Sub
    

    Private
    
    Sub worksheet_selectionchange(ByVal target As Range)
    Dim rg As Range
    If a Then
    Application.EnableEvents = False
    For Each rg In ActiveSheet.UsedRange
    rg.Interior.Pattern = xlNone
    Next
    If Not Intersect(ActiveCell, target) Is Nothing Then
    On Error Resume Next
    If Not ActiveCell.DirectPrecedents Is Nothing Then _
    ActiveCell.DirectPrecedents.Interior.ColorIndex = 3
    If Not ActiveCell.DirectDependents Is Nothing Then _
    ActiveCell.DirectDependents.Interior.ColorIndex = 10
    End If
    End If
    Wenn du nun das Makro anschalten z.B. über eine Tastenkombination ausführst, dann kannst du wie  _
    mit dein Selection-Event auch an- bzw. ausschalten. Ich denke, dass es sonst nervig wird, dass immer alles gefärbt wird.
    Wichtig ist, dass dim a as boolean über allen Codes steht, sodass der Wert übergeben wird.
    
    Anzeige
    AW: siehe Anhang
    14.10.2010 13:46:50
    strodti
    Danke für die Beispieldatei - und ja, genauso stelle ich es mir vor. Nur funktioniert es bei mir nicht. Ich habe Deinen Code kopiert, und via Extras... das Makro ausgeführt. Aber es färbt sich nichts.
    Und überhaupt - wo steht denn jetzt in Deinem Beispiel, das der Code mit STRG+G ausgeführt wird? Ich kenne das nur über den Makrorecorder, dass das mit im Code steht!
    Ich glaube meinen VBA-Status muss ich dringend überdenken.
    Gruß,
    Tobias
    AW: ... hilfe...
    14.10.2010 13:41:25
    strodti
    ...anscheinend stehe ich heute komplett neben mir. Markiert wird nichts, Fehlermeldung erhalte ich auch nicht. Habe über Extras-Makro-Makros ausführen "eingeschaltet".
    Muss ich meine Events noch wieder aktivieren - wenn ja - wie?
    Wäre super, wenn Du mir ferner helfen könntest.
    Gruß,
    Tobias
    Anzeige
    AW: War nicht Fragender ...
    14.10.2010 13:43:04
    Dieter
    Hi Welga,
    ich war nicht Fragender habe aber aus Interesse deinen neuen Code ausprobiert. Klappt PRIMA.
    Danke! Konnte wieder was dazu lernen.
    Gruss, Dieter (Drummer)
    AW: Was machst Du anders?
    14.10.2010 13:48:33
    strodti
    Hi Dieter,
    was machst Du anders (besser) als ich?
    So langsam zweifle ich an mir.
    Gruß,
    tobias
    AW: Makroaufruf ...
    14.10.2010 13:57:40
    Dieter
    Hi Tobias,
    hoffe, dass Welga nicht verärgert ist, da ich eine Info dazu gebe.
    Der Makroaufruf STR+g ist zu finden: EXTRAS/MAKRO- Dort das Makro Test markieren. Dann siehst Du unter OPTIONEN die Eingabe: TASTEN Kombination STR+g.
    Nun kannst Du mit STR+g das Makro einschalten. Dann gehst Du auf die Zellle des Nachfolgers etc.
    Gruss, Dieter (Drummer)
    Anzeige
    AW: Makroaufruf ...
    14.10.2010 14:02:26
    welga
    yupp. genau
    AW: Makroaufruf ...
    14.10.2010 14:07:11
    strodti
    Hi Dieter,
    nochmals vielen Dank. War mir noch nie aufgefallen.
    Beste Grüße,
    Tobias
    AW: Code funktioniert
    14.10.2010 13:55:41
    strodti
    Hallo Welga,
    habe jetzt eine neue Beispielmappe erstellt - und da funktioniert Dein Code. Vermutlich waren in der anderen Mappe, wie Du sagtest, die Events deaktiviert (wie auch immer ich diese wieder aktiviere).
    Mann, das war heute aber eine schwere Geburt. Vielen Dank für Deine Mühen und Geduld.
    Einen lieben Gruß
    Tobias
    ... bitte owT
    14.10.2010 14:06:36
    welga
    AW: TintAndShade...
    14.10.2010 13:26:42
    strodti
    Hallo Welga,
    habe gerade recherchiert, dass .TintAndShade wohl erst ab Excel 2007 zur Verfügung steht - ich habe Excel 2003.
    MfG
    Tobias
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige