Probleem Dir-functie in Excel 2010.

Status
Niet open voor verdere reacties.

MDN111

Gebruiker
Lid geworden
13 aug 2007
Berichten
503
Hallo !

In een aantal Excel-macro's heb ik de DIR-functie gebruikt om te testen of een bestand al of niet bestaat. Op zichzelf niets bijzonders en dat werkt zoals het hoort in Excel 2007. Maar nu blijkt er iemand die met Excel 2010 werkt, problemen te hebben met één van m'n macro's: bij het importeren van een sheet uit een ander bestand ontvangt hij een foutmelding "Bestand Niet Gevonden", niettegenstaande dat bestand wel degelijk aanwezig is. Die foutmelding heb ik zelf geprogrammeerd op basis van de DIR-functie.

Volgens ik hier, hier en hier kan lezen, zou er misschien iets aan de hand kunnen zijn met de DIR-functie in Excel 2010.

Graag had ik geweten of iemand al eens een gelijkaardig probleem heeft ontmoet.

Grtz,
MDN111.

P.S. Een alternatieve methode aanbieden met het FileSystemObject hoeft niet.
 
En je eigen functie?
 
Niet op alle systemen zijn drive-namen identiek.
Ik heb nog nooit iets mis zien gaan met Dir. (2000, 2003,2010)
 
Hetzelfde hier, nooit een probleem mee gehad en ik gebruik de Dir functie in Excel 2003 t/m 2016.
Vandaar mijn vraag om je functie hier eens te laten zien.
 
Dag edmoor,
Dag snb,

Bedankt voor de reacties !

Het is in feite eenvoudig. De naam het bestand van waaruit we de sheet willen importeren, wordt afgeleid uit een datumwaarde die in een bepaalde cel staat en we verwachten dat het bestand in dezelfde folder staat als het bestand dat de macro bevat. Dan volgt een test of dat bestand wel bestaat.
Code:
cFile = ThisWorkbook.Path & "\TP" & Format(ActiveSheet.Range(SDCell).Value - 7, "ddmmyyyy") & ".xlsx"

If Dir(cFile) = vbNullString Then
    MsgBox "Bestand <" & cFile & "> Niet Gevonden", vbExclamation, "Previous Week"
    Exit Sub
End If
De gebruiker ziet de Message Box verschijnen, niettegenstaande het "niet gevonden" bestand wel degelijk zou bestaan. Het enige scenario dat ik nu nog kan bedenken is dat de Hidden-attribuut van het fameuze bestand zou gezet zijn op niveau van de Windows, maar dat lijkt mij erg onwaarschijnlijk. Of misschien (waarschijnlijk?) een andere reden, maar die vind ik misschien wel volgende week terug als ik de macro kan debuggen op de gebruiker z'n laptop.

Grtz,
MDN111.
 
En het gezochte bestand zou dus in dezelfde map staan als het bestand waarin de macro draait?
De naam van het gezochte bestand begint met TP?
Wat is de waarde van SDCell? En staat in die cel een echte datum?
 
Laatst bewerkt:
In dit geval is de naam van het gezochte bestand TP23012017.xlsx.
SDCell is een publieke constante met waarde "D1" omdat in de cel D1 de betreffende datum staat.
De macro kan alleen gestart worden als de cel D1 een geldige datum van een maandag bevat (controlefunctie).
Er is dus niets mis met de bestandsnaam op zichzelf.

In "verdenk" de gebruiker ervan dat het "gezochte bestand" toch niet in dezelfde folder staat, maar dat kan ik slechts te weten komen als ik volgende week z'n laptop bekijk.
 
Dan vernemen we dat vast nog wel :)
 
Ter controle bij de gebruiker:

Code:
sub tst()
   msgbox ThisWorkbook.Path & "\TP" & Format(ActiveSheet.Range(SDCell).Value - 7, "ddmmyyyy") & ".xlsx"
end sub
 
De gebruiker meldde mij daarstraks dat het probleem zich niet meer voordoet. "problemen met de server" zouden de oorzaak geweest zijn waarom het bestand niet gevonden werd. Meer detail heb ik jammer genoeg niet kunnen bekomen. Ik blijf het bizar vinden, want het bestand met de macro's kon hij openen en ermee werken, maar het andere bestand dat zich in dezelfde folder zou bevinden, wordt dan blijkbaar niet gevonden.:confused: Nu ja, het goede nieuws is dat er dan toch niets mis is met de dir-functie, en ik dus niets hoef te vrezen voor alle andere macro's die deze functie gebruiken.

Grtz,
MDN111.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan