Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
740to744
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
740to744
740to744
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

isFormulaInRange oder so !?

isFormulaInRange oder so !?
07.03.2006 17:35:10
torsten
hallo,
ich möchte einen bereich einer excel-datei immer vor dem speichern darauf überprüfen, ob dort ausschließlich formeln beginnend mit "=" oder "{=" enthalten sind. nun, ich könnte dies sicher aller
for each cell in range
if not left(cell,1) = "=" or not left(cell,2) = "{=" then
msgbox "hinweis, dass formel fehlt": end
end if
next
lösen, aber da gibt es doch sicher was einfacheres, oder ?
ich meine mich an eine funktion zu erinnern, die überprüft, ob der inhalt eine Formel oder ein wert ist. kann mich aber auch irren.
gruß, torsten

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: isFormulaInRange oder so !?
07.03.2006 17:46:40
Reinhard
Hi Torsten,
wie wärs mit
Specialcells
HasFormula
?
Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
AW: isFormulaInRange oder so !?
07.03.2006 18:54:46
torsten
die funktion scheint genau das zu liefern, was ich möchte, ABER
wenn ALLE zellen des bereichs eine formel haben, dann gibt es ein TRUE
wenn KEINE zelle des bereich eine formel hat, dann gibt es ein FALSE
sonst ist der wert NULL
soweit so gut, der bereich soll ja gerade darauf überprüft werden, ob entw. keine formel in gesamten bereich (False) oder keine formel in nur einer zelle des gesamten bereichs (Null) enthalten ist, ABER
if selection.hasformula = null then
ODER
if selection.hasformula is null then
ODER
if selection.hasformula true then
ODER
if selection.hasformula =/is null or selection.hasformula = false then
schlägt jeweils fehl, wenn der wert Null ist. DER WERT DARF NICHT False oder Null SEIN. was mach ich denn da falsch ? entw. sitz ich heut wiedermal zulang vor der kiste oder ich versteh hier was nicht.
torsten
Anzeige
AW: isFormulaInRange oder so !?
07.03.2006 19:13:32
Reinhard
Hi Torsten
wie man auf "null" prüft gelingt mir auch nicht, vielleicht langt es so:
Option Explicit

Sub tt()
Dim Bereich As Range
Set Bereich = Range("A1:A3")
Select Case Bereich.HasFormula
Case True
MsgBox "true"
Case Else
MsgBox "else"
End Select
End Sub

Und im Elsezweig vielleicht alle Zellen des bereichs rot färben, dann mit specialcells alle Zellen mit Formeln weiß.
Specialcells ist recht heikel wenn es keine Zellen findet.
Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Anzeige
AW: isFormulaInRange oder so !?
07.03.2006 19:10:10
Ramses
Hallo
ohne eine schleife geht es nicht.
Option Explicit

Sub CheckFormula()
    Dim pruefRng As Range, myC As Range
    Dim pruefCount As Long, tmpCount As Long
    Dim pruefResult As Variant
    Dim Qe As Long
    'Entweder variabel
    On Error Resume Next
    Set pruefRng = Application.InputBox("Bitte markieren Sie den Bereich der geprüft werden soll", "Formelprüfung", "$A$1:$C$10", Type:=8)
    If pruefRng Is Nothing Then
        Qe = MsgBox("Prüfung kann nicht durchgeführt werden", vbCritical + vbOKOnly, "Abbruch")
        Exit Sub
    End If
    On Error GoTo 0
    '...oder fix
    'Set pruefRng = Worksheets("Tabelle1").Range("A1:C10")
    tmpCount = 0
    pruefCount = pruefRng.Cells.Count
    For Each myC In pruefRng
        If myC.HasFormula Then
            tmpCount = tmpCount + 1
        End If
    Next
    If tmpCount = pruefRng.Cells.Count Then
        pruefResult = "Alle Zellen haben Formeln" 'oder True
    ElseIf tmpCount = 0 Then
        pruefResult = "Keine der Zellen enthält eine Formel" 'oder False
    Else
        pruefResult = "Einzelne Zellen enthalten keine Formeln" 'oder 0
    End If
    MsgBox "Prüfung durchgeführt. Ergebnis: " & vbCrLf & pruefResult
End Sub

Gruss Rainer
Anzeige
AW: isFormulaInRange oder so !?
07.03.2006 21:15:28
MichaV
Hallo,
so gut genug?

Sub Testen()
Const derBereich = "A1:B10"
On Error Resume Next
Debug.Print Range(derBereich).SpecialCells(xlCellTypeFormulas).Count
If Err.Number > 0 Then MsgBox "keine Formeln gefunden": Exit Sub
On Error GoTo 0
If Range(derBereich).SpecialCells(xlCellTypeFormulas).Count <> Range(derBereich).Cells.Count Then MsgBox "weniger Formeln als Zellen": Exit Sub
MsgBox "alles Gut!"
End Sub

Gruß- Micha
PS: Rückmeldung wäre nett.
PPS: @Ramses, wenn was gegen diese ohne-Schleifen-Lösung spricht, dann bitte kurze Info. Hab mich damit noch nie beschäftigt und kenne vielleicht einige Unsicherheiten noch nicht (siehe OE-Forum)
Anzeige
AW: isFormulaInRange oder so !?
07.03.2006 21:22:48
Ramses
Hallo Micha
Grundsätzlich natürlich nicht.
Der Knackpunkt warum ich mich auf die Schleife versteift habe, dass er in der GLEICHEN Variable DREI unterschiedliche Rückgabewerte haben wollte
X = True = ALLE Formeln
X = False = Keine Formeln
X = 0 = Teilweise Formeln
Mit einer einfachen Auswertung bin ich da auf keinen Grünen Zweig gekommen,... zumindest keinen der diesen "gemeinen" ;-) Debug.Print-Schachzug ersetzen könnte ;-)
Gruss Rainer
AW: isFormulaInRange oder so !?
07.03.2006 21:30:18
MichaV
Hallo Rainer,
SpecialCells scheint aber wirklich total krank zu sein. Oder ich hab überhaupt keine Ahnung davon. Schon wieder was, was ich nicht verstehe....
Gruß- Micha
Anzeige
AW: isFormulaInRange oder so !?
07.03.2006 23:18:55
Werner
Hi,
SpecialCells haben in UDF noch nie funktioniert.
mfg Werner
AW: isFormulaInRange oder so !?
08.03.2006 11:49:38
torsten
die obige sehr kurze variante funktioniert sehr gut.
vielen dank an alle
euer torsten

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige