Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
844to848
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
844to848
844to848
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Formeln mit Konstanten finden via VBA

Formeln mit Konstanten finden via VBA
20.02.2007 16:24:08
Andreas
Hallo zusammen,
kann mir einer von euch beantworten, ob und vor allem wie es möglich ist mittels VBA zu prüfen, in welchen Zellen in einem Arbeitsblatt Formeln mit Harteingaben vorhanden sind? Wenn also in A1 stünde =B1+14, dann möchte ich diese Zelle finden, wenn dort steht =14, dann nicht und wenn dort nur eine Formel steht,a lso =B1, dann auch nicht.
Vielleicht weiß ja einer von euch Rat!
Danke schonmal vorab!
Grüße
Andreas

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

Betreff
Datum
Anwender
Anzeige
AW: Formeln mit Konstanten finden via VBA
20.02.2007 18:22:00
Hubert
Hi,
wenn du einen Hinweis auf den Verwendungszweck geben würdest,
gibt es ggf. einen alternativen Weg, oder ist es nur Denksport?
mfg Hubert
AW: Formeln mit Konstanten finden via VBA
20.02.2007 18:40:57
Coach
Hallo Andreas,
folgender Code markiert Zellen, die mindestens einen Zellbezug und eine Konstante enthalten:
Option Explicit

Sub MarkiereFormelnMitKonstanten()
Const Operatoren = "=^&/()*+<>-"
Dim r As Range, Formeln As Range, Formel As Variant, AnzBezuege As Long, AnzKonstanten As Long, i As Long
On Error Resume Next
Application.ScreenUpdating = False
Set Formeln = Nothing
Set Formeln = ActiveSheet.UsedRange.SpecialCells(xlCellTypeFormulas)
If Formeln Is Nothing Then Exit Sub
With Formeln.Interior
.ColorIndex = 0
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
For Each r In Formeln
Formel = r.Formula
AnzBezuege = 0: AnzKonstanten = 0
'offen: Konstanten in Namen vorher ersetzen
For i = 1 To Len(Operatoren)
Formel = Replace(Formel, Mid(Operatoren, i, 1), ",")
Next
Formel = Split(Formel + ",", ",", -1, vbTextCompare)
For i = LBound(Formel) To UBound(Formel) - 1
If Formel(i) <> vbNullString Then
If IsRange(Formel(i)) Then
AnzBezuege = AnzBezuege + 1
ElseIf IsNumeric(Formel(i)) Then
AnzKonstanten = AnzKonstanten + 1
End If
End If
Next
If AnzKonstanten > 0 And AnzBezuege > 0 Then r.Interior.ColorIndex = 36
Next
Application.ScreenUpdating = True
End Sub


Function IsRange(ByVal Bezug$) As Boolean
'offen: Bezüge zu verknüpften Dateien
On Error Resume Next
IsRange = False
IsRange = IsObject(Range(Bezug))
End Function

Einschränkungen als Kommentar angegeben.
Gruß Coach
Anzeige
AW: Formeln mit Konstanten finden via VBA
21.02.2007 11:14:06
Andreas
Hallo Coach,
vielen Dank, ich denke, das ist genau das was ich gesucht habe, habe es noch nicht antesten können, aber vom Lesen des Quelltexts her sollte es passen.
Danke nochmal und Grüße
Andreas
AW: Formeln mit Konstanten finden via VBA
21.02.2007 12:09:00
Coach
Hallo Andreas,
habe vergessen darauf hinzuweisen, dass der Code nicht "textsicher" ist, d.h. keine Textkonstanten erkennt und auch Trennzeichen in Text nicht ignoriert werden. Falls notwendig bitte selbst anpassen oder kurze Info.
Gruß Coach
AW: Formeln mit Konstanten finden via VBA
22.02.2007 11:07:02
Andreas
Hallo Coach,
alles klar, werde ich mir mal ansehen und ggf. noch anpassen/erweitern. Als Denkanstoß und Basis hilft mir das aber schon recht gut weiter.
Danke und Grüße
Andreas
Anzeige

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige