Avatar billede CHC Forsker
31. oktober 2019 - 10:36 Der er 5 kommentarer og
3 løsninger

Indsæt filnavn i celle

Hej

Med nedenstående formel kan jeg indsætte filnavnet i en celle, men hvordan får jeg filnavnet uden filtypen, altså "filnavn", i stedet for "filnavn.xlsm"?

=MIDT(CELLE("filnavn");FIND("[";CELLE("filnavn"))+1;FIND("]";CELLE("filnavn"))-FIND("[";CELLE("filnavn"))-1)

Jeg vil gerne kunne klare det med en formel, men hvis der kun er en løsning med VBA, så tager vi det med. ;-)

Vh CHC
Avatar billede Daffodil Professor
31. oktober 2019 - 12:04 #1
Prøv dette

=VENSTRE(MIDT(CELLE("filnavn");FIND("[";CELLE("filnavn"))+1;FIND("]";CELLE("filnavn"))-FIND("[";CELLE("filnavn"))-1);LÆNGDE(MIDT(CELLE("filnavn");FIND("[";CELLE("filnavn"))+1;FIND("]";CELLE("filnavn"))-FIND("[";CELLE("filnavn"))-1))-5)
Avatar billede Jan K Ekspert
31. oktober 2019 - 12:05 #2
=MIDT(CELLE("filnavn");FIND("[";CELLE("filnavn"))+1;FIND(".";CELLE("filnavn"))-FIND("[";CELLE("filnavn"))-1)
Avatar billede Jan Hansen Ekspert
31. oktober 2019 - 12:06 #3
=Venstre(din kode;Længde(din kode)-5)

eller

=Venstre(din kode;Længde(din kode)-Find(".";din kode)+1)
Avatar billede CHC Forsker
31. oktober 2019 - 12:44 #4
Hej Daffodil, Jan K og Jan Hansen

Tak for jeres hurtige svar.

@Jan K: Jeg kan ikke lige få dit bud til at virke!

Vh CHC
Avatar billede Jan K Ekspert
31. oktober 2019 - 13:31 #5
OK. Virker fint hos mig.  Nu ville du gerne undgå VBA. Ellers kan du bruge denne til at indsætte flere forskellige informationer om projektmappen.

Function Filnavn(art)
    Application.Volatile
    Dim Punktum As Integer
    Punktum = InStrRev(ActiveWorkbook.Name, ".")

'Alle funktioner i denne makro virker på den aktive projektmappe

    If ActiveWorkbook.Path <> "" Then A$ = " - Gemt"
 
    Select Case art
        Case Is = 1 'Indsæt teksten fra Titellinjen i Excel og tilføj Gemt, fx Jan - Excel - Gemt
            Filnavn = Application.Caption + A$
        Case Is = 2 'Indsæt navnet på projektmappen
            Filnavn = ActiveWorkbook.Name
        Case Is = 3 ' Indsæt filnavnet på den aktive projektmappe uden filtype
            Filnavn = Mid(ActiveWorkbook.Name, 1, Punktum - 1)
        Case Is = 4 'Indsæt filtypen uden filnavn
            Filnavn = Mid(ActiveWorkbook.Name, Punktum + 1, Len(ActiveWorkbook.Name))
        Case Is = 5 'Indsæt stien uden filnavn
            Filnavn = ActiveWorkbook.Path
        Case Is = 6 'Indsæt sti og filnavn
            Filnavn = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name
        Case Is = 7 'Indsæt arknavn
            Filnavn = Range("a1").Worksheet.Name
        Case Is = 8 'Indsæt fil- og arknavn
            Filnavn = ActiveWorkbook.Name & "!" & Range("a1").Worksheet.Name
        Case Is = 9 'Indsæt sti, fil- og arknavn
            Filnavn = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name & "!" & Range("a1").Worksheet.Name
        Case Is = 10 'Indsæt tidspunktet for sidste gemning af filen
            Filnavn = ActiveWorkbook.BuiltinDocumentProperties("Last Save Time")
        Case Else
            Filnavn = CVErr(xlErrNA)
    End Select
End Function
Avatar billede CHC Forsker
31. oktober 2019 - 15:36 #6
Hej Jan K

Din tidligere løsning virker, prøvede lige igen, tak.

Hvordan kører jeg VBA'en - er lidt på bar bund?

Vh CHC
Avatar billede Jan K Ekspert
31. oktober 2019 - 16:15 #7
Du indsætter koden i et modulark. Derefter kan du bruge den på samme måde som alle andre funktioner. For at vise arknavnet uden filtype skriver du bare =filnavn(4) i den celle, hvor du vil have resultatet.
Avatar billede Jan K Ekspert
31. oktober 2019 - 16:16 #8
Vrøvl, =filnavn(3) selvfølgelig.
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