schneller Durchblick fremder Dateien geschlossen 

Status
Für weitere Antworten geschlossen.

Marius4711

Registered +
Registriert
Dez. 2007
Beiträge
86
Moin FSB,

ich muß des öfteren mit Excel-Dateien anderer Kollegen arbeiten. Dabei habe ich mir im Laufe der Zeit ein Makro zugelegt das mir das Arbeiten mit fremden Dateien etwas erleichtert.

Das Problem ist immer die Zeit die man braucht um die fremden Dateien zu verstehen.

Oft muß man wissen wo sind die Formeln und wo sind die Verknüpfungen. Das kann man zwar auch mit Strg-G (Gehe zu ...) erledigen, aber schneller geht es mit einem Makro.

Das Makro schaut wo sind die Formeln und wo sind Verknüpfungen auf andere Dateien und färbt diese dann farblich unterschiedlich ein.
[NFO]Sub Formeln_farblich_formatieren()
Dim zelle As Range
For Each zelle In ActiveSheet.UsedRange
If Left(zelle.Formula, 1) = "=" Then
zelle.Font.ColorIndex = 5
End If
If Left(zelle.Formula, 1) = "=" And InStr(zelle.Formula, "[') > 1 Then
zelle.Font.ColorIndex = 10
End If
If Left(zelle.Formula, 1) = '=' And InStr(zelle.Formula, ''') > 1 Then
zelle.Font.ColorIndex = 7
End If
Next zelle
End Sub[/NFO]

Wenn es interessiert ... Check it out.
 
Nette Idee, wäre ich nicht drauf gekommen, vielleicht kann ichs ja mal gebrauchen. Man könnte, wenn mans braucht, noch eine weitere Abfrage einfügen, falls sich eine Formel auf ein anderes Blatt in der selben Mappe bezieht.

Code:
If Left(zelle.Formula, 1) = "=" And InStr(zelle.Formula, "!") > 1 Then
zelle.Font.ColorIndex = 4
End If

Aber eins verstehe ich nicht. Warum unterscheidest du zwischen [ und ' ? Bei einem Verweis auf eine andere Mappe mit [ muss auch ein Blatt mit '! angegeben werden.

Gruß

FeliX_22

EDIT:
:D
 
@FeliX_22
Du hast völlig recht, deshalb habe ich eine kleine Anpassung vorgenommen.

Code:
Sub Formeln_farblich_formatieren()
Dim zelle As Range
For Each zelle In ActiveSheet.UsedRange
If Left(zelle.Formula, 1) = "=" Then
zelle.Font.ColorIndex = 5
End If
If Left(zelle.Formula, 1) = "=" And InStr(zelle.Formula, "!") > 1 Then
zelle.Font.ColorIndex = 7
End If
If Left(zelle.Formula, 1) = "=" And InStr(zelle.Formula, "[") > 1 Then
zelle.Font.ColorIndex = 10
End If
Next zelle
End Sub
 
Hi Marius4711
Hört sich ganz gut an, aber wie füge ich das Macro ein.
Kannste mir mal einen Tipp dazu geben?
Muß aber dazu sagen, dass ich noch Anfänger bin.

Danke OlliB
 
Mit Alt+F11 kommst du in den Visual Basic Editor. Klick dann im Menü auf Einfügen > Modul. Links im Projektfenster siehst du dann ein Modul1, was schon geöffnet ist und du kannst schon den Code reintippen. Das wars. In Excel könntest du dann den Code schnell ausführen, wenn du auf Entwicklertools > Makros klickst. Wenn du die Entwickertools nicht sehen kannst, aktiviere sie in den Optionen (erste Seite, dritter Punkt).
 
Schau dir auch einmal diese Variante an, vielleicht bringt sie mehr Übersicht. Zumindest ist das die von Excel für solche Zwecke vorgesehene Methode:
Code:
Option Explicit

Sub FormelDetektiv()
Dim Zelle As Range
For Each Zelle In ActiveSheet.UsedRange
If Left(Zelle.Formula, 1) = "=" Then
Zelle.ShowPrecedents
Zelle.ShowDependents
End If
Next
End Sub
Es handelt sich hier un die Funktionalität des (ehemaligen) Detektivs, der in Version 2003 unter Extras > Formelüberwachung zu finden ist. Dort kannst du auch alle Pfeine wieder löschen (oder ein kleines Makro schreiben :) ).
 
Ja stimmt, es gibt ja in Excel so eine Funktion schon integriert. :depp:

Aber warum ehemaliger Detektiv? Die Funktionen finden sich alle im Reiter Formeln in der Gruppe Formelüberwachung. (Ok, es heißt nicht mehr Detektiv.)

Na ja, der Vorteil des ersten Scripts ist, dass die Zellen direkt formatiert werden. Ich sehe da schon einen Unterschied in der Übersichtlichkeit. Dein Script cpt. Nemo könnte bei vielen Formeln zu ziemlich vielen Linien kreuz und quer über das ganze Blatt führen. Es kommt darauf an. Andererseits zeigt dein Script nicht nur an, dass sondern auch worauf sich die Formel bezieht.

Gruß

FeliX_22
 
Viele Wege führen nach Rom.

Klar das Makro von cpt. Nemo ist ebenfalls eine gute Möglichkeit sich einen Überblick über die Beziehungen der Formeln untereinander zu verschaffen. Bei großen mit Formeln vollgestopfen Tabellen wird es aber schnell sehr unübersichtlich und ich habe festgestellt auch sehr langsam. Ich persönlich finde meine Variante augenfreundlicher.

Danke für dieses Makro. Mein Script ist sozusagen eine Lightversion von der von cpt. Nemo geposteten Vollversion. :D

Ich werde dieses Makro von cpt. Nemo jedenfalls künftig auch einsetzten.
Besten Dank dafür. Sehr hilfreich!!!!
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben Unten