Avatar billede denero Juniormester
11. september 2015 - 08:00 Der er 11 kommentarer og
1 løsning

Flytte filer fra mappe til en anden mappe

Excel 2013

I "Mappe 1" ligger eks. 5 excelfiler. I hver fil skal der hentes data fra samme sted i filen og lægges over i "Mit regneark". Når data er hentet, lukkes filen og flyttes over i "Mappe 2".
Herefter gentages til "Mappe 1" er tom.

Hentning /flytning af filer startes i excelfil "Mit regneark.
Avatar billede supertekst Ekspert
11. september 2015 - 14:48 #1
Const mappe1Navn = "Mappe1"
Const mappe2Navn = "Mappe2"
Dim sti As String
Public Sub HentFraMappe()
   
    sti = ActiveWorkbook.Path & "\"
    hentOgFlytFiler mappe1Navn, mappe2Navn
End Sub
Private Sub hentOgFlytFiler(mappe1, mappe2)
Dim fs, f, f1, fc, fNavn As String
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder(sti & mappe1)
    Set fc = f.Files
   
    For Each f1 In fc
Rem Åbner filen
        Workbooks.Open f1
   
Rem ... overførsel af data til MitRegneark fra fil
Rem ...
Rem ...

Rem Luk file
        ActiveWorkbook.Close
       
Rem Flyt til mappe2
        f1.Move (sti & mappe2 & "\" & f1.Name)
    Next
End Sub
Avatar billede denero Juniormester
13. september 2015 - 09:05 #2
Virker.

...men hvordan flytter jeg ("A1:B3").Value fra filen, der flyttes over i mit regneark. Havde godt nok noget kode, som jeg skrev, men?
Avatar billede supertekst Ekspert
13. september 2015 - 10:09 #3
Vender tilbage lidt senere
Avatar billede supertekst Ekspert
13. september 2015 - 17:46 #4
Nu mangler jeg at få at vide, hvordan "A1:B3" skal placeres i MitRegneark, når nu der er 5 filer i mappe1?
Avatar billede denero Juniormester
13. september 2015 - 18:14 #5
I princippet er det egentlig bare, hvordan jeg refererer til den aktuelle fil og til mit regneark.
Som jeg vil bruge det, går jeg ind på ark 1, kolonne A og så
Range("A65536").End(xlUp).Select
Avatar billede supertekst Ekspert
13. september 2015 - 23:21 #6
Ok - kommer her:

Rem Version 2
Const mappe1Navn = "Mappe1"
Const mappe2Navn = "Mappe2"
Dim sti As String
Dim mitRegneArk As Object
Public Sub HentFraMappe()
    Set mitRegneArk = ActiveWorkbook
   
    sti = ActiveWorkbook.Path & "\"
    hentOgFlytFiler mappe1Navn, mappe2Navn
End Sub
Private Sub hentOgFlytFiler(mappe1, mappe2)
Dim fs, f, f1 As Object, fc, fNavn As String
Dim fx As Workbook

    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder(sti & mappe1)
    Set fc = f.Files
   
    For Each f1 In fc
Rem Åbner filen
        Workbooks.Open f1
       
Rem ... overførsel af data til MitRegneark fra fil
        ActiveWorkbook.Sheets(1).Range("A1:B3").Copy
       
        With mitRegneArk.Sheets(1)
            .Paste
        End With
        Set fx = ActiveWorkbook
Rem ...
Rem ...
Rem Luk file
        fx.Application.CutCopyMode = False
        fx.Close
       
Rem Flyt til mappe2
        f1.Move (sti & mappe2 & "\" & f1.Name)
    Next
End Sub
Avatar billede denero Juniormester
14. september 2015 - 08:32 #7
Melder objekt run time error'424': OLbjekt required

        With mitRegneArk.Sheets(1)
Avatar billede supertekst Ekspert
14. september 2015 - 09:33 #8
Anvender du ovenstående kode - eller en tilpasning af egen kode.
Har ikke haft problemer under min test.
Avatar billede denero Juniormester
14. september 2015 - 09:43 #9
Bruger dette:


Const mappe1Navn = "Flytte1"
Const mappe2Navn = "Flytte2"
Dim sti As String

Public Sub HentFraMappe()
    Set mitRegneArk = ActiveWorkbook
   
    sti = ActiveWorkbook.Path & "\"
    hentOgFlytFiler mappe1Navn, mappe2Navn
End Sub


Private Sub hentOgFlytFiler(mappe1, mappe2)
Dim fs, f, f1 As Object, fc, fNavn As String
Dim fx As Workbook

    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder(sti & mappe1)
    Set fc = f.Files
   
    For Each f1 In fc
Rem Åbner filen
        Workbooks.Open f1
       
Rem ... overførsel af data til MitRegneark fra fil
        ActiveWorkbook.Sheets(1).Range("A1:B3").Copy
       
        With mitRegneArk.Sheets(1)
            .Paste
        End With
        Set fx = ActiveWorkbook
Rem ...
Rem ...
Rem Luk file
        fx.Application.CutCopyMode = False
        fx.Close
       
Rem Flyt til mappe2
        f1.Move (sti & mappe2 & "\" & f1.Name)
    Next
End Sub
Avatar billede supertekst Ekspert
14. september 2015 - 10:07 #10
Rem Version 2
Const mappe1Navn = "Mappe1"
Const mappe2Navn = "Mappe2"
Dim sti As String
Dim mitRegneArk As Object    '<--------
Avatar billede denero Juniormester
14. september 2015 - 10:53 #11
Som sædvanlig en fornøjelse.
Tak for hjælpen.
Avatar billede supertekst Ekspert
14. september 2015 - 11:42 #12
Selv tak - en fornøjelse at kunne hjælpe :-)
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