Avatar billede ulykken-smed Juniormester
16. januar 2010 - 16:15 Der er 26 kommentarer og
1 løsning

filnavne

Er det muligt at lave en makro der henter alle fil navnene i en mappe og skriver dem ind i et regne ark, og man så laver nogle rettelser og så bliver filerne omdøbt efter rettelserne. Det er mp3 musik det drejer sig om
Avatar billede excelent Ekspert
16. januar 2010 - 17:03 #1
"ListFiles" indsætter filnavne i kolonne A og B
Lav rettelser i kolonne B og kør derefter koden "Omdøb"
Ret linien (sti = "C:\Users\pm\Desktop\*.*") til aktuel sti

Sub ListFiles()
sti = "C:\Users\pm\Desktop\*.*"
fil = Dir(sti)
Do While fil <> ""
  Cells(rk + 1, 1) = "C:\Users\pm\Desktop\" & fil
  Cells(rk + 1, 2) = "C:\Users\pm\Desktop\" & fil
  rk = rk + 1
  fil = Dir
Loop
End Sub

Sub Omdøb()
For Each c In Columns("A").SpecialCells(xlCellTypeConstants)
  Name c.Value As c.Offset(0, 1).Value
Next
End Sub
Avatar billede excelent Ekspert
16. januar 2010 - 17:09 #2
Lille ændring, så behøver du kun rette sti 1 sted

Sub ListFiles()
sti = "C:\Users\pm\Desktop\*.*"
fil = Dir(sti)
Do While fil <> ""
  Cells(rk + 1, 1) = sti & fil
  Cells(rk + 1, 2) = sti & fil
  rk = rk + 1
  fil = Dir
Loop
End Sub
Avatar billede ulykken-smed Juniormester
16. januar 2010 - 17:37 #3
Tak for hjælpen
Jeg prøver den lige og vender tilbage lidt senere,
Avatar billede store-morten Ekspert
16. januar 2010 - 17:57 #4
Til excelent
Denne mappe:
sti = ThisWorkbook.Path & "\"

Cells(rk + 1, 1) = fil
Cells(rk + 1, 2) = fil
Der er sikkert ikke behov for at ændre placering?

Evt tilføjes:
Range("C1").Value = sti
Avatar billede excelent Ekspert
16. januar 2010 - 18:08 #5
ja, men nu er det ikke givet at filerne er i samme mappe som thisworkbook
Og nej koden er ikke baseret på at ændre stien
Avatar billede store-morten Ekspert
16. januar 2010 - 18:16 #6
Nej, det er rigtigt ;-)
Kun et forslag, kan jo starte med at lægge excel filen ind i den mappen med mp3 filer der skal rettes.

Og i den kode jeg har starter jeg med at slette først.
Avatar billede excelent Ekspert
16. januar 2010 - 18:22 #7
Hvad sletter du ?
Avatar billede store-morten Ekspert
16. januar 2010 - 18:28 #8
Hele listen.
Jeg 'Gemmer' resultattet af fil søgningen.
Så er en ny søgning helt frisk, ved ikke om det er nødvendigt, men skader ikke.
Avatar billede ulykken-smed Juniormester
16. januar 2010 - 18:39 #9
Hej den virker,
Jeg prøvede selv efter at have læst denne http://www.eksperten.dk/spm/894068men gav op, men hvis du ligger et svar excelent, så får du point-
Avatar billede ulykken-smed Juniormester
16. januar 2010 - 18:40 #10
Avatar billede excelent Ekspert
16. januar 2010 - 18:44 #11
ok
Avatar billede ulykken-smed Juniormester
16. januar 2010 - 18:46 #12
og mange tak for hjælpen
Avatar billede store-morten Ekspert
16. januar 2010 - 18:55 #13
Min afslutning:
Excel filen lægges ind i mappen med filer der skal rettes.
excelent's kode med et par små ændringer/tilføjelser.

Sub ListFiles()
Range("A:C").ClearContents
sti = ThisWorkbook.Path & "\"
fil = Dir(sti)
Do While fil <> ""
  Cells(rk + 1, 1) = fil
  Cells(rk + 1, 2) = fil
  rk = rk + 1
  fil = Dir
Loop
Range("C1").Value = sti
Range("C3").Value = " 'ListFiles' indsætter filnavne i kolonne A og B"
Range("C4").Value = " Lav rettelser i kolonne B og kør derefter koden 'Omdøb'"
End Sub


Sub Omdøb()
For Each c In Columns("A").SpecialCells(xlCellTypeConstants)
  Name c.Value As c.Offset(0, 1).Value
