Dansk Regneark Forum
  Hjælp Hjælp  Søg i forum   Arrangementer   Opret ny bruger Opret ny bruger  Log ind Log ind


Emne lukketSidehoved og sidefod

 Besvar Besvar
Forfatter
MIBE Se dropdown
Bronze bruger
Bronze bruger
Avatar

Medlem: 17.Aug.2010
Land: Danmark
Status: Offline
Point: 30
Direkte link til dette indlæg Emne: Sidehoved og sidefod
    Sendt: 23.Sep.2011 kl. 23:36
Confused Hejsa,
 
Jeg kæmper en kamp i et regneark, hvor jeg har sidehoved (dokumentes navn) og sidefod (antal sider af sider).
 
Men jeg har et ønske om at der skal være en forside i samme regneark (uden brug af ekstra faner), som skal udskrives uden sidehoved og sidefod.
 
Hvordan gør jeg dette?
 
Det er jo ikke ligesom i Word, hvor jeg kan vælge fra hvilken side der skal påbegyndes sidehoved og sidefod.
 
Håber en kan hjælpe mig hermed.
 
Mange hilsner
 
Michael
Til top



Til top
Allan Se dropdown
Forum Admin
Forum Admin
Avatar
Forum Admin

Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
Direkte link til dette indlæg Sendt: 24.Sep.2011 kl. 00:06
Hej Michael,
 
Jeg ved ikke om du har forstand på VBA, men det er nu engang løsningen for dig.
Åben din fil, hold ALT nede mens du trykker 1 gang på F11.
Find din fil i træet til venstre, vælg THISWORKBOOK og sæt nedenstående kode ind i vinduet til højre for.
 
Private Sub Workbook_BeforePrint(Cancel As Boolean)
ForsideNavn = "Forside" 'Dette skal være navnet på din forside.
If ActiveSheet.Name = "ForsideNavn" Then
    Worksheets(ForsideNavn).PageSetup.LeftHeader = ""
    Worksheets(ForsideNavn).PageSetup.RightHeader = ""
    Worksheets(ForsideNavn).PageSetup.CenterHeader = ""
    Worksheets(ForsideNavn).PageSetup.LeftFooter = ""
    Worksheets(ForsideNavn).PageSetup.RightFooter = ""
    Worksheets(ForsideNavn).PageSetup.CenterFooter = ""
End If
End Sub
 
Du skal naturligvis rette navnet på din forside i koden (Her kaldet "Forside".
Koden vil forhindre at header/Footer bliver udskrevet på din forside.
 
//Allan
Til top
MIBE Se dropdown
Bronze bruger
Bronze bruger
Avatar

Medlem: 17.Aug.2010
Land: Danmark
Status: Offline
Point: 30
Direkte link til dette indlæg Sendt: 24.Sep.2011 kl. 00:20
Hej Allan,
 
Nej det har jeg ikke lige forstand på - men jeg giver det et forsøg - tak for hjælpen.
 
Mange hilsner
 
Michael
Til top
MIBE Se dropdown
Bronze bruger
Bronze bruger
Avatar

Medlem: 17.Aug.2010
Land: Danmark
Status: Offline
Point: 30
Direkte link til dette indlæg Sendt: 24.Sep.2011 kl. 00:26
Hej igen Allan,
 
Der står anført VBAProject efterfulgt af mit filnavn - men jeg har åbenbart anvendt en kode jeg ikke længere kan huske hvad er.
 
Har du nogle ideer hertil, da det er et omfattende regneark/skabelon?
 
Mange hilsner
 
Michael
Til top
MIBE Se dropdown
Bronze bruger
Bronze bruger
Avatar

Medlem: 17.Aug.2010
Land: Danmark
Status: Offline
Point: 30
Direkte link til dette indlæg Sendt: 24.Sep.2011 kl. 01:41
Hej igen Allan,
 
Jeg fandt koden - men kan ikke få det til at virke.
 
Jeg må prøve igen når jeg har fået sovet lidt Wink
 
Mange hilsner
 
Michael
Til top
MIBE Se dropdown
Bronze bruger
Bronze bruger
Avatar

Medlem: 17.Aug.2010
Land: Danmark
Status: Offline
Point: 30
Direkte link til dette indlæg Sendt: 24.Sep.2011 kl. 11:08
Hej Allan,
 
Den fane jeg har i Excelarket hedder RE, og i den fane har jeg således øverst i arket selve forsiden efterfulgt af 35 sider regneark. Den aktuelle kode du har sendt mig ser således ud pt.
 
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveSheet.Name = "RE" Then
    Worksheets(RE).PageSetup.LeftHeader = ""
    Worksheets(RE).PageSetup.RightHeader = ""
    Worksheets(RE).PageSetup.CenterHeader = ""
    Worksheets(RE).PageSetup.LeftFooter = ""
    Worksheets(RE).PageSetup.RightFooter = ""
    Worksheets(RE).PageSetup.CenterFooter = ""
End If
End Sub
 
Men jeg får fortsat sidehoved og sidefod med når jeg udskriver (vis udskift) - hvad er der galt?
 
Endelig, er der mulighed for at siden efter forsiden som jo gerne skulle være skjult med sidehoved og sidefod at få den efterfølgende side til at starte med side 1 af 35 og således ikke side 2 af 35?
 
Mange hilsner
 
Michael
Til top
MIBE Se dropdown
Bronze bruger
Bronze bruger
Avatar

Medlem: 17.Aug.2010
Land: Danmark
Status: Offline
Point: 30
Direkte link til dette indlæg Sendt: 24.Sep.2011 kl. 23:25
Hej igen Allan,
 
Når jeg udskriver får jeg fejl - som åbenbart skyldes fejlen (formlen er som beskrevet ovenfor).
 
Michael
Til top
Allan Se dropdown
Forum Admin
Forum Admin
Avatar
Forum Admin

Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
Direkte link til dette indlæg Sendt: 25.Sep.2011 kl. 21:21
Hej Michael,
 
Du skal prøve at bruge koden nøjagtig som jeg postede den. Du har rettet i koden så den fejler.
Jeg har nu korrigeret koden så den passer på navnet "RE"
 
Private Sub Workbook_BeforePrint(Cancel As Boolean)
ForsideNavn = "RE" 'Dette skal være navnet på din forside.
If ActiveSheet.Name = ForsideNavn Then
Worksheets(ForsideNavn).PageSetup.LeftHeader = ""
Worksheets(ForsideNavn).PageSetup.RightHeader = ""
Worksheets(ForsideNavn).PageSetup.CenterHeader = ""
Worksheets(ForsideNavn).PageSetup.LeftFooter = ""
Worksheets(ForsideNavn).PageSetup.RightFooter = ""
Worksheets(ForsideNavn).PageSetup.CenterFooter = ""
End If
End Sub
 
Sæt koden ind og prøv at se hvad der sker når du udskriver arket "RE"
 
//Allan
Til top
MIBE Se dropdown
Bronze bruger
Bronze bruger
Avatar

Medlem: 17.Aug.2010
Land: Danmark
Status: Offline
Point: 30
Direkte link til dette indlæg Sendt: 26.Sep.2011 kl. 16:02
Hej Allan,
 
Mange tak for din tilbagevenden.
 
Men jeg får ikke nogle fejl nu, men til gengæld udskrives fortsat sidehoved og sidefod - hvad er der så galt?
 
Mange hilsner
 
Michael
Til top
MIBE Se dropdown
Bronze bruger
Bronze bruger
Avatar

Medlem: 17.Aug.2010
Land: Danmark
Status: Offline
Point: 30
Direkte link til dette indlæg Sendt: 26.Sep.2011 kl. 17:08
Hej igen Allan,
 
Jeg tror forviringen hænger sammen med, at du får opfattelsen af at jeg har en speciel forside i mit regneark.
 
Det der egentlig er ønsket, er at når jeg udskriver mit regneark "fanen RE" så ønsker jeg ikke sidehoved og sidefod på den første side - og det kommer der fortsat med den postede kode.
 
Det jeg ønsker, er således at side to og fremefter kommer med sidehoved og sidefod.
 
Hvis det er muligt kunne det jo være rart at første side med sidenhoved og sidefod hed side 1 af side x
og ikke side 2 af x. Men om det kan lade sig gøre er knap så væsentligt.
 
Mange hilsner
 
Michael
Til top
rassten Se dropdown
Guld bruger
Guld bruger


Medlem: 26.Okt.2010
Status: Offline
Point: 694
Direkte link til dette indlæg Sendt: 26.Sep.2011 kl. 19:38
Undskyld jeg blander mig, men prøv at se nedenstående kode:

Private Sub Workbook_BeforePrint(Cancel As Boolean)

FCenter = "&P-1 " 'vigtig med mellemrum efter -1 ellers virker det ikke
FCenter2 = "&N-1 "
FCenter3 = FCenter & " af " & FCenter2
HCenter = "&F" '"&A" hvis det skal være ark navn og ikke fil navn

With ActiveSheet
.PageSetup.DifferentFirstPageHeaderFooter = True
.PageSetup.LeftHeader = ""
.PageSetup.RightHeader = ""
.PageSetup.CenterHeader = HCenter
.PageSetup.LeftFooter = ""
.PageSetup.RightFooter = ""
.PageSetup.CenterFooter = FCenter3
End With
End Sub


Start med at gå i side opsætning og slet hvis der skulle stå nogen sidehoved og sidefod.
Derefter placere koden i VBA modulet "ThisWorkBook"

eksempel: uploads/107/Tilpas_sidehoved_og_fod_før_print.xlsm
VH rassten

Arbejde excel 2010
Privat excel 2010
Til top
MIBE Se dropdown
Bronze bruger
Bronze bruger
Avatar

Medlem: 17.Aug.2010
Land: Danmark
Status: Offline
Point: 30
Direkte link til dette indlæg Sendt: 28.Sep.2011 kl. 09:45
Hej Rassten,
 
Tak for din indblanden - det virker i Office 2010 Big smile, men desværre ikke i Office 2003 Excel som jeg benytter Cry.
 
Når jeg vælger udskrivning, så får jeg følgende meddelse:
 
Microsoft Visual Basic
 
Runtime error '438':
 
Objekt dosen't support this property or method
 
Har du/I nogen ideer til hvad jeg kan gøre?
 
Mange hilsner
 
Michael
Til top
rassten Se dropdown
Guld bruger
Guld bruger


Medlem: 26.Okt.2010
Status: Offline
Point: 694
Direkte link til dette indlæg Sendt: 29.Sep.2011 kl. 19:42
Prøv at ligge koden ind i almindeligt vba modul, og gå det trinvis igennem ved at trykke på funktions "F8" tasten på dit tastatur.
På den måde kan du se hvor koden fejler.

Jeg håber ikke koden fejler i
FCenter = "&P-1 " 'vigtig med mellemrum efter -1 ellers virker det ikke
FCenter2 = "&N-1 "
FCenter3 = FCenter & " af " & FCenter2
HCenter = "&F" '"&A" hvis det skal være ark navn og ikke fil navn

Denne del "&P-1 " gør  du ser aktuelle side tal minus 1, "&n-1 " er så det samlet antal sider minus 1
Denne del burde nemlig også virke for excel 2003 , se eventuelt http://support.microsoft.com/kb/48198

Næste mulige fejl kan komme ved:
.PageSetup.DifferentFirstPageHeaderFooter = True
Denne sætning gør at sidehoved og fod ikke vises på første side.
Denne sætning har jeg fundet ved at indspille en makro, og optaget handlingen: gået i sideopsætning, under sidehoved/sidefod sat flueben i "Speciel første side". Lukket sideopsætning og stoppet makro indspilningen. Der efter gik jeg den indspillede kode igennem og fat sætningen. Dette er gjort i excel 2007, og jeg ved ikke om man i excel 2003 også har mulighed for at gøre noget ved "Speciel første side", men hvis det er muligt kan det nemlig godt være at sætningen vil være lidt anderledes.


VH rassten

Arbejde excel 2010
Privat excel 2010
Til top
MIBE Se dropdown
Bronze bruger
Bronze bruger
Avatar

Medlem: 17.Aug.2010
Land: Danmark
Status: Offline
Point: 30
Direkte link til dette indlæg Sendt: 03.Okt.2011 kl. 20:00
Hej igen Wink
 
Jeg kan ikke få det til at virke, ej heller hvis jeg trykker F8 som jf. linialen "Debug" kan benyttes via "Step into". Men der sker altså ikke noget når jeg trykke den direkte vej?
 
Nå, men når jeg forsøger at udskrive får jeg fejl - men linjen som der brokkes over i første omgang, er den jeg har markeret nedenfor med rød.
 
Koden ser jo således ud i mit regneark:
 
Private Sub Workbook_BeforePrint(Cancel As Boolean)
FCenter = "&P-1 " 'vigtig med mellemrum efter -1 ellers virker det ikke
FCenter2 = "&N-1 "
FCenter3 = FCenter & " af " & FCenter2
HCenter = "&F" '"&A" hvis det skal være ark navn og ikke fil navn
With ActiveSheet
.PageSetup.DifferentFirstPageHeaderFooter = True
.PageSetup.LeftHeader = ""
.PageSetup.RightHeader = ""
.PageSetup.CenterHeader = HCenter
.PageSetup.LeftFooter = ""
.PageSetup.RightFooter = ""
.PageSetup.CenterFooter = FCenter3
End With
End Sub
 
Til top
rassten Se dropdown
Guld bruger
Guld bruger


Medlem: 26.Okt.2010
Status: Offline
Point: 694
Direkte link til dette indlæg Sendt: 03.Okt.2011 kl. 21:42
Når du får en fejl i den linje, kunne det tyde på at man ikke har mulighed for at sætte første side som speciel i excel 2003 som i 2007 og frem.

Men med kraftig hjælp fra http://www.rondebruin.nl/print.htm
har jeg lavet denne kode i stedet

Slet den  forrige kode fuldstændigt så den ikke går ind og blander sig i den nye kode.

Sub Print2()
    Dim TotPages As Long
    TotPages = Application.ExecuteExcel4Macro("GET.DOCUMENT(50)")
    With ActiveSheet
        .PageSetup.LeftHeader = ""
        .PageSetup.RightHeader = ""
        .PageSetup.CenterHeader = ""
        .PageSetup.LeftFooter = ""
        .PageSetup.RightFooter = ""
        .PageSetup.CenterFooter = ""
        ActiveSheet.PrintOut From:=1, To:=1
        'side 1 printes
       
        FCenter = "&P-1 " 'vigtig med mellemrum efter -1 ellers virker det ikke
        FCenter2 = "&N-1 "
        FCenter3 = FCenter & " af " & FCenter2
        HCenter = "&F" '"&A" hvis det skal være ark navn og ikke fil navn
       'virker kun i excel 2007 og frem .PageSetup.DifferentFirstPageHeaderFooter = True
        .PageSetup.LeftHeader = ""
        .PageSetup.RightHeader = ""
        .PageSetup.CenterHeader = HCenter
        .PageSetup.LeftFooter = ""
        .PageSetup.RightFooter = ""
        .PageSetup.CenterFooter = FCenter3
       
        ActiveSheet.PrintOut From:=2, To:=TotPages
        'side 2 og frem printes
    End With
End Sub


Denne kode lægges i et almindeligt modul.

Når du så vælger at kører makroen printer den først side 1 uden nogen header eller footer.  Lige derefter printer den side 2 og frem men nu med header og footer.
Det betyder at du ikke kan vælge at test makroen som "vis udskrift", da header og footer jo først kommer på under print.


VH rassten

Arbejde excel 2010
Privat excel 2010
Til top
MIBE Se dropdown
Bronze bruger
Bronze bruger
Avatar

Medlem: 17.Aug.2010
Land: Danmark
Status: Offline
Point: 30
Direkte link til dette indlæg Sendt: 03.Okt.2011 kl. 22:03
Hej Rassten,
 
Når jeg udskriver kommer der desværre fortsat sidehoved og sidefod.
 
Koden ser nu således ud:
 
Sub Print2()
Dim TotPages As Long
TotPages = Application.ExecuteExcel4Macro("GET.DOCUMENT(50)")
With ActiveSheet
.PageSetup.LeftHeader = ""
.PageSetup.RightHeader = ""
.PageSetup.CenterHeader = ""
.PageSetup.LeftFooter = ""
.PageSetup.RightFooter = ""
.PageSetup.CenterFooter = ""
ActiveSheet.PrintOut From:=1, To:=1
'side 1 printes
FCenter = "&P-1 " 'vigtig med mellemrum efter -1 ellers virker det ikke
FCenter2 = "&N-1 "
FCenter3 = FCenter & " af " & FCenter2
HCenter = "&F" '"&A" hvis det skal være ark navn og ikke fil navn
'virker kun i excel 2007 og frem .PageSetup.DifferentFirstPageHeaderFooter = True
.PageSetup.LeftHeader = ""
.PageSetup.RightHeader = ""
.PageSetup.CenterHeader = HCenter
.PageSetup.LeftFooter = ""
.PageSetup.RightFooter = ""
.PageSetup.CenterFooter = FCenter3
ActiveSheet.PrintOut From:=2, To:=TotPages
'side 2 og frem printes
End With
End Sub
 
Jeg får ikke nogen fejlmeddelser.
 
Men du skriver at det skal være et almindeligt modul - hvordan mener du? Jeg bruger "ThisWorkbook"
 
Jeg har ikke nogen makroer - er det derfor (det har jeg ikke styr på at lave Confused)
 
Mange hilsner og tak for din ihærdighed/indsats
 
Michael
Til top
rassten Se dropdown
Guld bruger
Guld bruger


Medlem: 26.Okt.2010
Status: Offline
Point: 694
Direkte link til dette indlæg Sendt: 03.Okt.2011 kl. 22:26
Ok, du skal ikke have noget i "thisworkbook".
For at test makroen, hvis du har nogen excel filer åbne - luk dem.
Start et nyt excel ark, i celle a1 skriv 3-11-2011 og træk den ned til celle a150, nu har noget som kan printe og som fylder mere end 3 sider.

Som Allan skriver  tryk Alt og F11 for at gå til vba editor. I menuen "Insert" vælg module. I det vindu som så er åben indsætter tidligere kode.

Tast Alt og F11 igen for at gå tilbage til excel. Tast Alt og F8, så komme  et vindue op som hedder Makro, her vælger du Print2, og trykker "afspil"
VH rassten

Arbejde excel 2010
Privat excel 2010
Til top
MIBE Se dropdown
Bronze bruger
Bronze bruger
Avatar

Medlem: 17.Aug.2010
Land: Danmark
Status: Offline
Point: 30
Direkte link til dette indlæg Sendt: 03.Okt.2011 kl. 22:43
Hej Rassten,
 
du er dygtig Wink det virker med det eksempel.
 
Nu skal jeg bare have testet mit andet regneark - men det burde jo også virke.
 
Jeg skal blot forstå følgende - er vi enige om at jeg ved udskrivning bliver nødt til at vælgt Alt + F8 for at opnå udskriften uden sidehoved og sidefod på første side? Det vil jeg mene da hvis jeg blot vælger Ctrl + P så kommer der side 0 af x ud.
 
Mange tak for din hjælp Smile
 
Michael
Til top
rassten Se dropdown
Guld bruger
Guld bruger


Medlem: 26.Okt.2010
Status: Offline
Point: 694
Direkte link til dette indlæg Sendt: 03.Okt.2011 kl. 22:53
Jep, du er nød til at gå gennem Alt+F8.
Makroen går gennem 2 trin, først sætter den udskrift uden sidehoved og sidefod på alle sider- printer så kun side 1, så går makroen ind i side opsætningen  igen, laver sidehoved og sidefod på alle sider, og printer så side 2 og frem.
Denne sidste sideopsætning vil så være den som excel husker og derfor, hvis du blot vælger Ctrl+P vil det være den sidste sideopsætning som er den aktuelle.
VH rassten

Arbejde excel 2010
Privat excel 2010
Til top
 Besvar Besvar

Skift forum Forum tilladelser Se dropdown

© 2010 - 2024 Dansk Regneark Forum - en del af Excel-regneark.dk