Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
460to464
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
460to464
460to464
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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
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
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
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
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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige