Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Evaluate - mal geht´s und mal nicht...

Forumthread: Evaluate - mal geht´s und mal nicht...

Evaluate - mal geht´s und mal nicht...
02.08.2004 23:32:29
Boris
Hi Leute,
ich lese aus einer mit dem Autofilter gefilterten Spalte (A) den ersten sichtbaren Eintrag aus.
Das funktioniert einwandfrei mit
strValue = "INDEX(A:A,MIN(IF(SUBTOTAL(3,INDIRECT(""A""&ROW(2:100))),ROW(2:100))))"
MsgBox Evaluate(strValue)
Jetzt möchte ich nur die Zeile daraus haben - und daher dachte ich: Lass doch einfach den INDEX weg:
strRow = "MIN(IF(SUBTOTAL(3,INDIRECT(""A""&ROW(2:100))),ROW(2:100)))"
MsgBox Evaluate(strRow)
Aber denkste - Pustekuchen. Letzteres gibt nen Fehler, und zwar "Fehler 2023", wenn ich es testweise mit
MsgBox CStr(Evaluate(strRow))
auswerte.
Warum denn bitteschön?
Hier der gesamte Testcode:
Option Explicit

Sub erster_autofilter_eintrag()
Dim strValue As String
Dim strRow As String
strValue = "INDEX(A:A,MIN(IF(SUBTOTAL(3,INDIRECT(""A""&ROW(2:100))),ROW(2:100))))"
strRow = "MIN(IF(SUBTOTAL(3,INDIRECT(""A""&ROW(2:100))),ROW(2:100)))"
MsgBox Evaluate(strValue)
MsgBox Evaluate(strRow) '---> Ergibt mit CStr(Evaluate(strRow)) den "Fehler 2023"
End Sub

Es geht mir nicht um Alternativen, sondern nur um Aufklärung, warum es einmal geht und dann wieder - mit der Zeile - nicht...?!?
Grüße Boris
Anzeige
AW: Evaluate - mal geht´s und mal nicht...
K.Rola
Hallo Boris,
kannst du mal ein Beispiel hochladen, bei dem die Formeln funktionieren?
Bei mir funktioniert das nicht, es wird, wenn nichts gefiltert ist, der zweite
Eintrag der Liste angezeigt, als Zeile 2 und wenn gefiltert ist, die Überschrift
und als Zeile 0. Daran vermute ich auch den Fehler mit Evaluate.
Gruß K.Rola
Anzeige
AW: Evaluate - mal geht´s und mal nicht...
K.Rola
Hallo Boris,
merkwürdig, wenn die Formeln in Zellen stehen, kommt was anderes raus.
https://www.herber.de/bbs/user/9153.xls
Gruß K.Rola
Anzeige
AW: Evaluate - mal geht´s und mal nicht...
Boris
Hi K.Rola,
in Excel hast du die { } vergessen - aber in VBA muss (und kann) man die doch gar nicht mit "eingeben", oder?
Grüße Boris
Ich geh jetzt mal schnell ein bischen schlafen...
Boris
Hi K.Rola,
...und schau so in ca. 9 Stunden wieder vorbei.
Für alle, die es interessiert, hier noch der Code, der die Formeln auch noch ins Blatt einträgt (und die Formeln funktionieren einwandfrei):
Option Explicit

Sub erster_autofilter_eintrag()
Dim strValue As String
Dim strRow As String
strValue = "=INDEX(A:A,MIN(IF(SUBTOTAL(3,INDIRECT(""A""&ROW(2:100))),ROW(2:100))))"
strRow = "=MIN(IF(SUBTOTAL(3,INDIRECT(""A""&ROW(2:100))),ROW(2:100)))"
[c1].FormulaArray = strValue
[d1].FormulaArray = strRow
MsgBox Evaluate(strValue)
MsgBox Evaluate(strRow) '---> Ergibt mit CStr(Evaluate(strRow)) den "Fehler 2023"
End Sub

Gute Nacht
Boris
Anzeige
AW: Ich geh jetzt mal schnell ein bischen schlafen...
03.08.2004 08:41:39
Nepumuk
Hallo Boris,
du musst nur das = weglassen.
strValue = "INDEX(A:A,MIN(IF(SUBTOTAL(3,INDIRECT(""A""&ROW(2:100))),ROW(2:100))))"
Gruß
Nepumuk
Darum ging es nicht...
Boris
Hi Nepumuk,
...und daran liegt es auch nicht.
Die Frage var, warum das 2. Evaluate mit der Formel (mit oder ohne = )
MIN(IF(SUBTOTAL(3,INDIRECT(""A""&ROW(2:100))),ROW(2:100)))
nicht funktioniert.
Ne Idee?
Grüße Boris
Anzeige
AW: Darum ging es nicht...
K.Rola
Hallo Boris,
selbst so gehts nicht, ratlos?

Sub erster_autofilter_eintrag()
Dim strValue As String
Dim strRow As String
strValue = "=INDEX(A:A,MIN(IF(SUBTOTAL(3,INDIRECT(""A""&ROW(2:100))),ROW(2:100))))"
strRow = "=MIN(IF(SUBTOTAL(3,INDIRECT(""A""&ROW(2:100))),ROW(2:100)))"
[c1].FormulaArray = strValue
[d1].FormulaArray = strRow
MsgBox Evaluate([c1].Formula)
'MsgBox Evaluate([d1].Formula)
End Sub

Gruß K.Rola
Anzeige
Selbst du bist mal ratlos...
Boris
Hi K.Rola,
...dass ich das mal erleben darf :p
Ist schon seltsam...
Grüße Boris
Ich hab die Frage mal ausgelagert...
Boris
Hi K.Rola,
...und zwar in die MS-Newsgroup. Mal schauen, was die so dazu sagen.
Danke und Grüße
{Boris}
AW: Ich hab die Frage mal ausgelagert...
K.Rola
Hi Boris,
da bekommst du auch keine Antwort von mir.
Gruß K.Rola
Anzeige
AW: Ich hab die Frage mal ausgelagert...
Boris
Hi K.Rola,
...also wenn du ne Antwort hättest, wär ich doch sehr daran interessiert - und würde selbstverständlich den Beitrag dort sofort als beendet erklären...:p
Grüße Boris
AW: Ich hab die Frage mal ausgelagert...
K.Rola
Hi,
falsch verstanden, ich hab leider auch keine Erklärung dafür, auch nicht, wenn du die
Frage in 20 anderen Foren stellst. Falls eine Lösung kommt, wäre ich aber auch sehr
neugierig.
Gruß K.Rola
Anzeige
Hier ein Ansatz:
Boris
Hi K.Rola,
diesen Link (englisch) bekam ich in der Newsgroup von einem recht fitten Antworter:
http://tinyurl.com/5emfo
Muss ich mir mal in Ruhe durch den Kopf gehen lassen.
Grüße Boris
PS
03.08.2004 08:43:51
Nepumuk
und natürlich dies noch anpassen: [c1].Formula = "=" & strValue
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige