Avatar billede msoee Nybegynder
28. oktober 2008 - 10:29 Der er 7 kommentarer og
1 løsning

If FileThere, Then - Problemer med refereret sti.

Jeg vil gerne have at en makro checker om et filnavn eksisterer før den prøver at hente tal ind i felterne...

Jeg har fundet kommandoen:

If FileThere("c:\myfile.txt") Then
    '
    ' Do stuff here
    '
Else
    MsgBox "File Not There!"
End If

Hvor der så står "Do stuff here"

Skal den afspille 20-30 linjer lignende denne:
['Note 2'!I6].Formula = "='[" & ['Stamdata + Info'!H5] & " - " & ['Note 2'!I4] & ".xls]Note 2'!$G$6"

Linjen går ind og finder et specifikt filnavn alt efter hvilke informationer man har indtastet i henholdsvis ['Stamdata + Info'!H5] og ['Note 2'!I4].

Hvordan får jeg så FileThere("c:\myfile.txt") til at referere til samme filnavn? :)
Avatar billede kabbak Professor
28. oktober 2008 - 13:54 #1
If dir("c:\myfile.txt") <>"" Then
    '
    ' Do stuff here
    '
Else
    MsgBox "File Not There!"
End If
Avatar billede msoee Nybegynder
28. oktober 2008 - 14:24 #2
Hehe jah den del af det havde jeg funde frem til... men hvor der står c:\myfile.txt vil jeg gerne at den søger på samme sti som er angivet i den makro som afspilles hvis filen eksisterer:

"='[" & ['Stamdata + Info'!H5] & " - " & ['Note 2'!I4] & ".xls]'"
bliver jo til:
"='typenummer - årstal.xls'"

- altså den fil jeg ønsker at identificere med min FileThere makro.

Men hvis jeg sætter den sti ind, vil den ikke finde filen (jeg antager jo at filen ligger i samme mappe som den fil jeg har åben, derfor behøver jeg vel ikke at angive den fulde sti til den fil jeg forsøger at åbne?
Avatar billede kabbak Professor
28. oktober 2008 - 22:24 #3
sti = ThisWorkbook.Path & Application.PathSeparator
fil = Worksheets("Stamdata + Info").Range("H5") & " - " & Worksheets("Note 2").Range("I4") & ".xls"
If If FileThere(sti & fil) Then
    '
    ' Do stuff here
    '
Else
    MsgBox "File Not There!"
End If
Avatar billede msoee Nybegynder
29. oktober 2008 - 08:20 #4
Sub HentSammenligningstal()
sti = ThisWorkbook.Path & Application.PathSeparator
fil = Worksheets("Stamdata + Info").Range("H5") & " - " & Worksheets("Stamdata + Info").Range("H7") & ".xls"
If FileThere(sti & fil) Then
['Budget'!K12].Formula = "='[" & ['Stamdata + Info'!H5] & " - " & ['Budget'!K10] & ".xls]Budget'!$I$12"
Else
    MsgBox "File Not There!"
End If
End Sub

Får fejlen "Compie error - Sub or Function not defined"
Avatar billede kabbak Professor
29. oktober 2008 - 09:24 #5
jeg vil vædde med at det er

If FileThere(sti & fil) Then

for FileThere er ikke noget indbygget i excel 2003, så det må være en funktion.

prøv at rette det til

If dir(sti & fil) <>"" Then
Avatar billede msoee Nybegynder
29. oktober 2008 - 11:38 #6
Jeg vil ikke vædde med dig, for du havde ret :)

Smid det som et svar!
Avatar billede kabbak Professor
29. oktober 2008 - 12:28 #7
et svar ;-))
Avatar billede kabbak Professor
29. oktober 2008 - 14:08 #8
tak for point ;-))
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