Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
732to736
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
732to736
732to736
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Syntax WorksheetFunction "IF"

Syntax WorksheetFunction "IF"
WernerB.
Hallo Experten,
ich möchte per VBA prüfen, ob die Zelle "A1" ("Tabelle1", "Mappe2.xls") einen Inhalt (auch eine eingetragene Ziffer "Null" ist ein Inhalt!) hat.
Erschwerend kommt hinzu, dass die Datei "Mappe2.xls" dabei geschlossen ist.
Meine Versuche mit der Worksheet-Funktion "IF" sind bisher kläglich gescheitert; was sehr wahrscheinlich an einer falschen Syntax liegt.
Wer kann mir mit der richtigen Syntax oder ggf. auch mit einem völlig anderen Lösungsvorschlag weiter helfen?
Im nachstehenden Problem-Makro wird das Apostroph/Hochkomma im Pfad angemeckert, wenn ich dieses entferne, gefällt Excel der Doppelpunkt nicht.

Sub Test01()
Dim Check As Boolean
Check = WorksheetFunction.IF('C:\Daten\[Mappe2.xls]Tabelle1'!R1C1="",TRUE,FALSE)
MsgBox Check
End Sub

Gruß
WernerB.
AW: Syntax WorksheetFunction "IF"
14.02.2006 12:33:23
Peter
Servus,
schau mal in den Eigenschaftskatalog ob du die Application.Worksheetfunction if findest, bei meinem xls gibt es die nicht.
Würde es evtl so lösen, hab allerdings auch nicht dein Level, deshalb nur ein Vorschlag.


Sub test()
Dim strNam As String
Dim wbk As Workbook
Dim bolCheck As Boolean
strNam = ThisWorkbook.Path & "\" & "Kasse2006.xls"
Set wbk = GetObject(strNam)
If wbk.Sheets("KB12").Range("A1") = "" Then bolCheck = True
wbk.Close False
End Sub


MfG Peter
Anzeige
AW: Syntax WorksheetFunction "IF"
14.02.2006 13:51:42
WernerB.
Hallo Peter,
vielen Dank für Deinen Vorschlag.
Über Deinen und meinen VBA-Level möchte ich nicht diskutieren.
Es kommt mir auch nicht darauf an, das Problem mit "WorksheetFunction.If()" zu lösen - egal, ob es diese Funktion nun so gibt oder auch nicht.
Mit Deinem Vorschlag wird die geschlossene Datei leider geöffnet - und eben das will ich vermeiden.
Ich suche nur nach einer Möglichkeit, per VBA zu prüfen, ob eine bestimmte Zelle in einer geschlossenen Datei einen Inhalt hat oder nicht, wobei eben auch erkannt werden soll, ob in der Zelle z.B. eine Null (oder ein anderer Wert) steht oder ob die Zelle tatsächlich leer ist.
In einem Tabellenblatt könnte man das problemlos per Wenn-Funktion lösen:
=WENN('C:\Daten\[Mappe2.xls]Tabelle1'!A1="";WAHR;FALSCH)
Nur möchte ich das eben nach Möglichkeit per VBA erledigen, ohne dabei die geschlossene Datei zu öffnen und ohne etwas in eine Zelle zu schreiben.
Mit anderen Worten: Die Information (TRUE bzw. FALSE) möchte ich nach entsprechender VBA-Abfrage (und genau die kriege ich gerade nicht auf die Reihe) in einer Variablen haben.
Siehst Du (oder auch ein anderer Forums-Helfer) da noch eine andere Möglichkeit?
Gruß
WernerB.
Anzeige
AW: Syntax WorksheetFunction "IF"
14.02.2006 14:34:25
Urs
Geht mit Excel4-Makro
AW: Syntax WorksheetFunction "IF"
14.02.2006 15:13:42
WernerB.
Hallo Urs,
vielen Dank für Deinen Hinweis.
Die Vorgehensweise der Datenübertragung aus einer geschlossen Datei per Excel4-Makro ist mir bekannt, löst aber nicht mein Problem.
Bei der Datenübertragung per Excel4-Makro wird nämlich eine Null zurückgegeben, wenn in der Quellzelle eine Null steht (ist ja so auch richtig) aber es es wird auch eine Null zurückgegeben, wenn die Quellzelle vollkommen leer ist bzw. keinen Inhalt hat (und genau das möchte ich abfangen).
Der Unterschied zwischen Nichts und Null kann manchmal erheblich sein!
Gruß
WernerB.
Anzeige
AW: Syntax WorksheetFunction "IF"
14.02.2006 14:36:39
Peter
Servus,
wollte auch nicht damit sagen das dein Level nicht passt, ist mir ehrlich gesagt wurscht.
Wollte nur ausdrücken, das mit meinen bescheidenen Mitteln nicht mehr drin ist.
Hab jetzt aber doch mal gegoogelt und folgendes gefunden, musst dir halt anpassen, funzen tuts in jedem Fall.


Sub test()
Dim strPath As String, strDat As String, strTab As String
strPath = "'" & ThisWorkbook.Path & "\"
strDat = "[Kasse2006.xls]"
strTab = "KB12'!"
MsgBox ExecuteExcel4Macro _
    (strPath & strDat & strTab & Range("A1").Address(ReferenceStyle:=xlR1C1))
