Avatar billede ny_baerbar Nybegynder
15. maj 2014 - 13:56 Der er 4 kommentarer og
1 løsning

Macro til travesere mappe og kopiere indhold internt i de enkelte filer

Hej

Excel 2010 Engelsk

Jeg har tidligere fået hjælp i følgende tråd til en makro:
http://www.eksperten.dk/spm/984008

Det jeg nu søger er en lignende makro, der dog istedet skal kunne kopiere en celleværdi internt i hver enkelt fil i en mappe.

Altså den skal åbne fil 1 og kopiere indholdet på ark1 celle a1 og indsætte som værdi i ark1 celle b1. Den skal den så kunne gøre for alle filer i en mappe.
Avatar billede Mads Larsen Nybegynder
15. maj 2014 - 15:56 #1
Ændret i løsningen fra Supertekst fra den anden tråd du linker.

Tager værdien fra A1 og indsætter til B1 i det første Ark i projektmappen.

Dim sti As String, filnavn As String
Dim sysXLS As Workbook, sysNavn As String

Dim divXLS As Workbook
Public Sub tilsætUgedag()
    sti = ActiveWorkbook.Path
    Set sysXLS = ActiveWorkbook
    sysNavn = sysXLS.Name
   
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder(sti)
    Set fc = f.Files
   
Rem traverser den aktuelle mappe - find filer med extension .dat
    For Each f1 In fc
        filnavn = f1.Name
       
        If filnavn <> sysNavn Then
            Workbooks.Open sti & "\" & filnavn
            Set divXLS = ActiveWorkbook
            With divXLS
                .Sheets(1).Range("B1") = .Sheets(1).Range("A1")
               
                .Application.DisplayAlerts = False
                .Save
                .Close
            End With
            Set divXLS = Nothing
        End If
    Next
   
    MsgBox "Gennemløb afsluttet"
End Sub
Avatar billede ny_baerbar Nybegynder
15. maj 2014 - 16:19 #2
Tak for hurtigt svar.

Den gør den praktiske del af jobbet som den skal, men melder fejl 400 istedet for at komme beskeden "Gennemløb afsluttet".

Kan du også se løsningen på det?
Avatar billede Mads Larsen Nybegynder
15. maj 2014 - 17:41 #3
Hej igen

Prøv med denne her :)
Det ser ud til at det var fordi "hovedarket" var åben og derfor finder den en skjult skrivebeskyttet fil af hovedarket som den så ikke kunne åbne. Det skulle den helst ikke gøre nu :)


Dim sti As String, filnavn As String
Dim sysXLS As Workbook, sysNavn As String

Dim divXLS As Workbook
Public Sub tilsætUgedag()
    sti = ActiveWorkbook.Path
    Set sysXLS = ActiveWorkbook
    sysNavn = sysXLS.Name
 
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder(sti)
    Set fc = f.Files
 
Rem traverser den aktuelle mappe - find filer med extension .dat
    For Each f1 In fc
        filnavn = f1.Name
     
        If filnavn <> sysNavn And InStrRev(filnavn, "$") = 0 Then
            Workbooks.Open sti & "\" & filnavn
            Set divXLS = ActiveWorkbook
            With divXLS
                .Sheets(1).Range("B1") = .Sheets(1).Range("A1")
             
                .Application.DisplayAlerts = False
                .Save
                .Close
            End With
            Set divXLS = Nothing
        End If
    Next
 
    MsgBox "Gennemløb afsluttet"
End Sub
Avatar billede ny_baerbar Nybegynder
15. maj 2014 - 19:30 #4
Fremragende! Tak for hjælpen.

Læg venligst et svar.
Avatar billede Mads Larsen Nybegynder
16. maj 2014 - 11:16 #5
Super :-) her er et svar
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