Avatar billede laurbjerg Nybegynder
05. januar 2005 - 11:45 Der er 12 kommentarer og
2 løsninger

åbne, kopiere og lukke

Jeg har nedenstående makro:

Filename = InputBox("Indtast filnavn:", "Filnavn")
If Filename <> "" Then
Filename = Filename & ".XLS"
Workbooks.Open Filename:= _
      "H:\" & Filename
    Range("G2:H26").Select
    Selection.Copy
    Windows("takter.xls").Activate
    Range("A6").Select
    ActiveSheet.Paste
Workbooks.Open Filename:= _
      "H:\" & Filename
    Range("n2:n26").Select
    Selection.Copy
    Windows("takter.xls").Activate
    Range("c6").Select
    ActiveSheet.Paste
Workbooks.Open Filename:= _
      "H:\" & Filename
    Range("s2:w26").Select
    Selection.Copy
    Windows("takter.xls").Activate
    Range("d6").Select
    ActiveSheet.Paste

Den kører meget langsomt, kan den "tunes" op på en eller anden måde???

Jeg vil også gerne at makroen lukker den fil hvorfra jeg har kopieret !!
Avatar billede tobler Nybegynder
05. januar 2005 - 11:58 #1
Hvad men du med at den kører langsomt?
Du kan efter: Filename = Filename & ".XLS"
indsætte dette:    Application.ScreenUpdating = False
og til slut dette:    Application.ScreenUpdating = True
Avatar billede kabbak Professor
05. januar 2005 - 22:29 #2
Public Sub hent()
Filename = InputBox("Indtast filnavn:", "Filnavn")
If Filename <> "" Then
Application.ScreenUpdating = False
Filename = Filename & ".XLS"
Workbooks.Open "H:\" & Filename

Range("G2:H26").Copy
Windows("takter.xls").Activate
Range("A6").Select
ActiveSheet.Paste

Windows(Filename).Activate
Range("n2:n26").Copy
Windows("takter.xls").Activate
Range("C6").Select
ActiveSheet.Paste

Windows(Filename).Activate
Range("s2:w26").Copy
Windows("takter.xls").Activate
Range("d6").Select
ActiveSheet.Paste

Windows(Filename).Close
Application.ScreenUpdating = True

End If
End Sub
Avatar billede bak Forsker
05. januar 2005 - 22:55 #3
eller prøv at undgå select og activate

Dim wb1 As Workbook
Dim wb2 As Workbook
Dim ws1 As Worksheet
Dim ws2 As Worksheet

Set wb1 = ActiveWorkbook
Set ws1 = wb1.Sheets("Takter")

Filename = InputBox("Indtast filnavn:", "Filnavn")
If Filename <> "" Then Filename = Filename & ".XLS"
Set wb2 = Workbooks.Open(Filename:="H:\" & Filename)
Set ws2 = wb2.Sheets(1)
   
ws2.Range("G2:H26").Copy Destination:=ws1.Range("A6")
ws2.Range("N2:N26").Copy Destination:=ws1.Range("C6")
ws2.Range("s2:w26").Copy Destination:=ws1.Range("D6")
wb2.Close savechanges:=False
Avatar billede kabbak Professor
05. januar 2005 - 23:03 #4
Bak > Takter er mappens navn og ikke arkets.
Avatar billede kabbak Professor
05. januar 2005 - 23:07 #5
Bak >
Jeg havde faktisk prøvet noget af det du gør med Destination:=
Men jeg fik altid fejl  og da der ikke indgår arknavne i eksemplet, så jeg opgavjeg at bruge denne måde.
Avatar billede bak Forsker
05. januar 2005 - 23:20 #6
Du har ret kabbak. Takter er jo et mappenavn. Bortset fra det så skal koden jo virke.
Alt andet lige er metoden med destination hurtigere og mere sikker, men med de maskiner vi har på arbejde i dag bliver optimering af koden mindre og mindre væsentlig :-)

Set wb1 = ActiveWorkbook
Set ws1 = wb1.ActiveSheet
Avatar billede bak Forsker
05. januar 2005 - 23:25 #7
Ps kabbak: Jeg kan ikke forstå at du har fået fejl i metoden, men på andre punkter har jeg også oplevet at et ark skal enten activeres eller selectes først inden en bestemt kommando kan udføres. Det vælger jeg at betragte som en MS-fejl ......
Avatar billede kabbak Professor
05. januar 2005 - 23:28 #8
måske, jeg brugte

Range("G2:H26").copy  Destination:=Windows("takter.xls").Range("A6")

det forstod den ikke
Avatar billede laurbjerg Nybegynder
06. januar 2005 - 08:25 #9
Hvis bak og kabbak smider i et svar , så deler i pointene da begge svar kan bruges.

til orientering kan siges at jeg brugt bak`s måde , da jeg der undgår at "aktivere" mappen hver gang
Avatar billede kabbak Professor
06. januar 2005 - 09:09 #10
ja, bak laver altid de bedste ;-(, så han skal også have alle point. ;-))
Avatar billede tobler Nybegynder
06. januar 2005 - 09:56 #11
Kabbak, du er heller uden evner! Jeg lærer meget af jer begge. :-)
Avatar billede bak Forsker
06. januar 2005 - 16:53 #12
Jeg vil gerne dele med kabbak. Han var først (som sædvanlig) og det virker.. :-)
Avatar billede laurbjerg Nybegynder
07. januar 2005 - 08:49 #13
> kabbak

Smider du også lige et svar
Avatar billede kabbak Professor
08. januar 2005 - 01:12 #14
ok
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