Avatar billede jtp Nybegynder
25. juli 2003 - 21:46 Der er 7 kommentarer og
1 løsning

If file exist i excel

Hejsa

Er der nogen der kan hjælpe med denne problemstilling. Jeg ønsker, at oprette en formel, der udfører en kontrol af om et givent worksheet eksisterer og i givet fald, så returnerer værdien af en specifik celle fre dette worksheet.

Jeg havde forestillet mig noget i denne stil:

  =HVIS(fileExist;[Uge01.xls]Ark1!$A$1;0)

hvor fileExist repræsenterer den kode, der skal kontrollere om der findes et worksheet.

Er dette muligt - også gerne på andre måder?

Kan man i øvrigt lave "Søg/erstat" på indholdet af en formel?

På forhånd tak.

-jtp-
25. juli 2003 - 23:26 #1
Denne formel undersøger om henvisning til celle A1 i den anden projektmappe, resulterer i en fejl. Sker dette udføres intet, resulterer det ikke i en fejl (altså eksisterer arket) returneres her indholdet af den pågældende A1-celle. Det kan du selvfølgelig skifte ud med noget andet.

=HVIS(ER.FEJL([Uge01.xls]Ark1'!$A$1);"";[Uge01.xls]Ark1'!$A$1)

Ja, du kan godt bruge søg og erstat på indhold i formler.
25. juli 2003 - 23:27 #2
Det skulle være et svar.
Avatar billede jtp Nybegynder
25. juli 2003 - 23:56 #3
Hej erikjuul

Tak for dit hurtige svar.

Det virker til dels. Skulle lige tilpasses (tror jeg), så den ikke laver fejl:

  =HVIS(ER.FEJL([Uge01.xls]Ark1!$A$1)=FALSK;[Uge01.xls]Ark1!$A$1;0)

men som jeg ser det, så gør den egentlig blot det som en almindelig sammenkædning ville gøre, hvilket betyder, at den afbryder formlen, hvis den pågældende fil ikke eksisterer. Dette ville jeg gerne undgå, således at Excel ikke selv "popper" op spørger efter placeringen.

Det er planen, at det regneark, hvor det skal bruges har 52 faneblade (én for hver uge) og der bliver så løbende oprettet filer med ugenavne, som disse faneblade skal refererer til. Derfor er formlen nødt til at indeholde referencer til filer, der endnu ikke eksisterer.

Nu er det tid til at holde weekend ;o)
26. juli 2003 - 21:53 #4
Den ændring du har foretaget får ingen virkning på formlens resultat. Du ændrer ER.FEJL() funktionen fra SAND til FALSK, og samtidig bytter du om på de 2 sidste parametre i HVIS()-funktionen.


Så alt i alt samme resultat.
Avatar billede jtp Nybegynder
28. juli 2003 - 08:36 #5
Hej erikjuul

Jeg foretog ændringen, fordi jeg fik en fejl, når jeg "copy/pastede" formlen. Nok bare mig, der er et fjog :o)

Men er det ikke korrekt, at hvis ikke projektmappen: "Uge01.xls" eksisterer, så vil formlen ikke blive udført, men derimod bede om en sti til denne projektmappe?
Avatar billede palle_ib Nybegynder
29. juli 2003 - 08:11 #6
Jeg har skrevet en bruger defineret formel som kontrollerer om filen eksisterer. Formlen retunerer Boolean.

Public Function ErFil(ByVal sPlacering As String) As Boolean
    Dim fs As Object
    Set fs = CreateObject("Scripting.FileSystemObject")
    Application.Volatile
    ErFil = False
    ErFil = fs.fileexists(sPlacering)
End Function

Den kan kontrollere om filen eksisterer!
Avatar billede palle_ib Nybegynder
29. juli 2003 - 08:12 #7
Hvis du skal have hjælp med at bruge den må du sige til!
Avatar billede jtp Nybegynder
29. juli 2003 - 18:03 #8
Hey palle_ib

Det var lige nøjagtig hvad jeg ledte efter! Pointene er retmæssigt dine.

Det færdige resultat ser ud som følger:

=HVIS(ErFil("Uge01.xls")=FALSK;0;[Uge01.xls]Ark1!$A$1)

Endnu engang tak til palle_ib
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
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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