End Sub
MfG Peter
Anzeige
AW: Syntax WorksheetFunction "IF"
14.02.2006 15:24:30
WernerB.
Hallo Peter,
vielen Dank für Deine Bemühungen.
Wie gesagt: Über Deinen und meinen VBA-Level möchte ich nicht diskutieren - egal, wie Deine Berkung gemeint war (ich hatte sie auch nicht negativ aufgefasst).
Die Vorgehensweise der Datenübertragung aus einer geschlossen Datei per Excel4-Makro ist mir bekannt, löst aber nicht mein Problem.
Bei der Datenübertragung per Excel4-Makro wird nämlich eine Null zurückgegeben, wenn in der Quellzelle eine Null steht (ist ja so auch richtig) aber es es wird auch eine Null zurückgegeben, wenn die Quellzelle vollkommen leer ist bzw. überhaupt keinen Inhalt hat (und genau das möchte ich abfangen).
Der Unterschied zwischen Nichts und Null kann manchmal erheblich sein!
Deine Bemerkung "funzen tuts in jedem Fall" stimmt also so nicht ganz.
Oder bin ich in diesem Punkt gar zu anspruchsvoll?
Gruß
WernerB.
Anzeige
AW: Syntax WorksheetFunction "IF"
14.02.2006 16:43:38
Urs
Mit Zelle.Zuordnen(41) kannst du das überprüfen.
mfg Urs
AW: Syntax WorksheetFunction "IF"
14.02.2006 16:52:45
Urs
Kannst du mit Zelle.Zuordnen(41) prüfen.
mfg Urs
AW: Syntax WorksheetFunction "IF"
15.02.2006 08:27:38
WernerB.
Hallo Urs,
unter Deinem Hinweis "Zelle.Zuordnen(41)" verstehe ich leider nur "Bahnhof".
Ich nehme an, dass es sich dabei um eine Tabellenblattfunktion handelt, die ich (bisher?) nicht kenne. Dein Vorschlag sieht auch nicht nach einer VBA-Lösung aus, die ich eigentlich suche.
Kannst Du bitte mal ein kleines Beispiel geben (Syntax, Vorgehensweise, ...)?
Zur Verdeutlichung noch einmal mein Problem:
Ich suche nach einer VBA-Lösung (Abfrage, Funktion, o.ä.) zu prüfen, ob eine bestimmte Zelle in einer geschlossenen Datei einen Inhalt hat oder nicht.
Dabei soll erkannt werden, ob in der Zelle ein Wert (z.B. eine Null oder ein anderer beliebiger Wert) steht oder ob die Zelle tatsächlich vollkommen leer ist.
- In der Zieldatei soll dazu keine Zelle beschrieben/benutzt werden.
- Die geschlossene (Quell-)Datei soll dazu nicht geöffnet werden.
- Ein Excel4-Makro zum Auslesen eines Zellwertes aus einer geschlossenen Datei scheint dafür ungeeignet, da es immer den Wert Null liefert, wenn die Quellzelle
a) leer ist (also keinen Wert enthält) oder
b) den Wert Null
enthält; die Feststellung, ob die Quellzelle leer oder nicht leer ist, lässt sich so also nicht treffen.
- Mit der nachstehenden Tabellenblatt-Funktion wäre das Problem gelöst, wenn man sie irgenwie in eine VBA-Abfrage oder -Funktion gießen könnte:
=WENN('C:\Daten\[Mappe2.xls]Tabelle1'!A1="";WAHR;FALSCH)
(und genau hier stehe ich auf dem Schlauch)!
- Die Information "ZELLE LEER" oder "ZELLE NICHT LEER" (TRUE bzw. FALSE) möchte ich in einer Variablen haben.
Gibt es dazu aus dem Forum einen passenden Vorschlag?
Gruß
WernerB.
Anzeige
AW: Syntax WorksheetFunction "IF"
15.02.2006 14:42:03
Urs
Hi,
hab dich wahrscheinlich aufgrund deines angegebenen Levels zu hoch eingeschätzt.
In der Recherche findest du dazu bereits Lösungen.
mfg Urs
AW: Syntax WorksheetFunction "IF"
15.02.2006 15:24:07
WernerB.
Hallo Urs,
herzlichen Dank für den tollen Hinweis auf die Recherche.
Wenn Du mir jetzt noch sagst, unter welchem Suchbegriff ich die von Dir angesprochenen Lösungen finden kann, bin ich Dir ewig dankbar!
Gruß
WernerB.
AW: Syntax WorksheetFunction "IF"
15.02.2006 15:27:23
Urs
Hi,
keine Ursache, immer wieder gern.
Excel4 Makro
mfg Urs
AW: Syntax WorksheetFunction "IF"
15.02.2006 15:59:26
WernerB.
Hallo Urs,
ich fürchte, wir drehen uns im Kreis.
Darauf, dass ein Excel4-Makro dazu nicht geeignet ist, hatte ich in meinen Antworten bereits hingewiesen, da es sowohl bei einer leeren Zelle als auch bei einer Zelle mit einem eingetragenen Wert "0" (Null) jeweils den Wert "0" zurückgibt.
So kann ich leider nicht zweifelsfrei feststellen, ob die Zelle nun einen Inhalt hat oder nicht.
Gruß
WernerB.
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige