Avatar billede ny_baerbar Nybegynder
31. juli 2013 - 13:04 Der er 7 kommentarer og
1 løsning

VBA: indsætte celleindhold i 50 andre filer

Hej

Jeg arbejder i MS Excel 2010 Engelsk version.

Jeg skal have lavet en makro i fil A. Når makroen aktiveres skal den kopiere indholdet i celle A1 på ark 1 i pågældende fil A. For derefter at indsætte det i celle A1 på ark 1 i fil B. Samme handling for fil C, fil D osv.
Fil B, fil C, fil D osv. ligger i samme mappe. Så ideelt skal makroen bruge
*Set fldr = Application.FileDialog(msoFileDialogFolderPicker)*

Håber i kan hjælpe med at finde en løsning
Avatar billede supertekst Ekspert
31. juli 2013 - 13:09 #1
Ville nok anvende FileSystemObject og så traversere gennem mappen og åbne den enkelte fil - opdatere og gemme.
Avatar billede supertekst Ekspert
31. juli 2013 - 13:31 #2
Forslag:

Dim sti As String, filnavn As String
Dim sysXLS As Workbook, sysNavn As String, a1Værdi

Dim divXLS As Workbook
Public Sub tilsætUgedag()
    sti = ActiveWorkbook.Path
    Set sysXLS = ActiveWorkbook
    sysNavn = sysXLS.Name
    a1Værdi = Range("A1")
   
    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("A1") = a1Værdi
               
                .Application.DisplayAlerts = False
                .Save
                .Close
            End With
            Set divXLS = Nothing
        End If
    Next
   
    MsgBox "Gennemløb afsluttet"
End Sub
Avatar billede ny_baerbar Nybegynder
31. juli 2013 - 14:18 #3
Hej

Ja, det er også en måde at gøre det på.
Makroen virker en del af vejen. Dog når den ikke til den afsluttende MsgBox, da det virker som om a den bliver ved med at traversere og ender med følgende fejlmelding:

Run-time error '1004':
Application-defined or object-defined error

Kan du hjælpe med tilretning? Så tror jeg vi er i mål.
Avatar billede supertekst Ekspert
31. juli 2013 - 14:28 #4
Hej

Har afprøvet det en række filer uden problem.

Kommer der en Debug-knap frem - så prøv at trykke på den og se hvor den gule markering er.

Prøv evt. samtidigt at se hvilket filnavn, der er aktuel. Det kan du gøre ved at pege på den variabel, der hedder "filnavn".

I givet fald kan du prøve med mine filer - send en mail og jeg sender dem retur. Du er også velkommen til at sende dine.

@-adresse under min profil.
Avatar billede ny_baerbar Nybegynder
31. juli 2013 - 14:49 #5
Hej

Der kommer ingen Debug-knap frem. Når jeg kører makroen igennem med F8 så kan se at de andre filer i mappen bliver åbnet og værdie bliver indsat, når masterfil kommer bliver den lukket. Men når makroen kommer til den åbne ~$masterfil, så kommer fejlen.
Avatar billede supertekst Ekspert
31. juli 2013 - 15:02 #6
justering:       
If filnavn <> sysNavn And InStr(filnavn, "~") = 0 Then
Avatar billede ny_baerbar Nybegynder
31. juli 2013 - 15:51 #7
Sådan så virker det. Læg venligst et svar.
Tak for løsningen.
Avatar billede supertekst Ekspert
31. juli 2013 - 16:00 #8
Fint og selv tak
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