Next
End Sub
Avatar billede ulykken-smed Juniormester
17. januar 2010 - 13:17 #14
Hej Store-morten

Jeg er igang med at teste din makro, men det driller lidt nu er alle mine mapper skrivebeskyttet så jeg tror at det er derfor den kommer med fejl i denne linje
Name c.Value As c.Offset(0, 1).Value
Avatar billede store-morten Ekspert
17. januar 2010 - 13:52 #15
Hej ulykken-s

Fik du ikke excelent´s til at virke?
Det jeg tilføjede rettede:

Range("A:C").ClearContents
Sletter alt i kolonne A, B og C

sti = ThisWorkbook.Path & "\"
Læser sti i den mappe du har åbnet regnearket fra.

Cells(rk + 1, 1) = fil
Cells(rk + 1, 2) = fil
Slettet sti, så kun filnavn vises.

Range("C1").Value = sti
Range("C3").Value = " 'ListFiles' indsætter filnavne i kolonne A og B"
Range("C4").Value = " Lav rettelser i kolonne B og kør derefter koden 'Omdøb'"
Skriver tekst i celle C1, C3 og C4.

Så hvis du sætter koden ind i et regne ark, og gemmer det.
Kopier det ind i den mappe med mp3 filer du vil rette i.
Kører makroen 'ListFiles' får du listen med fil navne uden sti i kolonne A og B
+ kommentare i C1,C3 og C4.
Ret i kolonne B.
Kør makro 'Omdøb' og dinne rettelser bliver udført.
Avatar billede store-morten Ekspert
17. januar 2010 - 13:55 #16
Jeg læste at det var 'fil navnene i en mappe' du vil rette og ikke nødvendigvis placeringen?
Avatar billede ulykken-smed Juniormester
17. januar 2010 - 13:59 #17
i går prøvede jeg Excelent makro, og jeg syntes at den virkede i den prøve jeg lavede.
Men nu driller det hele. Men jeg prøver lige den makro som du har lagt ind.
Jeg kunne godt tænke mig at den også åbner filer i under mapper og retter filnavne i dem da der er mange mp3 filer
Avatar billede store-morten Ekspert
17. januar 2010 - 14:11 #18
Jeg kan heller ikke få 'rette delen' til at funke?
Avatar billede ulykken-smed Juniormester
17. januar 2010 - 14:16 #19
Det er bare underlig, igår lavede jeg en mappe med en filer i og så prøvede, og der virkede det.
Avatar billede store-morten Ekspert
17. januar 2010 - 14:22 #20
Jeg havde slet ikke prøvet at 'rette'
Da jeg ikke havde behov for det ;-)
Avatar billede store-morten Ekspert
17. januar 2010 - 15:18 #21
Mit forslag virker sikkert ikke, da man ikke kan omdøbe en fil der er åben?

Men bort set fra det kan jeg slet ikke få omdøb delen til at virke?
Avatar billede ulykken-smed Juniormester
17. januar 2010 - 15:29 #22
Jeg har lige testet, og det er den første excelent kom med der virker, jeg skal godt nok ændre stien 3 steder men den virker. nu skal jeg lige se om den tager undermapper med
Avatar billede ulykken-smed Juniormester
17. januar 2010 - 15:31 #23
Nej den tager ikke undermapperne med, den henvise til hver mappe
Avatar billede excelent Ekspert
17. januar 2010 - 15:48 #24
Hvis du kan nøjes med at browswe til en mappe af gangen så prøv denne, som skriver stien i A1 og filnavne herunder
Du skal stadig rette i kolonne B og derefter køre Omdøb

Sub VælgSti()
Dim x As FileDialog
Set x = Application.FileDialog(msoFileDialogFolderPicker)
x.Show
sti = x.SelectedItems(1)
sti = sti & "\"
Range(Range("A1"), ActiveCell.SpecialCells(xlLastCell)).Clear
Range("A1") = sti
fil = Dir(sti)
Do While fil <> ""
rk = rk + 1
  Cells(rk + 1, 1) = fil
  Cells(rk + 1, 2) = fil
  fil = Dir
Loop
End Sub


Sub Omdøb()
sti = Range("A1").Value
For Each c In Range("A2:A" & Cells(5000, 1).End(xlUp).Row)
  Name sti & c.Value As sti & c.Offset(0, 1).Value
Next
End Sub
Avatar billede ulykken-smed Juniormester
17. januar 2010 - 16:03 #25
Jeg prøver den lige
Avatar billede ulykken-smed Juniormester
17. januar 2010 - 16:25 #26
Det er helt super

Mange tak for hjælpen
Avatar billede excelent Ekspert
17. januar 2010 - 16:33 #27
velbekom
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