Avatar billede lineriber Praktikant
08. marts 2013 - 09:55 Der er 10 kommentarer og
1 løsning

VBA i excel 2010: åbne fil og gem som

Hej Eksperte

Kan jeg få en af jer til at skrive en VBA der virker i excel 2010, der gør følgende:

1. Åbner dialogboks til at vælge en fil der skal åbnes. Startfolder skal kunne angives i VBA'en

2. Når man har valgt filen, skal man tvinges til at gemme filen med nyt navn. Man skal selv kunne angive navn og folder.
Starfolder skal kunne angives i VBA'en

3. Kopier celle Sheet1!A1:D100 fra den fil man stod i inden man åbnede den valgte fil i pkt. 1.

4. indsæt de kopierede celler SOM VÆRDI i Sheet20!A15:D115 i den valgte fil fra pkt. 1

5. Gem og luk den valgte fil fra pkt. 1

Glæder mig til at få jeres ekspert-hjælp :-)

Mvh
Line
Avatar billede supertekst Ekspert
08. marts 2013 - 15:49 #1
Hej Line

Er det ok med valg af fil via en userform?
Avatar billede lineriber Praktikant
11. marts 2013 - 08:47 #2
Hej Supertekst, dejligt at høre fra dig :-)

Kan man i en userform browse i ens filer? Altså ligesom hvis man normalt trykkede på "Open" i excel?
Hvis det er tilfældet, så vil det være helt fint.

Jeg tror tidliger jeg har haft en VBA kode der har brugt et application object der hed "Application.FileDialog(msoFileDialogOpen)" som vist også gav mulighed for at vælge en fil der skulle åbnes.
Avatar billede supertekst Ekspert
11. marts 2013 - 08:54 #3
Hej Line

Fordelen er, at du kan definere hvilken mappe, der skal vises filer fra - hvis det vel og mærke er den samme hver gang. På samme måde kan der vælges en mappe, hvor filen skal gemmes.

Eks.:
Const startFolder = "D:\Eksperten"
Dim filNavn As String
Private Sub UserForm_activate()
    visFiler startFolder

End Sub
Private Sub visFiler(mappenavn)
Dim fs, f, f1, fc, fNavn As String, ext As String, navnSplit As Variant

    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder(mappenavn)
    Set fc = f.Files
   
    For Each f1 In fc
        filNavn = f1.Name
        Me.Lb_filListe.AddItem filNavn
    Next
End Sub
Avatar billede lineriber Praktikant
11. marts 2013 - 08:57 #4
Jamen det tror jeg er helt fint, hvis der ikke er nogle ulemper jeg skal være opmærksom på ved at bruge userform?
Avatar billede supertekst Ekspert
11. marts 2013 - 09:12 #5
I ThisWorkbook - er dette:

Private Sub Workbook_Open()
    Load UserForm1
    UserForm1.Show
End Sub

men ellers skulle der ikke være nogle ulemper. så vidt jeg kan se - ellers må du jo give signal.
Avatar billede lineriber Praktikant
12. marts 2013 - 15:22 #6
Hej Supertekst

Private Sub Workbook_Open()skal kopieres ind under "ThisWorkbook".
Men hvad med den anden kode du skrev i #3, hvor skal den kopieres ind? Jeg syntes ikke rigtig at jeg kan få den til at køre....

De koder du har skrevet, dækker de kun pkt. 1 i mit spørgsmål?
Avatar billede supertekst Ekspert
12. marts 2013 - 15:51 #7
Hej Line

#3 skal sættes ind i Userformen
Avatar billede lineriber Praktikant
13. marts 2013 - 13:36 #8
Hej igen Supertekst

Kunne jeg få dig til at sende mig en fil hvor det er sat korrekt ind, for jeg er ikke sikker på hvordan jeg skal gøre det :-(

Og så spørger jeg lige igen: De koder du har skrevet, dækker de kun pkt. 1 i mit spørgsmål?
Avatar billede supertekst Ekspert
13. marts 2013 - 13:49 #9
Hej Line

Jeg sender filen - hvilken email - evt. send den i PM

Ja - det er kun til pkt. 1
Avatar billede lineriber Praktikant
08. april 2013 - 16:27 #10
Andre der kan hjælpe mig ???
Supertekst er ikke længere på opgaven pga travlhed.
Avatar billede lineriber Praktikant
19. april 2013 - 10:57 #11
Jeg lukker pga manglende 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
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