Forfatter |
Emne Søg Emne funktioner
|
MIBE
Bronze bruger
Medlem: 17.Aug.2010
Land: Danmark
Status: Offline
Point: 30
|
Emne: Sidehoved og sidefod Sendt: 23.Sep.2011 kl. 23:36 |
 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
|
 |
|
|
 |
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
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
|
 |
MIBE
Bronze bruger
Medlem: 17.Aug.2010
Land: Danmark
Status: Offline
Point: 30
|
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
|
 |
MIBE
Bronze bruger
Medlem: 17.Aug.2010
Land: Danmark
Status: Offline
Point: 30
|
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
|
 |
MIBE
Bronze bruger
Medlem: 17.Aug.2010
Land: Danmark
Status: Offline
Point: 30
|
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  Mange hilsner Michael
|
 |
MIBE
Bronze bruger
Medlem: 17.Aug.2010
Land: Danmark
Status: Offline
Point: 30
|
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
|
 |
MIBE
Bronze bruger
Medlem: 17.Aug.2010
Land: Danmark
Status: Offline
Point: 30
|
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
|
 |
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
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
|
 |
MIBE
Bronze bruger
Medlem: 17.Aug.2010
Land: Danmark
Status: Offline
Point: 30
|
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
|
 |
MIBE
Bronze bruger
Medlem: 17.Aug.2010
Land: Danmark
Status: Offline
Point: 30
|
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
|
 |
rassten
Guld bruger
Medlem: 26.Okt.2010
Status: Offline
Point: 694
|
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
|
 |
MIBE
Bronze bruger
Medlem: 17.Aug.2010
Land: Danmark
Status: Offline
Point: 30
|
Sendt: 28.Sep.2011 kl. 09:45 |
Hej Rassten,
Tak for din indblanden - det virker i Office 2010  , men desværre ikke i Office 2003 Excel som jeg benytter  .
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
|
 |
rassten
Guld bruger
Medlem: 26.Okt.2010
Status: Offline
Point: 694
|
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
|
 |
MIBE
Bronze bruger
Medlem: 17.Aug.2010
Land: Danmark
Status: Offline
Point: 30
|
Sendt: 03.Okt.2011 kl. 20:00 |
Hej igen
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
|
 |
rassten
Guld bruger
Medlem: 26.Okt.2010
Status: Offline
Point: 694
|
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
|
 |
MIBE
Bronze bruger
Medlem: 17.Aug.2010
Land: Danmark
Status: Offline
Point: 30
|
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  )
Mange hilsner og tak for din ihærdighed/indsats
Michael
|
 |
rassten
Guld bruger
Medlem: 26.Okt.2010
Status: Offline
Point: 694
|
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
|
 |
MIBE
Bronze bruger
Medlem: 17.Aug.2010
Land: Danmark
Status: Offline
Point: 30
|
Sendt: 03.Okt.2011 kl. 22:43 |
Hej Rassten,
du er dygtig  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 
Michael
|
 |
rassten
Guld bruger
Medlem: 26.Okt.2010
Status: Offline
Point: 694
|
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
|
 |