Avatar billede lq Nybegynder
15. november 2005 - 09:26 Der er 11 kommentarer og
1 løsning

Kopier udskriftsområde til andet ark

Jeg har en mappe, hvor jeg vil kopiere udskriftsområder fra en del af arkene (10 i alt) til et andet regneark. Men det er kun værdier og formater, der skal sættes ind. Mappen de skal sættes ind i er navngivet "Intra" og har faneblade med navne, der korresponderer til  fanerne på de ark, hvor udskriftsområderne er kopieret fra (f.eks. 1.1, 1.2, 2.4, Alle). De skal naturligvis sættes ind i de ark, hvor navnene passer sammen.

Er der nogen der har en fiks kode til det?

LQ
Avatar billede kabbak Professor
15. november 2005 - 22:16 #1
Hvis du har begge mapper åbnet samtidig og kun har angivet udskriftsområder i de ark du vil kopierer, så er løsningen her.



Public Sub Overfør()
Dim PArea As String, Ark As String, Arknavn As String, Område As String

For Each navn In ThisWorkbook.Names
    Ark = Split(navn, "!")(0)
    Arknavn = Right(Ark, Len(Ark) - 1)
      Område = Right(navn, Len(navn) - 1)
  ThisWorkbook.Worksheets(Arknavn).Range(Område).Copy
      Workbooks("Intra").Activate
        Worksheets(Arknavn).Select
        Range("A1").Select
        Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=False
        Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=False
Next
End Sub
Avatar billede kabbak Professor
16. november 2005 - 08:24 #2
begrænser det lige til udskriftsområdet


Public Sub Overfør()
Dim PArea As Variant, Ark As String, Arknavn As String, Område As String

For Each PArea In ThisWorkbook.Names
    Ark = Split(PArea, "!")(0)
    Arknavn = Right(Ark, Len(Ark) - 1)
    Område = Right(PArea, Len(PArea) - 1)
   
      If Split(PArea.Name, "!")(1) = "Print_Area" Then
        ThisWorkbook.Worksheets(Arknavn).Range(Område).Copy
        Workbooks("Intra.xls").Activate
        Worksheets(Arknavn).Select
        Range("A1").Select
       
        Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=False
           
        Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=False
      End If
Next
End Sub
Avatar billede lq Nybegynder
18. november 2005 - 22:16 #3
Hej Kabbak

Beklager, jeg har ikke nået at teste det endnu. Jeg går ud fra at koden skal ind i et modul i afsenderarket?

LQ
Avatar billede kabbak Professor
19. november 2005 - 16:14 #4
ja det er korrekt, den skal være i et modul i den mappe hvor du har udskriftsområderne.

Hvis du har angivet udskriftsområder i ark, der ikke skal overføres, skal vi til at luse dem fra i koden.
Avatar billede lq Nybegynder
27. november 2005 - 00:19 #5
Efter en heftig omgang er det nu lykkedes at teste. Jeg får fejl "subscript out of range" i linjen

ThisWorkbook.Worksheets(Arknavn).Range(Område).Copy

HVordan kan det være?
Avatar billede kabbak Professor
27. november 2005 - 09:55 #6
Public Sub Overfør()
Dim PArea As Variant, Ark As String, Arknavn As String, Område As String

For Each PArea In ThisWorkbook.Names
    Ark = Split(PArea, "!")(0)
    Arknavn = Right(Ark, Len(Ark) - 1)
    Område = Right(PArea, Len(PArea) - 1)
  If InStr(1, PArea.Name, "!") > 0 Then
      If Split(PArea.Name, "!")(1) = "Print_Area" Then
        ThisWorkbook.Worksheets(Arknavn).Range(Område).Copy
        Workbooks("Intra.xls").Activate
        Worksheets(Arknavn).Select
        Range("A1").Select
       
        Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=False
           
        Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=False
      End If
      End If
Next
End Sub


Det er fordi du har andre navngivne områder, ud over udskriftsområderne, det skulle være ordnet nu.
Avatar billede lq Nybegynder
28. november 2005 - 00:54 #7
Jeg har testet den med 1 ark, hvor der er anført udskriftsområde og 2 ark, hvor der er anført udskriftsområde på hvert ark. Udskriftsområderne har samme størrelse. Det gik godt, når det kun være det første ark, men jeg fik samme fejl, når det var 2 ark.

Jeg kan slet ikke gennemskue koden, men måske er der en lettere løsning? Jeg har ranges af forskellig størrelse på de 10 forskellige ark. Det er dem jeg har afgrænset som udskriftsområder. De skal kopieres over i det andet ark regelmæssigt. Ville det være nemmere at definere range for hvert ark, kopiere og indsætte i tilsvarende ark i ny mappe?
Avatar billede lq Nybegynder
28. november 2005 - 00:55 #8
Det kunne være at jeg skulle øge pointene lidt mere. Kan jeg det?
Avatar billede kabbak Professor
28. november 2005 - 19:21 #9
prøv at teste denne

Public Sub Overfør()
Dim PArea As Variant, Ark As String, Arknavn As String, Område As String

For Each PArea In ThisWorkbook.Names
    Ark = Split(PArea, "!")(0)
    Arknavn = Right(Ark, Len(Ark) - 1)
    Område = Right(PArea, Len(PArea) - 1)
  If Right(PArea.Name, 10) = "Print_Area" Then
      If Split(PArea.Name, "!")(1) = "Print_Area" Then
        ThisWorkbook.Worksheets(Arknavn).Range(Område).Copy
        Workbooks("Intra.xls").Activate
        Worksheets(Arknavn).Select
        Range("A1").Select
       
        Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=False
           
        Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=False
      End If
      End If
Next
End Sub
Avatar billede kabbak Professor
28. november 2005 - 19:24 #10
lidt kortere

Public Sub Overfør()
Dim PArea As Variant, Ark As String, Arknavn As String, Område As String
For Each PArea In ThisWorkbook.Names
    Ark = Split(PArea, "!")(0)
    Arknavn = Right(Ark, Len(Ark) - 1)
    Område = Right(PArea, Len(PArea) - 1)
  If Right(PArea.Name, 10) = "Print_Area" Then
      ThisWorkbook.Worksheets(Arknavn).Range(Område).Copy
        Workbooks("Intra.xls").Activate
        Worksheets(Arknavn).Select
        Range("A1").Select
        Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=False
        Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=False
      End If
Next
End Sub
Avatar billede lq Nybegynder
08. december 2005 - 00:15 #11
man får ikke altid sadlet samme dag som man rider.

Det virkede. Lægger du et svar?
Avatar billede kabbak Professor
08. december 2005 - 08:12 #12
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
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