Avatar billede besida Nybegynder
18. november 2008 - 20:36 Der er 6 kommentarer og
1 løsning

VBA + Kopi af ark

Hej

Er der nogen der kan hjælpe med et styk kode ti at kopiere og indsætte et ark i excel?

Koden skal kunne opretholde sideskift, kolonnebredde, rækkehøjde mv.?
Jeg kan sagtens kopiere arket vha. af egen kode, men den flytter blot data over, og opretholder ikke formatering mv.
Kan man evt. kopiere arket, uden af trække formler mv. med over?
Avatar billede Spotgun Seniormester
18. november 2008 - 21:01 #1
Har rodet med noget lignende for nyligt.
Sheets("ArkNavn").Copy fungerer fint hos mig, og tager også formatteringen med.
Avatar billede mrkr Juniormester
18. november 2008 - 21:42 #2
Denne indsætter et nyt ark ved navn "nyoprettet ark" og kopiere data, formatering mm over.

Sub KopierArk()

Sheets("Ark2").Copy Before:=Sheets(1)  'ret selv til "ark2" til det navn du gerne vil have kopieret data fra
ActiveSheet.Name = "nytoprettet ark"  'ret selv "nyoprettet ark" til det navn du gerne vil have dit nyoprettede ark skal hedde

End Sub
Avatar billede mrkr Juniormester
18. november 2008 - 21:42 #3
glemte lige at sige at den kopiere fra "ark2"
Avatar billede besida Nybegynder
18. november 2008 - 23:06 #4
Hej tak for jeres svar :)


Men når jeg kopiere arket fuldstændigt, får jeg trukket formlerne med over. Kan man undgå dette på en måde?
Har siddet og lavet en makro der gør det slavisk, og sætter rækker og kolonner samme bredde og højde, samt sætter marginer ens (eller burde den gøre, her driller den)

Min makro er her. kan den evt. laves om eller?

Public Sub Nytark()

c = Sheets("faktura").Range("n5")

Sheets("faktura").Range("b2:i42").Select

Selection.Copy

Sheets.Add

ActiveSheet.Name = c
' overfører columns & Rows

Columns("A:A").ColumnWidth = 3
Columns("B:B").ColumnWidth = 41
Columns("C:C").ColumnWidth = 6
Columns("D:D").ColumnWidth = 12
Columns("E:E").ColumnWidth = 5.14
Columns("F:F").ColumnWidth = 5.29
Columns("G:G").ColumnWidth = 13
Columns("H:H").ColumnWidth = 3
Rows("1:4").RowHeight = 12.75
Rows("5:5").RowHeight = 60
Rows("6:14").RowHeight = 12.75
Rows("15:15").RowHeight = 45
Rows("16:17").RowHeight = 12.75
Rows("18:32").RowHeight = 18
Rows("33:33").RowHeight = 6.75
Rows("34:36").RowHeight = 18
Rows("37:37").RowHeight = 12.75
Rows("38:38").RowHeight = 47.25
Rows("39:39").RowHeight = 12.75
Rows("40:40").RowHeight = 12.75
Rows("41:42").RowHeight = 50.25

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False

Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False

' Tilpasning af marginer

With ActiveSheet.PageSetup
.LeftMargin = 2
.RightMargin = 0
.TopMargin = 0.5
.BottomMargin = 2.5
       
End With

End Sub
Avatar billede mrkr Juniormester
18. november 2008 - 23:35 #5
Denne gør vist nogenlunde det samme som du har anført ovenfor

Sub KopierArk()
    c = Sheets("faktura").Range("n5")

    Sheets("Faktura").Copy Before:=Sheets(1) 
    ActiveSheet.Name = c
   
    Columns("A:I").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
   
    Columns("J:M").Select ' er ikke sikker på at du skal bruge disse linjer. De sletter alle data der står fra kolonne J til M. Hvis ikke så slet dem
    Selection.Clear      ' er ikke sikker på at du skal bruge disse linjer. De sletter alle data der står fra kolonne J til M. Hvis ikke så slet dem

End Sub
Avatar billede besida Nybegynder
19. november 2008 - 16:55 #6
Hej
Avatar billede besida Nybegynder
19. november 2008 - 16:58 #7
Hej mrkr.

perfekt. Det lykkedes :)
Det funger bare.

Kan man gøre sådan, at udklipsholderen bliver tømt samtidig? eller??

Men tak for jeres hjælp :)
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