Formelergebnis nicht als Value erkannt
06.05.2015 10:36:42
Dietmar
ich versuche bisher ergebnislos herauszufinden, weshalb der in einer Zelle per Formel berechnete Wert im Rahmen einer VBA-Prüfroutine nicht als Wert erkannt wird.
Mit folgendem Code prüfe ich den Eintrag in Zelle E24 des Tabellenblattes Fixdatenerfassung. Zelle E24 kann nur die Einträge 0 oder 1 oder 9 haben
Je nach Ergebnis erfolgt dann eine Prüfung, ob die mit vorverlagertem Befehl geöffente Datei (in die ein Datenübertrag stattfinden soll) einen bestimmten Namen hat. Sofern in diesem Namen ein bestimmter Buchstabe vorkommt, soll eine Warnung ausgegeben werden und die Möglichkeit, den weiteren VBA-Prozess abzubrechen (Klick auf Nein).
Die Prüfung VERSAGT ständig, wenn der Wert in E24 nicht 0 ist; mit 0 funktioniert alles bestens. Mit 1 oder 9 rauscht die Prüfung durch und berücksichtigt den Eintrag nicht.
(!) Dabei scheint der Umstand relevant zu sein, dass der Eintrag in Zelle E24 Tabellenblattes Fixdatenerfassung aus einer Indexformel zustandekommt (E24 = INDEX(G48:G72;E22).
Damit sehe ich keine Möglichkeit, auf den Zulieferungswert aus G48:G72 zurückzugreifen, was das Problem ggf. lösen wurde. Ich muss m.E. also auf das Formelergebnis in E24 prüfen können.
Das Zellenformat von E24 ist Standard.
Hier der Code-Schnipsel, der die Prüfung durchführen soll:
If ThisWorkbook.Worksheets("Fixdatenerfassung").Range("E24").Value = 1 Then
Dim dat As String, pruef As Byte
dat = objTarget.Name
pruef = InStr(dat, "N") 'In geöffentenr Datei kommt der Buchstabe N vor, diese ist dann _
aber falsch!
If pruef = 0 Then
'MsgBox "Alles gut!"
Else
If MsgBox("ACHTUNG(!) ACHTUNG(!) ACHTUNG(!)" _
& vbCrLf & vbCrLf & "Falsche Datei ausgewählt!",
vbCritical + vbYesNo + vbDefaultButton2, "Warnung!") = vbNo Then
objTarget.Activate
If blnOpen = False Then objWB.Close savechanges:=False 'Zieldatei schliessen
GoTo ErrExit 'For-Next-Schleife überspringen
End If
End If
End If
Dankbar für jeden Tipp!LG
Dietmar