Avatar billede Sidsel Seniormester
01. maj 2018 - 09:33 Der er 6 kommentarer og
1 løsning

slette den gamle fil

Hej.
Jeg forsøger at rename filer i en hel mappe. Selve det at gemme dem i en anden mappe med nyt navn går fint (Det er egentligt bare en tilføjelse til navnet) men den måde som jeg har til at gøre det for alle filer i en mappe, kræver at den originale fil bliver slettet efter der er kørt gem som. Det skal lige siges at koden er genbrug, og jeg ikke forstår den 100%.

Det er skrevet som 2 forskellige Subs: den første process all, den anden Rename
_____________________________________________________________
Sub ProcessAll2()
    Dim Wb As Workbook, sFile As String, sPath As String
    Dim itm As Variant
    Dim strFileNames  As String
   
   
    sPath = "K:\PhaCWi\2018\Levtilskud\257 Schneider\Konvertering 17-18\Aftaler til konvertering\"
   
    'Adressen på folderen hvor excel filerne skal hentes
    sFile = Dir("K:\PhaCWi\2018\Levtilskud\257 Schneider\Konvertering 17-18\Aftaler til konvertering\")
  Do While sFile <> ""
        strFileNames = strFileNames & "," & sFile
        sFile = Dir()
    Loop
   
  '  Open each file found
    For Each itm In Split(strFileNames, ",")
        If itm <> "" Then
            Set Wb = Workbooks.Open(sPath & itm)
            Call Rename
           
        End If
    Next itm
   
   
End Sub
_____________________________________________________________
Sub Rename()
 
ActiveWorkbook.SaveAs Filename:="K:\PhaCWi\2018\Levtilskud\257 Schneider\Konvertering 17-18\Aftaler til konvertering 2\" & Range("C8").Value & " K2 " & " " & Range("C6").Value & ".xlsx"

End Sub
____________________________________________________________
Jeg kan ikke åbne via bestemt filnavn, eftersom den skal gøre det med flere forskellige filer med forskelligt navn.
Jeg håber spørgsmålet giver mening.
Vh Sidsel
Avatar billede kim1a Ekspert
01. maj 2018 - 15:15 #1
Hej Sidsel

Du bliver nok nødt til at tilføje noget mere i din all vba. Du har dette:
'  Open each file found
    For Each itm In Split(strFileNames, ",")
        If itm <> "" Then
            Set Wb = Workbooks.Open(sPath & itm)
            Call Rename
' HER SKAL INDSÆTTES NOGET
           
        End If
    Next itm

Det du skal er at have den til at slette filen der hedder således:
(sPath & itm)

Forslag til koden der skal ind kan du hente inspiration til her:
https://www.rondebruin.nl/win/s4/win004.htm
Avatar billede claes57 Ekspert
01. maj 2018 - 16:06 #2
ved
'HER SKAL INDSÆTTES NOGET
skal du starte med at lukke for din nyåbnede fil - ellers kan den ikke slettes - det er i stil med
Workbooks(sPath & itm).Close SaveChanges:=False
og så kan du fyre sletning af.
Avatar billede claes57 Ekspert
01. maj 2018 - 17:14 #3
samlet, prøv

'  Open each file found
    For Each itm In Split(strFileNames, ",")
        If itm <> "" Then
            Set Wb = Workbooks.Open(sPath & itm)
            Call Rename
            Workbooks(sPath & itm).Close SaveChanges:=False
            Kill sPath & itm         
        End If
    Next itm
Avatar billede kim1a Ekspert
01. maj 2018 - 18:40 #4
#2 og 3
Skal det ikke nærmere være active.workbook.close?

Den er jo netop gemt via rename, og derfor har den åbne workbook reelt set ikke noget at gøre med det som skal slettes?

Dit forslag i #3 giver dog god mening i min verden.
Avatar billede Sidsel Seniormester
03. maj 2018 - 10:56 #5
Hejsa.
Tusind tak. løsningen var #3, næsten.
'  Open each file found
    For Each itm In Split(strFileNames, ",")
        If itm <> "" Then
            Set Wb = Workbooks.Open(sPath & itm)
            Call Rename
            Kill sPath & itm
          Application.Workbooks(3).Close
        End If
    Next itm
Avatar billede kim1a Ekspert
03. maj 2018 - 12:09 #6
Haha fint - godt du lige accepterede din egen løsning :-)

Jeg tror stadig du skal overveje at sige active workbook close fremfor (3) - hvis makroen køres hvor man allerede har mange åbne kan din navngivning skabe issues.
Avatar billede Sidsel Seniormester
03. maj 2018 - 13:50 #7
det var jo den som var rigtig i sidste ende  :)
jeg prøvede activeworkbokk.close men den brokkede sig, da jeg så prøvede workbooks (3) virkede det, derfor blev det sådan.
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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



Seneste spørgsmål Seneste aktivitet
I går 22:00 Datafordeler Af Lsk i PHP
I går 12:37 Summere beløb pr. dato Af TTA i Excel
31/1022:44 Tilslutte chassic fans Af viking69 i PC
31/1020:28 LED lysstofrør Af ErikHg i Fri debat
31/1014:25 Smartphone Motorola Af Peter Olsen i Mobiltelefoner