[Excel/VBA] FileSearch spielt verrueckt

08/06/2010 - 12:50 von Stefan+Usenet | Report spam
Ich bin gestern bei einem Kunden mit einem Problem konfrontiert worden,
bei dem ich absolut vor einem Raetsel stehe. Vorausgeschickt sei, ich
bin alles andere als ein Experte, was VBA, Excel und Microsoft-Produkte
im allgemeinen betrifft. Ich betreue dort den (Linux-) Fileserver und habe
mir das ueberhaupt nur angesehen, weil sonst keiner mehr eine Idee hatte.

Die Ausgangsbasis: auf dem Fileserver liegt eine stattliche Anzahl an
Excel-Dateien. Diese sind zum Teil knapp 10 Jahre alt, taten seither, wozu
sie geschaffen wurden und sind inzwischen meiner Ansicht nach unwartbar
(Programmierer verschollen, keine Kommentare, keine Dokumentation). Eine
Migration auf die neueste Office-Version wurde komplett rueckgaengig
gemacht, als es zu Fehlern in der Makro-Sammlung gekommen ist.

Auf diese Sammlung greifen rund ein Dutzend User zu; diese haben ein
Roaming Home am Fileserver, sowie eine unternehmensweit fixe Zuordnung von
Laufwerksbuchstaben zu den entsprechenden Shares am Fileserver. Die
Makrosammlung liegt beispielsweise ueberal auf "S:\". Eine der Dateien aus
der Makrosammlung ist in das Windows-Menue herausgezogen und praesentiert
als erste Aktion eine Liste von moeglichen Aufgaben (entspricht jeweils
einer nachzuladenden Excel-Arbeitsmappe), aus denen eine ausgewaehlt werden
kann. Diese Liste ist nun bei den zwei zuletzt angelegten Usern leer. Erste
Vermutung waren falsche Berechtigungen am Server, und so kam ich mit ins
Spiel.

Eine Analyse des Codes ergab, dass das Problem in einer
FileSearch-Anweisung steckt:

| With Application.FileSearch
| .LookIn = "S:\Pfad1\Pfad2\Pfad3\"
| .FileType = msoFileTypeExcelWorkbooks # aus dem gedaechtnis heraus
| .Execute()
|
| count = .FoundFiles.Count
|
| [...]
| End With

Bei allen Usern enthaelt count an dieser Stelle die Zahl 38, entsprechend
den Excel-Dateien, die im hart codierten Verzeichnis angegeben sind. Nur
bei zweien steht dort 0. ABER das Verzeichnis laesst sich sehr wohl auf der
Befehlsebene anzeigen, auflisten und die darin enthaltenen Dateien lassen
sich auch anstandslos oeffnen. UND wenn ich den Pfad durch beispielsweise
"C:\" oder einen beliebigen anderen, gueltigen Pfad ersetze, enthaelt die
Variable count immer noch den Wert 0.

Das war der Moment, wo ich dann abgebrochen habe - verbindliche
Dokumentation zu Application.FileSearch besitze ich leider nicht, aber
das Programm ist an der Stelle ja nun derart simpel (und deckt sich auch
mit den Beispielen, die ich dazu im Netz gefunden habe), dass mir beim
besten Willen kein Grund einfaellt, warum so etwas mit einem Account
funktionieren soll, mit dem naechsten hingegen nicht mehr.

Nota bene: die Fehlfunktion ist vom Account abhaengig, nicht vom Rechner,
auf dem Excel gestartet wird. Die Office-Installationen befinden sich
hingegen jeweils lokal auf den Rechnern.

Gibt es denn in der Registry irgendeine Einstellung, die zufaellig,
unabsichtlich oder absichtlich verstellt werden koennte und einen
derartigen Effekt hat?

Ich bin morgen Vormittag wieder dort zu Besuch - wenn irgendjemand eine
Idee hat, woran so ein Effekt liegen _koennte_, waere das natuerlich ideal.

Servus,
Stefan

http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike

Stefan - Versuchung im Kaufrausch!
(Sloganizer)
 

Lesen sie die antworten

#1 Michael Jakobs
08/06/2010 - 13:53 | Warnen spam
Am 08.06.2010 12:50, schrieb Stefan Froehlich:

Hi,

Ich bin morgen Vormittag wieder dort zu Besuch - wenn irgendjemand eine
Idee hat, woran so ein Effekt liegen _koennte_, waere das natuerlich ideal.



Sind die Excel-Versionen identisch? Ich las letzte Tage zufàllig in der
c't dass aktuelle Excel-Version ein Problem mit FileSearch haben.
Genaueres weis ich leider nicht mehr aus dem Kopf.


Michael

Ähnliche fragen