Findes fil i mappe?

I en kolonne, står en række sti- og filnavne  I anden kolonne skal skrives 1, hvis filen eksisterer, 0, hvis den ikke gør. Der er ingen af Excels indbyggede funktioner, som kan tjekke for filer i en mappe, så det kan ikke umiddelbart gøres med en formel. Til gengæld kan der laves en simpel brugerdefineret funktion, som står for kontrollen.

Function FindesFil(Sti As String) As Boolean
    FindesFil = Dir(Sti) <> ""
End Function

Denne funktion returnerer SAND, hvis filen eksisterer, FALSK, hvis den ikke gør. Det ville være ret nemt, at lade funktionen direkte returnere 1 eller 0 i stedet, men hvis man ikke gør, kan den samme funktion bruges i mange andre tilfælde, hvor man skal tjekke for en fils "eksistens", så i stedet kan den pakkes ind i en  formel:

=HVIS(FindesFil(A1)=SAND;1;0)  - forudsat naturligvis, at sti- og filnavn står i A1 :-) - se dog mere sidst i artiklen.

Hvis man altid skal tjekke filerne, som findes/ikke findes i en bestemt mappe, og derfor kun har filnavnene uden sti stående i kolonnen, kan man ændre på funktionen til fx:

Function FindesFil(Fil As String) As Boleean
    Dim Mappe As String, Sti As String
    Mappe = "C:\JAN\TEST\"
    Sti = Mappe & Fil
    FindesFil = Dir(Sti) <> ""
End Function

og derefter kan den bruges på samme måde. Eller man kan lade  både sti og filnavn være variabler, som så enten kan stå i hver sin celle, eller én eller begge dele kan indtastes som tekst. i funktionen

Function FindesFil(Mappe As String, Fil As String) As Boolean
    Dim Sti As String
    Sti = Mappe & Fil
    Debug.Print Sti
    FindesFil = Dir(Sti) <> ""
End Function

Uanset hvordan, skal HVIS-formlen altid være den samme, men funktionen kan altså også bruges i andre sammenhænge, hvor man har brug for at undersøge om en bestemt fil findes. I stedet for at bruge HVIS-formlen, kan man opnå 1 og 0, ved simpelthen at gange FindesFil med 1, altså =FindesFil(a1)*1 - og det samme for de andre varianter. Det skyldes at SAND repræsenterer tallet 1 og FALSK tallet 0, så når de ganges med 1, kommer netop talværdierne frem.

- Tilbage til makroer -
- Tilbage til Excel -