Funktionen höherer Version nachprogrammieren

Bild

Betrifft: Funktionen höherer Version nachprogrammieren
von: Steffen
Geschrieben am: 09.11.2015 09:26:42

Hallo zusammen,
mein Problem ist folgendes:
Ich möchte Zellen in Abhängigkeit davon formatieren, ob sie eine Formel enthalten oder nicht. Soweit - so gut.
Zum Problem wird es erst dadurch, dass ich die Datei unter Excel 2010 und Excel 2013 bearbeiten will. Excel 2013 hat die Funktion "IstFormel" eingebaut, Excel 2010 nicht.
Wenn ich diese Funktion für die 2010er Version nachprogrammiere, funktioniert das nicht. Excel 2010 zeigt da nur "_xlfn.ISTFORMULA(xx)" an.
Wenn ich meine eigenprogrammierte Funktion ganz anders nenne, rödelt Excel 2013 bei jeder Zellenänderung ewig 'rum, ohne die Formatierung anzuzeigen.
Schön wäre, wenn es eine Möglichkeit gäbe, dass diese Funktionalität in beiden Versionen gut funktioniert.
Jetzt habe ich zwei Fragen:

  • Gibt es im VBA für Excel eine Möglichkeit, bestimmte Statements in Abhängigkeit der VBA-Version zu kompilieren (wie in höheren Programmiersprachen) ?
    Dann könnte ich versuchen, die Funktion versionsbezogen nachzuprogrammieren.

  • Oder gibt es für mein Problem eine ganz andere Lösung. Schließlich gibt es das Problem vom Grund her schon immer...

  • mfg. Steffen

    Bild

    Betrifft: AW: Funktionen höherer Version nachprogrammieren
    von: Rudi Maintaire
    Geschrieben am: 09.11.2015 09:35:27
    Hallo,
    nimm doch einen eigenen Funktionsnamen.
    Bsp.:

    Function IstFormelA(r As Range)
      If r.Count = 1 Then
        IstFormelA = r.HasFormula
      Else
        IstFormelA = "#ERROR#"
      End If
    End Function
    Gruß
    Rudi

    Bild

    Betrifft: AW: Funktionen höherer Version nachprogrammieren
    von: EtoPHG
    Geschrieben am: 09.11.2015 09:57:01
    Hallo Steffen,
    Zitat: Gibt es im VBA für Excel eine Möglichkeit, bestimmte Statements in Abhängigkeit der VBA-Version zu kompilieren VBA Code wird interpretiert, und kompiliert heisst in diesem Zusammenhang nur "Syntaktisch OK" . Abhängig von der der XL-Version VBA Code auszuführen heisst zwar in der Hilfe "Bedingte Kompilierung" meint aber "Bedingte Ausführung".
    Mit VB (ohne das A) kannst du z.B. COM-AddIns kompilieren und in XL einbinden.
    Zitat:...meine eigenprogrammierte Funktion ganz anders nenne, rödelt Excel 2013 ... dazu müsste man den Code schon zu sehen bekommen.
    Ein Lösung für 2010 wäre der Rückgriff auf die uralt-Excel4 Version zu Feststellung, ob eine Zelle eine Formel enthält, via definiertem Benutzernamen und der bedingten Formatierung über

    =ZELLE.ZUORDNEN(48;INDIREKT("ZS";FALSCH))

    Gruess Hansueli

     Bild

    Beiträge aus den Excel-Beispielen zum Thema "Funktionen höherer Version nachprogrammieren"