Avatar billede k_skriver Juniormester
20. januar 2021 - 16:38 Der er 8 kommentarer og
1 løsning

Findes en fil eller ej

Kan I hjælpe med at svare på om/hvordan jeg via en formel kan få Excel til at skrive 1 hvis en specifik fil findes i en filmappe og 0 hvis den ikke findes?

Hvis der findes en fil med navnet ”S6506-1.jpg” i C:\JPG skal den skrive 1, hvis filen ikke eksisterer skal den skrive 0
Avatar billede Jan K Ekspert
21. januar 2021 - 12:09 #1
Det er jeg ret sikker på, at du ikke kan gøre med en formel, men du kan lave en brugerdefineret funktion i VBA, som du så kan bruge i din formel.
Avatar billede k_skriver Juniormester
21. januar 2021 - 12:28 #2
Det tror jeg du har ret i - det er ikke lykkes mig at knække koden endnu :-(
Avatar billede Jan K Ekspert
21. januar 2021 - 13:21 #3
Du kan bruge denne funktion, til at tjekke om en fil findes

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

Den returnerer SAND, hvis filen findes, FALSK, hvis den ikke gør.

Du kan så "pakke den ind" i din HVIS, fx

=HVIS(FindesFil(A1)=SAND;1;0)

hvor A1 indeholder sti og navn på filen. Din stil i A1 skal så se således ud

C:\JPG\S6506-1.jpg

Altså ingen anførsestegn
Avatar billede Jan K Ekspert
21. januar 2021 - 13:39 #4
Er stien altid den samme, kan du sætte den ind direkte i koden, så du kun skal have filnavnet i cellen

Function FindesFil(Fil As String)
    Dim Mappe As String, Sti As String
    Mappe = "C:\JPG\"
    Sti = Mappe & Fil
    FindesFil = Dir(Sti) <> ""
End Function
Avatar billede k_skriver Juniormester
21. januar 2021 - 16:01 #5
Jeg har forsøgt at følge dit forslag, men formlen ender ud i #VÆRDI
- se evt skærmprint her: https://1drv.ms/u/s!AsSFUTu2m4EZgvpHbDsmhqelR_ZQuw?e=7izmfA
Avatar billede Jan K Ekspert
21. januar 2021 - 16:50 #6
Min fejl. Jeg tog en gammel makro og rettede til, men fik ikke rettet alt. I koden skal der ikke stå sPath i paremtesen efter Dir, men naturligvis Sti.
Avatar billede k_skriver Juniormester
21. januar 2021 - 23:32 #7
Perfekt - det spiller max!

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

i kombination med formlen:
=HVIS(FindesFil(N2)=SAND;"Filen findes";"Filen findes IKKE")
(hvis filens sti og navn er angivet i celle N2)
Avatar billede k_skriver Juniormester
22. januar 2021 - 00:01 #8
Nu jeg har din opmærksomhed; nogen ideer til en makro/indhold til en BAT-fil, der søger i en mappe og kopierer alle filer - hvor filnavnet indeholder "S???? " (hvor ???? kan være alle forskellige tegn/tal) - til en anden mappe..
Avatar billede Jan K Ekspert
22. januar 2021 - 14:37 #9
Ikke lige umiddelbart, men Ron  de Bruin har:

https://www.rondebruin.nl/win/s3/win026.htm

I øvrigt kan du spare hvis-formelen i min løsning ved bare at skrive

=FindesFil(a1)*1

så returnes ! ved SAND og 0 ved FALSK
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester