Avatar billede mip Nybegynder
27. september 2007 - 10:49 Der er 26 kommentarer og
1 løsning

Begrænsninger i side opsætning?

Jeg sider med et word dokument som er genereret via brevflet, filen består af 108 flettede poster, som giver et dokument med 108 sektions skift, hver sektion har i side opsætning / kassette valg første side kassette1 resten kassette2, dette vil jeg gerne ændre, så hver sektion bliver første side kassette2 resten kassette4, men det ser ud til der er en begrænsning på 101 side.
Hvis jeg vil ændre           
With ActiveDocument.PageSetup
    .FirstPageTray = Bakke2
    .OtherPagesTray = Bakke3
End With
står .FirstPageTray og .OtherPagesTray allerede til 9999999, så makroen går sirekte i fejl.
Sletter jeg sektioner så der kun er 99 tilbage virker det fint, så er der nogen der kender til denne begrænsning, eller har en ide til hvordan man kan omgå dette problem?

Mip
Avatar billede word-hajen Nybegynder
27. september 2007 - 13:04 #1
Du bør styre din opsætning via hoveddokumentet og ikke via det flettede dokument.
Avatar billede mip Nybegynder
27. september 2007 - 13:51 #2
Vi er helt enig, men nu har vi en masse allerede flettede dokumenter, som skal ændres.
Kender du noget til denne begrænsning eller en måde at omgå det på.
Avatar billede word-hajen Nybegynder
27. september 2007 - 14:30 #3
Nej, jeg kender ikke til begrænsningen (har nu heller aldrig prøvet at teste det).

Du løber alle sektionerne igennem hver for sig og ændrer setup'et, ikk'?
Og du har en printer med bakkerne som den aktive printer, når du løber dokumentet igennem?
Hvilken Office-version kører du med?
Avatar billede mip Nybegynder
27. september 2007 - 14:51 #4
Nej jeg vælge at ændre det for hele dokumentet på en gang, hvad skal jeg skrive for at ændre setup for hver sektion?
Avatar billede mip Nybegynder
27. september 2007 - 14:52 #5
Sorry glemte 1 info, word 2003
Avatar billede word-hajen Nybegynder
27. september 2007 - 18:16 #6
Prøv at løbe sektionerne igennem sådan:

Dim objSection As Section

For Each objSection In ActiveDocument.Sections
    objSection.PageSetup.FirstPageTray = Bakkevalg1
    objSection.PageSetup.OtherPagesTray = bakkevalg2
Next objSection

Husk at ændre bakkevalgene til det korrekte i forhold til din printer.
Avatar billede mip Nybegynder
27. september 2007 - 18:56 #7
Banko,
Stik mig et svar og få dinne point :-)

Mip
Avatar billede word-hajen Nybegynder
27. september 2007 - 19:07 #8
Fedt. Super at det var det, der skulle til :-)
Avatar billede mip Nybegynder
27. september 2007 - 19:53 #9
Lige et ekstra spørgsmål, du kan jo tydeligvis dit kram.
Er det på samme måde muligt at indsætte et print felt i toppen af hver side i et dokument.
Avatar billede word-hajen Nybegynder
27. september 2007 - 20:17 #10
Tak for point :-)

Hvad mener du med et printfelt?
Avatar billede mip Nybegynder
27. september 2007 - 21:20 #11
Fra menu linien indsæt / felt : kategori - alle : feltnavn - print.

Men det kunne være almindelig tekst.
Avatar billede word-hajen Nybegynder
27. september 2007 - 22:38 #12
Det er ikke nødvendigt at løbe alle sektionerne igennem, hvis sidehovedet i efterfølgende sektioner er linket til den foregående. Så kan du nøjes med den første sektion.

Ved at collapse ranget bliver evt. eksisterende tekst el. lignende ikke slettet fra sidehovedet. Hvis evt. tekst skal fjernes i samme moment, skal du blot fjerne linjerne med collapse.

*****
    Dim objSection As Section
    Dim objHeaderFirst As Range
    Dim objHeaderPrimary As Range
   
    For Each objSection In ActiveDocument.Sections
        Set objHeaderFirst = objSection.Headers(wdHeaderFooterFirstPage).Range
        Set objHeaderPrimary = objSection.Headers(wdHeaderFooterPrimary).Range
        objHeaderFirst.Collapse wdCollapseStart
        objHeaderPrimary.Collapse wdCollapseStart
       
        objHeaderFirst.Fields.Add objHeaderFirst, wdFieldEmpty, "PRINT \p page ", True
        objHeaderPrimary.Fields.Add objHeaderPrimary, wdFieldEmpty, "PRINT \p page ", True
    Next objSection
   
    Set objHeaderFirst = Nothing
    Set objHeaderPrimary = Nothing
   
******
Avatar billede mip Nybegynder
27. september 2007 - 23:05 #13
Det er en fornøjelse at se en prof, komme med problem løsninger.
Jeg siger endnu engang banko, og mange tak.
Nu skal jeg ikke forstyrer mere.

Mip
Avatar billede word-hajen Nybegynder
28. september 2007 - 07:22 #14
Velbekomme - og du er velkommen til at "forstyrre" :-)
Avatar billede mip Nybegynder
28. september 2007 - 21:26 #15
Hi word-haj,

Når du nu så pænt siger jeg gerne må forstyrer,
Hvad siger du så til samme senario som print feltet, men istedet for at indsætte feltet i headeren, skal den indsættes i toppen af siderne, men sådan at første side har et print felt med et indhold og resten af siderne et print felt med et andet indhold.
Da det er et nyt spørgsmål er jeg selvfølgelig villig til at lave et emne.

Mip
Avatar billede word-hajen Nybegynder
28. september 2007 - 21:36 #16
For mig er toppen af siderne headeren; hvis det ikke skal være i headeren, må du overtale mig til andet ;-) God forklaring eller argument - om ikke andet så for at give det rigtige hint eller "nåwet" til en løsning.
Avatar billede mip Nybegynder
28. september 2007 - 22:00 #17
Ok prøver,
Jeg skal lave en makro genvejs tast der når den er kørt, har indsat disse print koder, indholdet af disse koder skulle så gerne gøre at når dokumentet bliver udskrevet, vil der på første side være et logo overlay, og på resten af siderne et andet.
Jeg er ikke så meget for at bruge header, da det er forskellige typer af dokumenter, og nogle af disse har allerede en del opsætning i headeren.

Det kunne måske løses, ved først at udskrive side 1 og der efter resten, med indsat print felt.

Håber dette kunne overtale dig "\_/"
Avatar billede mip Nybegynder
28. september 2007 - 22:09 #18
Jeg har allerede lavet noget kode der virker, men det er 10 kilometer langt, da det er lavet med makro optageren, skal jeg indsætte det så du kan se hvad det gør?
Avatar billede word-hajen Nybegynder
28. september 2007 - 22:52 #19
Ahaa... så vi taler om logo. Skal logoet ikke være placeret samme sted uanset dokumenttype?

Umiddelbart ville jeg oprette et flydende objekt med logoet, sørge for, at det har den rigtige placering, gemme det som en autotekst og så - via kode - smide det ind i dokumentet; formentlig stadig i headeren, da jeg synes, at det er noget "snask" at skulle sætte det samme ind (fra side 2 og frem) flere gange. Og da du jo har lært *s* at collapse sidehovedet, er det ikke noget problem, at der står noget andet i forvejen.
Avatar billede mip Nybegynder
28. september 2007 - 23:36 #20
"Logoet" kan være et giro overlay, en betalings bagside, rigtigt logo ovs. så de er forskellige og ikke placeret ens.
De ligger som et pcl overlay på printeren, derfor print feltet.
Kan man med den makro du lavede, indsætte et print felt på første side og et andet på resten?
Avatar billede word-hajen Nybegynder
29. september 2007 - 10:53 #21
Ja, du kan godt bruge min kode til at indsætte 2 forskellige ting - forudsat selvfølgelig at du har sat dokumentet op med speciel første side.
Avatar billede mip Nybegynder
29. september 2007 - 12:21 #22
Ja, så er den eneste måde nok at indsætte print feltet på hver side, jeg har prøbet at løse det på nedenstående måde, tror du den kan forkortes.



Public pr As String
Public FjernPrinter As String
Public Bakke1 As Long
Public Bakke2 As Long
Public Bakke3 As Long
Public Bakke4 As Long
Public Bakke5 As Long
Public Bakke6 As Long
Public Deck As Long


Public Const pr1 = "standard"
Public Const pr2 = "ikke_brugt1"
Public Const pr3 = "ikke_brug2"
Public Const pr4 = "\\ks-dc2\nrp5-073-cir2"
Public Const pr5 = "\\ks-dc2\nrp6-034-cir1"
Public Const pr6 = "ikke_brugt3"
Public Const pr7 = "\\ks-dc2\nrp6-091-cir1"
Public Const pr8 = "\\ks-dc2\nrp6-091-cir2"
Public Const pr9 = "\\ks-dc2\biblio"
Public Const pr10 = "\\ks-dc2\dirsek1"
Public Const pr11 = "\\ks-dc2\dirsek2"
Public Const pr12 = "\\ks-dc2\biblio2"

Public Const Originalt_brev = 0
'Udskriver side 1 fra bakke 2 og resten af siderne fra bakke 3. Genvej Alt + A.

Public Const Originalt_brev_og_kopi = 1
'Udskriver side 1 fra bakke 2 og resten af siderne fra bakke 3 + udskriv side 1 med overlay fra stort magasin og resten af siderne med side 2 overlay fra stort magasin. Genvej Alt + S.

Public Const Kopi_af_brev = 2
'Udskriv side 1 med overlay fra stort magasin og resten af siderne med side 2 overlay fra stort magasin. Genvej Alt + D.

Public Const Originalt_dokument = 3
'Udskriver alle sider fra bakke 3. Genvej Alt + Q.

Public Const Originalt_dokument_og_kopi = 4
'Udskriver alle sider fra bakke 3  + udskriv alle sider med side 2 overlay fra stort magasin. Genvej Alt + W.

Public Const Kopi_af_dokument = 5
'Udskriv alle sider med side 2 overlay fra stort magasin. Genvej Alt + E.

Public Const Alle_sider_på_side_1 = 6
'Udskriv alle sider fra bakke 2. Genvej Alt + L.

Public Const Alle_sider_på_side_1_og_kopi = 7
'Udskriv alle sider fra bakke 2 + udskriv med side 1 overlay fra stort magasin. Genvej Alt + K

Public Const Aktuel_side1 = 8
'Udskriver aktuel side fra bakke 2. Genvej Alt + G.

Public Const Aktuel_side2 = 9
'Udskriver aktuel side fra bakke 3. Genvej Alt + R.

Public Const Dokument_med_3_kopier = 10
'Udskriver hele dokumentet fra bakke 3 + udskriver 3 eksemplarer af hele dokumentet med side 2 overlay fra stort magasin. Genvej Alt + Æ.

Public Sub OriginaltBrev()
VaelgBakke (Originalt_brev)
End Sub

Public Sub OriginaltBrevOgKopi()
VaelgBakke (Originalt_brev_og_kopi)
End Sub

Public Sub KopiAfBrev()
VaelgBakke (Kopi_af_brev)
End Sub

Public Sub OriginaltDokument()
VaelgBakke (Originalt_dokument)
End Sub

Public Sub OriginaltDokumentOgKopi()
VaelgBakke (Originalt_dokument_og_kopi)
End Sub

Public Sub KopiAfDokument()
VaelgBakke (Kopi_af_dokument)
End Sub

Public Sub AlleSiderPåSide1()
VaelgBakke (Alle_sider_på_side_1)
End Sub

Public Sub AlleSiderPåSide1OgKopi()
VaelgBakke (Alle_sider_på_side_1_og_kopi)
End Sub

Public Sub AktuelSide1()
VaelgBakke (Aktuel_side1)
End Sub

Public Sub AktuelSide2()
VaelgBakke (Aktuel_side2)
End Sub

Public Sub DokumentMed3Kopier()
VaelgBakke (Dokument_med_3_kopier)
End Sub


Function CP(pr1, pr2 As String) As Boolean
    CP = False
  If InStr(UCase(pr1), UCase(pr2)) > 0 Then
    CP = True
  End If
End Function

Sub VaelgBakke(Valg As Integer)
   
    Dim ActivPage, varNumberPages As Variant
    Dim StandardPrinter
    Dim sprinter As String
    Dim stprinter As String
    Dim intEnd As Integer
   
    'Slå udskriv i baggrunden fra
    Options.PrintBackground = True  'False

    'valg af printer
    sprinter = Application.ActivePrinter

 
    Application.ScreenUpdating = False
    On Error GoTo Err_VaelgBakke
 

    'Undersøger om der findes mellemrum i UBC streng
    'hvis der gør konkatineres strPrinter ved mellemrummet
    intEnd = InStr(1, sprinter, " ")
    If intEnd > 1 Then
    sprinter = Left(sprinter, intEnd - 1)
    End If

    pr = sprinter
    pr = LCase(pr)

    'Kassette koder for valgte printer indlæses
    Select Case True
    Case CP(pr, pr1), CP(pr, pr2), CP(pr, pr3), CP(pr, pr4), CP(pr, pr5)
        Bakke1 = 1
        Bakke2 = 3
        Bakke3 = 2
        Bakke4 = 264
        Deck = 265

    Case CP(pr, pr6), CP(pr, pr7), CP(pr, pr8), CP(pr, pr9), CP(pr, pr10), CP(pr, pr11), CP(pr, pr12)
        Bakke1 = 1
        Bakke2 = 2
        Bakke3 = 2
        Bakke4 = 264
        Deck = 265
    Case Else
        MsgBox "Printer '" & pr & "' er ikke genkendt af programmet." & vbCrLf & _
                "Standard skuffevalg vil blive benyttet ('Tray2/Tray3')" & vbCrLf & vbCrLf & _
                "Kontakt IT-afdelingen", vbInformation, "Valg af papirskuffer"
        Bakke1 = wdPrinterDefaultBin
        Bakke2 = wdPrinterDefaultBin
        Bakke3 = wdPrinterDefaultBin
        Exit Sub
    End Select

    'Tæl antal sider
    varNumberPages = ActiveDocument.Content.Information(wdActiveEndAdjustedPageNumber)

    Select Case Valg
        Case Originalt_brev:
            'Sæt kassette valg til side 1 fra kassette 2 og øvrige fra kassette 3
            With ActiveDocument.PageSetup
                .FirstPageTray = Bakke2
                .OtherPagesTray = Bakke3
            End With
            Application.ScreenUpdating = True
            'Udskriv alle sider
            ActiveDocument.PrintOut
            Application.ScreenUpdating = False
        Case Originalt_brev_og_kopi:
            'Sæt kassette valg til side 1 fra kassette 2 og øvrige fra kassette 3
            With ActiveDocument.PageSetup
                .FirstPageTray = Bakke2
                .OtherPagesTray = Bakke3
            End With
            Application.ScreenUpdating = True
            'Udskriv alle sider
            ActiveDocument.PrintOut
            Application.ScreenUpdating = False
            'Sæt kassette valg til paperdeck
            With ActiveDocument.PageSetup
                .FirstPageTray = Deck
                .OtherPagesTray = Deck
            End With
          'Indsæt Logo 1 på første side og logo 2 på øvrige
            If varNumberPages = 1 Then
                Side1Logo
            Else:
                Side1Logo
                Side2LogoResten
            End If
            Application.ScreenUpdating = True
          'Udskriv alle sider
          ActiveDocument.PrintOut
          Application.ScreenUpdating = False
          'Fjern logoer
          RydLogo
   
        Case Kopi_af_brev:
          'Sæt kassette valg til paperdeck
          With ActiveDocument.PageSetup
                .FirstPageTray = Deck
                .OtherPagesTray = Deck
          End With
            'Indsæt Logo 1 på første side og logo 2 på øvrige
            If varNumberPages = 1 Then
                Side1Logo
            Else:
                Side1Logo
                Side2LogoResten
            End If
            Application.ScreenUpdating = True
            'Udskriv alle sider
            ActiveDocument.PrintOut
            Application.ScreenUpdating = False
            'Fjern logoer
            RydLogo

        Case Originalt_dokument:
            With ActiveDocument.PageSetup
                .FirstPageTray = Bakke3
                .OtherPagesTray = Bakke3
            End With
            Application.ScreenUpdating = True
            'Udskriv alle sider
            ActiveDocument.PrintOut
            Application.ScreenUpdating = False
   
        Case Originalt_dokument_og_kopi:
            With ActiveDocument.PageSetup
                .FirstPageTray = Bakke3
                .OtherPagesTray = Bakke3
            End With
            Application.ScreenUpdating = True
            'Udskriv alle sider
            ActiveDocument.PrintOut
            Application.ScreenUpdating = False
          'Sæt kassette valg til paperdeck
          With ActiveDocument.PageSetup
                .FirstPageTray = Deck
                .OtherPagesTray = Deck
          End With
            'Indsæt Logo 2 på første side og logo 2 på øvrige
            If varNumberPages = 1 Then
                Side2Logo
            Else:
                Side2Logo
                Side2LogoResten
            End If
            Application.ScreenUpdating = True
            'Udskriv alle sider
            ActiveDocument.PrintOut
            Application.ScreenUpdating = False
            'Fjern logoer
            RydLogo
               
        Case Kopi_af_dokument:
          'Sæt kassette valg til paperdeck
          With ActiveDocument.PageSetup
                .FirstPageTray = Deck
                .OtherPagesTray = Deck
          End With
            'Indsæt Logo 2 på første side og logo 2 på øvrige
            If varNumberPages = 1 Then
                Side2Logo
            Else:
                Side2Logo
                Side2LogoResten
            End If
            Application.ScreenUpdating = True
            'Udskriv alle sider
            ActiveDocument.PrintOut
            Application.ScreenUpdating = False
            'Fjern logoer
            RydLogo
   
        Case Alle_sider_på_side_1:
            With ActiveDocument.PageSetup
                .FirstPageTray = Bakke2
                .OtherPagesTray = Bakke2
            End With
            Application.ScreenUpdating = True
            'Udskriv alle sider
            ActiveDocument.PrintOut
            Application.ScreenUpdating = False
   
        Case Alle_sider_på_side_1_og_kopi:
            With ActiveDocument.PageSetup
                .FirstPageTray = Bakke2
                .OtherPagesTray = Bakke2
            End With
            Application.ScreenUpdating = True
            'Udskriv alle sider
            ActiveDocument.PrintOut
            Application.ScreenUpdating = False
          'Sæt kassette valg til paperdeck
          With ActiveDocument.PageSetup
                .FirstPageTray = Deck
                .OtherPagesTray = Deck
          End With
            'Indsæt Logo 2 på første side og logo 2 på øvrige
            If varNumberPages = 1 Then
                Side1Logo
            Else:
                Side1Logo
                Side1LogoResten
            End If
            Application.ScreenUpdating = True
            'Udskriv alle sider
            ActiveDocument.PrintOut
            Application.ScreenUpdating = False
            'Fjern logoer
            RydLogo

        Case Aktuel_side1:
            With ActiveDocument.PageSetup
                .FirstPageTray = Bakke2
                .OtherPagesTray = Bakke2
            End With
            Application.ScreenUpdating = True
            'Udskriv alle sider
            ActiveDocument.PrintOut Range:=wdPrintCurrentPage
            Application.ScreenUpdating = False
   
        Case Aktuel_side2:
            With ActiveDocument.PageSetup
                .FirstPageTray = Bakke3
                .OtherPagesTray = Bakke3
            End With
            Application.ScreenUpdating = True
            'Udskriv alle sider
            ActiveDocument.PrintOut Range:=wdPrintCurrentPage
            Application.ScreenUpdating = False
   
        Case Dokument_med_3_kopier:
            With ActiveDocument.PageSetup
                .FirstPageTray = Bakke3
                .OtherPagesTray = Bakke3
            End With
            Application.ScreenUpdating = True
            'Udskriv alle sider
            ActiveDocument.PrintOut
            Application.ScreenUpdating = False
          'Sæt kassette valg til paperdeck
          With ActiveDocument.PageSetup
                .FirstPageTray = Deck
                .OtherPagesTray = Deck
          End With
            'Indsæt Logo 2 på første side og logo 2 på øvrige
            If varNumberPages = 1 Then
                Side2Logo
            Else:
                Side2Logo
                Side2LogoResten
            End If
            Application.ScreenUpdating = True
            'Udskriv alle sider
            ActiveDocument.PrintOut Copies:=3
            Application.ScreenUpdating = False
            'Fjern logoer
            RydLogo
           

    End Select
   
    'Sæt sideopsætning tilbage til auto
    With ActiveDocument.PageSetup
        .FirstPageTray = wdPrinterDefaultBin
        .OtherPagesTray = wdPrinterDefaultBin
    End With

    'Cursor bliver kørt til top af dokument
'    Selection.HomeKey Unit:=wdStory
'  Application.ScreenUpdating = True

Exit_VaelgBakke:
    Exit Sub

Err_VaelgBakke:
    MsgBox Prompt:="Kunne ikke finde printer." & Chr$(13) & Err.Description, Title:="Printer fejl"
    Resume Exit_VaelgBakke

    End Sub

Sub Side1Logo()
   
'Gå til top af dokument
    Selection.HomeKey Unit:=wdStory
    If ActiveDocument.PageSetup.Orientation = wdOrientPortrait Then
'Indsæt print felt med pcl kode
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
    "PRINT &u600D&l0O&f0Y&f2X", PreserveFormatting:=True
    Else
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
    "PRINT &u600D&l0O&f3Y&f2X", PreserveFormatting:=True
    End If
End Sub

Sub Side1LogoResten()
    Dim ActivPage, varNumberPages As Variant
   
'Tæl antal sider
    varNumberPages = ActiveDocument.Content.Information(wdActiveEndAdjustedPageNumber)
   
'Find aktive side nr
    ActivPage = Selection.Information(wdActiveEndPageNumber)
   
'Gå til aktiv side plus 1
    Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:="(ActivPage + 1)"
   
'Find aktive side nr
    ActivPage = Selection.Information(wdActiveEndPageNumber)
   
'Hvis aktiv side nr er midre end antal sider indsættes logo 1 på resten af siderne
    If ActivPage < varNumberPages Then
    Side1LogoResten1
            Else:
'Hvis aktiv side nr er lig med antal sider indsættes logo 1
    If ActivPage = varNumberPages Then
    If ActiveDocument.PageSetup.Orientation = wdOrientPortrait Then
'Indsæt print felt med pcl kode
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
    "PRINT &u600D&l0O&f0Y&f2X", PreserveFormatting:=True
    Else
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
    "PRINT &u600D&l0O&f3Y&f2X", PreserveFormatting:=True
    End If
    End If
    End If
End Sub

Sub Side1LogoResten1()
   
    If ActiveDocument.PageSetup.Orientation = wdOrientPortrait Then
'Indsæt print felt med pcl kode
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
    "PRINT &u600D&l0O&f0Y&f2X", PreserveFormatting:=True
    Else
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
    "PRINT &u600D&l0O&f3Y&f2X", PreserveFormatting:=True
    End If
    Side1LogoResten
    End Sub

Sub Side2Logo()
   
'Gå til top af dokument
    Selection.HomeKey Unit:=wdStory
   
    If ActiveDocument.PageSetup.Orientation = wdOrientPortrait Then
'Indsæt print felt med pcl kode
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
    "PRINT &u600D&l0O&f1Y&f2X", PreserveFormatting:=True
    Else
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
    "PRINT &u600D&l0O&f4Y&f2X", PreserveFormatting:=True
    End If
End Sub

Sub Side2LogoResten()
    Dim ActivPage, varNumberPages As Variant
'Tæl antal sider
    varNumberPages = ActiveDocument.Content.Information(wdActiveEndAdjustedPageNumber)
'Find aktive side nr
    ActivPage = Selection.Information(wdActiveEndPageNumber)
'Gå til aktiv side plus 1
    Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:="(ActivPage + 1)"
'Find aktive side nr
    ActivPage = Selection.Information(wdActiveEndPageNumber)
'Hvis aktiv side nr er midre end antal sider indsættes logo 2 på resten af siderne
    If ActivPage < varNumberPages Then
    Side2LogoResten1
            Else:
'Hvis aktiv side nr er lig med antal sider indsættes logo 2
    If ActivPage = varNumberPages Then
    If ActiveDocument.PageSetup.Orientation = wdOrientPortrait Then
'Indsæt print felt med pcl kode
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
    "PRINT &u600D&l0O&f1Y&f2X", PreserveFormatting:=True
    Else
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
    "PRINT &u600D&l0O&f4Y&f2X", PreserveFormatting:=True
    End If
    End If
    End If
End Sub

Sub Side2LogoResten1()

    If ActiveDocument.PageSetup.Orientation = wdOrientPortrait Then
'Indsæt print felt med pcl kode
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
    "PRINT &u600D&l0O&f1Y&f2X", PreserveFormatting:=True
    Else
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
    "PRINT &u600D&l0O&f4Y&f2X", PreserveFormatting:=True
    End If
    Side2LogoResten
End Sub

Sub RydLogo()
    'Slå vis koder til
    ActiveWindow.View.ShowFieldCodes = Not ActiveWindow.View.ShowFieldCodes
    Selection.HomeKey Unit:=wdStory
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "^d PRINT"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    'Slå vis koder fra
    ActiveWindow.View.ShowFieldCodes = Not ActiveWindow.View.ShowFieldCodes

End Sub
Avatar billede word-hajen Nybegynder
29. september 2007 - 14:51 #23
Ja, det kan godt forkortes. Du skal sætte dig ned og analysere din kode. Alle de steder, hvor du rent faktisk gør det samme - evt. med forskellige variabler - bør du smide i en subprocedure (med argumenter, hvis der er forskellige variabler). Så skal du kun have koden en gang; meget nemmere at vedligeholde.

Overvej at splitte din Select Case Valg - det kan du umiddelbart gøre på en måde, så du kalder en subprocedure fra din oprindelige procedure (f.eks. fra OriginaltBrevOgKopi, hvor du jo allerede ved hvilket valg der er foretaget).
Avatar billede mip Nybegynder
30. september 2007 - 12:12 #24
Det er nu mest den del med indsættelse af print felter jeg mener.
F.eks SideLogo1 indsætter logo på side 1, SideLogo1Resten chekker om der er flere sider og indsætter logo på sidste side, SideLogo1Resten1 indsætter logo på hver side SideLogo1Resten finder untagen sidste, det er denne gennem rulning af dokumentet + indsættelse af print feltet øverst på siden der burde kunne gøres nemmere, men jeg er ikke hjemme i mine typer, er det ikke muligt at lave et range på f.eks side 2 til slut a dokumentet gennem rulle ranget og indsætte feltet?
Avatar billede word-hajen Nybegynder
30. september 2007 - 13:43 #25
Det er jo netop der, hvor benyttelse af sidehovedet kommer ind. Så skal du hverken tjekke antalsider eller løbe noget igennem (medmindre du har sektioner, hvor sidehoved ikke hænger sammen med tidligere). Du skal kun sørge for at have speciel første side, hvis den skal se anderledes ud end resten og derefter håndtere dine indsættelser én gang i hver type sidehoved (primary, firstpage).
Avatar billede mip Nybegynder
30. september 2007 - 15:02 #26
Du har ganske ret i at insætte i sidehovedet er det nemmeste, problemet er bare jeg ikke altid kan være sikker på sidehovedet hænger sammen med tidligere hoved.
Jeg tror jeg vil sige mange tak for din meget konpetente hjælp, og søge videre på nettet.


Mange tak :-)
Mip
Avatar billede word-hajen Nybegynder
30. september 2007 - 20:47 #27
Velbekomme.

Men i øvrigt kan du tjekke på, om sidehovederne (hvis der er flere sektioner) hænger sammen med den forrige. Hvis det ikke gør, indsætter du dit logo/overlay igen. Det er rimelig nemt at have med at gøre. Sig til, hvis du vil have indspark på den front.
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
Kurser inden for grundlæggende programmering

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