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

FormulaLocal

FormulaLocal
18.12.2021 23:45:42
Siegfried
Ich benötige wieder einmal eure Hilfe!
Da ich über die, von mir im WEB gefundenen VBA Formeln leider immer ein falsches Ergebnis bekomme,
  • letztezeile = ActiveSheet.Cells(1048576, 4).End(xlUp).Row 'Ab Excel 2007
  • oder
  • letztezeile = ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row

  • habe ich mal versucht das Problem über eine Formel in der besagten Zelle zu lösen. Ja hier bekam ich das richtige Ergebnis!
  • =AGGREGAT(14;4;(D:D"")*ZEILE(D:D);1)

  • Sagte mir dann, dann schreibe ich mit VBA diese Formel über FormulaLocal eben nach T1 und lese das Ergebnis dann von dort aus.
  • Range("T1").FormulaLocal = "=AGGREGAT(14;4;(D:D"")*ZEILE(D:D);1)"

  • Funktioniert mir aber leider nicht der Eintrag und komme aber auch nicht drauf wieso und kann auch leider nicht sagen was der Laufzeitfehler'1004' bedeutet und aussagt?
    Die Abfragen "letztezeile" zeigen immer um zwei Zeilen zu viel an, siehe dazu bitte die Bilder, hoffe es stört sich nicht wieder gleich wer daran!
    Gruß Siegfried
    Userbild
    Userbild
    Userbild
    Userbild

    15
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    Typischer A-Fehler, ...
    19.12.2021 00:02:52
    Luc:-?
    …Siegfried;
    innerhalb eines Text-Strings - hier die Fml - müssen zu diesem gehörige " verdoppelt wdn, sonst endet mit dem 1." ggf der bisherige String und mit dem 2. fängt ein neuer an, der nun nicht mehr an den vorherigen angebunden ist und damit zu einem SyntaxFehler führt. Hier ist es aber eher so, dass die Fml auf dem Blatt statt "" nur noch ein " enthält, was dort nun wiederum einen fml-internen Text einleitet, zu dem dann der Abschluss fehlt.
    Morhn, Luc :-?
    „Die universelle Befähigung zur Unfähigkeit macht jede menschliche Leistung zu einem unglaublichen Wunder.“ Stapps ironisches Paradoxon
    Anzeige
    AW: Typischer A-Fehler, ...
    19.12.2021 09:23:23
    Siegfried
    Hallo Luc!
    DANEKE für deine Rückmeldung!
    Wie sagt man doch so, kleine Ursache große Wirkung. Jetzt funkt es jedenfalls, nur was ich nicht verstehe wieso sind die beiden VBA Abfragen nicht in der Lage auf das gleiche Ergebnis zu kommen. Denn der nun von mir gewählte Weg ist ja doch etwas umständlich da ich den in T1 über die Formel eingetragenen Wert ja dann wieder entfernen muss, darf nicht in den dann erfolgenden *.csv - Export mit hinaus geschrieben werden.
    Mit den beiden anderen VBA - Formeln bekomme ich in diesem Beispiel immer um zwei Zeilen mehr als Ergebnis?
    LG Siegfried
    Anzeige
    Lade doch mal die Excel-Datei hoch
    19.12.2021 10:14:29
    RPP63
    ohne Text
    Gruß Ralf
    AW: Lade doch mal die Excel-Datei hoch
    19.12.2021 13:54:27
    Daniel
    Hi
    Es gibt in Excel die Möglichkeit, dass eine Zelle leer aussieht, aber nicht leer ist.
    Dann enthält sie den Text Leerstring bzw "". So eine Zelle ist nicht leer, sondern enthält einen Text.
    Sowas kommt vor, wenn du Formeln mit dem Ergebnis "" kopierst und als Wert einfügst, oder bei Textimporten.
    Der Sprung mit Ende(xlUp) wird so eine Zelle als Zelle mit Inhalt erkennen und hier stoppen.
    Deine Prüfung mit ~f~ D:D"" ~f~ wird dedoch ein Falsch ergeben.
    Wenn ich in VBA in solchen Tabellen die letzte Zelle mit echtem Inhalt suche, verwende ich
    
    Range("D:D").Find(what:="*", lookin:=xlvalues, searchdirection:=xlprevious).row
    
    Gruß Daniel
    Anzeige
    AW: Lade doch mal die Excel-Datei hoch
    20.12.2021 14:05:21
    Siegfried
    Hallo Daniel,
    DANKE für deinen Beitrag und den Lösungsvorschlag, funktioniert bestens damit!
    Ich Frage mich nur, wenn es dieses Forum und Euch als die stillen Helferlein nicht geben würde, wie und vor allem wann und wo hätte ich diese Lösung gefunden.
    Du kannst mir glauben, habe stundenlang im WEB gesucht und alles mögliche durchprobiert, mir Ausnahme der Formel in meinem ersten Beitrag, wo mich die Umsetzung, diese per VBA hinein zu schreiben etwas gefuchst hat, brachten mit Ausnahme deines Vorschlages, welchen ich nirgendwo im WEB gefunden habe, alle anderen nicht die richtige Lösung!!!
    Nochmals ein DANKE, LG Siegfried
    Anzeige
    Feedback
    20.12.2021 14:21:10
    Daniel
    Danke für dein Feedback.
    Kleiner Tipp am Rande:
    Bevor du einen Haken im Internet setzt, solltest du auch lesen was daneben steht, damit du weißt, was dieser Haken bedeutet.
    Sich hier auf die Intiution verlassen kann trügerisch sein.
    Gruß Daniel
    AW: Feedback
    20.12.2021 14:44:38
    Siegfried
    Gerade als ich auf Absenden drückte sah ich den gesetzten Haken, war schon zu spät!
    Gruß Siegfried
    AW: Lade doch mal die Excel-Datei hoch
    20.12.2021 23:14:52
    Siegfried
    Hallo Daniel,
    hätte da noch eine Frage zu deinem VBA-Befehl
  • Range("D:D").Find(what:="*", lookin:=xlvalues, searchdirection:=xlprevious).row

  • lässt sich der als normale Formel in einer Zelle auch ausführen und wie müsste die Abfrage dann lauten?
    LG Siegfried
    Anzeige
    Ja, als UDF: User Defined Formula
    22.12.2021 10:38:05
    Yal
    Hallo Siegfried,
    legt den Code in einem Modul in einer Funktion, dann kannst Du =FindeInD()" als Formel in einem Blatt verwenden
    
    Public Function FindeInD() As Long
    On Error Resume Next 'weil der Find könnte Nothing zurückgeeb, worauf ".Row" ein Fehler erzeugt
    FindeInD = Range("D:D").Find(what:="*", LookIn:=xlValues, searchdirection:=xlPrevious).Row
    End Function
    
    Aber es wurde nichts anderes liefern als die erste befüllte Zeile in Spalte D.
    VG
    Yal
    OT: UDF = 'User Defined Function'! owT
    22.12.2021 13:15:44
    Luc:-?
    :-?
    OT: ja, ich weiß, aber...
    22.12.2021 18:54:03
    Yal
    ... gibt es in VBA Functionen, die nicht User Defined sind? (ich meine dabei, die die man selber schreibt. Split gehört z.B. nicht dazu)
    Daher denke ich, es ist sprechender "User Defined Formula" zu verwenden, auch wenn es nicht ganz der offiziellen Begriff ist. Es ist auch naheliegend, wenn man in der Satz danach immer sagt, dass diese als Formel im Blatt zu verwenden seien.
    Man redet auch von intelligente Tabelle, die von MS gar so benannt worden sind.
    VG
    Yal
    Anzeige
    OT: Von 'intelligenten Tabellen' ...
    22.12.2021 20:34:38
    Luc:-?
    …spreche bspw ich nie, Yal,
    denn ein jedes Huhn ist intelligenter als eine Tabelle, die höchstens intelligent gemacht sein kann. Ich verwende stattdessen den Begriff definierte Tabelle, denn der trifft es eher.
    Mit einer UDF ist es ähnlich. Zwar sind alle selbstgeschriebenen Fktt in VBA quasi user defined, aber in VBA sind sie einfach nur Fktsprozeduren (function procedures), die formal den eigentlichen VBA-Fktt gleichgestellt sind und bei Standort in einem allgemeinen Modul (~.bas) genausowenig per 2.Parameter der vbMethode CallByName erreicht wdn können wie Letztere, da dafür so das als 1.Parameter benötigte Objekt fehlt (bei Standort in einem KlassenModul ist diese Objekt für eine UDF aber idR vorhanden!). Der Terminus u.d.f. bezieht sich folglich nur auf die Anwendung in einer Xl-Zell-Fml und ist dort den Xl-Standard Fktt gleichgestellt. Dass dabei schon ein einziger argumentierter Fktsaufruf eine Fml bilden kann, ist unbestritten und gilt sowohl für UDFs als auch Standard-Fktt. Genauso gilt aber auch, dass man beide Fktsarten mit anderen Fktt, Standard u/o UDF, in einer Fml kombinieren kann, was bei mir oft die Regel ist, denn ich schreibe UDFs in Ergänzung des Xl-Standard-Fktsinventars. Auch deshalb halte ich es für unangebracht, nicht sauber zwischen Fktt und Fmln unterscheiden zu wollen, denn das fördert nur eine Begriffsverwirrnis, die bei Xl- und VBA-Anfängern ohnehin schon vorhanden sein wird bzw kann.
    Eigene Fktt, die primär für den VBA-Einsatz als Hilfsfktt gedacht sind, würde ich deshalb auch nicht als UDFs bezeichnen. Oft sind sie auch nicht universell genug, im Sinne von mit allen möglichen EinsatzSituationen zurecht (zu) kommen, um für mehr als einen (sehr) speziellen Zweck verwendbar zu sein. So etwas sollte man dann aber auch nicht für den Einsatz in ZellFmln anbieten, denn das passt nicht zum Gros der Xl-Standard-Fktt und damit den Intentionen der ursprünglichen Xl-Macher.
    Luc :-?
    Anzeige
    AW: OT: Von 'intelligenten Tabellen' ...
    23.12.2021 14:07:10
    Yal
    Hmm... Ja. So machen wir.
    ;-)
    VG
    Yal
    Na, denn iss ja jut! orT
    23.12.2021 18:41:56
    Luc:-?
    Gruß & FroWeihn, Luc :-?

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige