Forfatter |
Emne Søg Emne funktioner
|
Ib Hansen
Guld bruger
Medlem: 15.Apr.2014
Land: Danmark
Status: Offline
Point: 652
|
Emne: Udskriv flere sider med 2 områder med PrintPreview Sendt: 01.Jul.2015 kl. 10:09 |
Hej Forum.
Jeg fik en kode af Excelgaard, der vha. userform.checkboxe kan vælges flere printområder til printning = Et område pr. checkbox. Hvis flere områder defineres med checkboxene, gemmes de som TEMP før de printes.
Jeg har et ark, hvor hvert printområde har en overskrift. Overskriften står det samme sted i arket og skifter, afhængigt af, hvilke printområde der vælges.
Det jeg behøver Hver checkbox definere overskrifts- og udskriftsområdet og gemmer de 2 områder som TEMP. Hvert nye TEMP-område skal indeholde den skiftende overskrift og det definerede printområde. Osv.
Jeg har tjekket koder på nettet og prøvet en masse, men uden held.
Se også forklaringen i det vedhæftede eksempel.
|
Excel 2010 Dk og 2019 Dk på samme computer. Bruger dog stadig mest 2010.. Men sådan er der jo så majet :o)
|
![Til top Til top](forum_images/back_to_top.png) |
|
|
![Til top Til top](forum_images/back_to_top.png) |
EXCELGAARD
Platin bruger
Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5437
|
Sendt: 03.Jul.2015 kl. 14:48 |
Jeg har lige kigget på det - og, jeg forstår ikke???
Eller, som jeg forstår det, så vil du have overskriften i D4:J4 med på alle sider - og, det har du allerede.... ...altså kan det jo ikke være det, der er problemet, men det er sådan, som jeg forstår det.
Prøv lige at forklare det en gang til så selv den gamle her kan forstå det?
|
Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
|
![Til top Til top](forum_images/back_to_top.png) |
Ib Hansen
Guld bruger
Medlem: 15.Apr.2014
Land: Danmark
Status: Offline
Point: 652
|
Sendt: 04.Jul.2015 kl. 06:53 |
Overskriften er sat til at være med på alle print som standard vha. Excel menuen: Sidelayout - Udskriftstitler - Gentag øverste række. (Det skal fjernes).
Herefter markeres der kun et print area af den eller de valgte månederne.
Det jeg gerne vil have din Print-TEMP kode via checkboxene til: - Markere overskriften + den 1. valgte måned og gemme de 2 udskriftsområder som TEMP. - Markere overskriften + den 2. valgte måned og gemme de 2 udskriftsområder som TEMP. - Markere overskriften + den 3. valgte måned og gemme de 2 udskriftsområder som TEMP. - osv. - Og sluttelig lave en udskrift af de valgte måneder vha. PrintPreview, med hver sin overskift.
Altså 2 valgte printområder for hver måned. (Overskriften + den valgte måned).
- Prøv at åbne eksemplet. - Åben knappen "Print flere". - Vælg alle 3 måneder og Udskriv.
Der laves en udskrift af alle 3 måneder, men overskriften vil være den sidst valgte måned på alle prints. Overskriften skal selvfølgelig passe til hver enkelt måned, når der printes flere på en gang.
|
![Til top Til top](forum_images/back_to_top.png) |
EXCELGAARD
Platin bruger
Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5437
|
Sendt: 06.Jul.2015 kl. 09:09 |
Hej Gnakse,
Undskyld, at jeg ikke har svaret endnu, men jeg har rasende travlt i disse dage - jeg prøver, at få tid til det i morgen...
|
Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
|
![Til top Til top](forum_images/back_to_top.png) |
Ib Hansen
Guld bruger
Medlem: 15.Apr.2014
Land: Danmark
Status: Offline
Point: 652
|
Sendt: 06.Jul.2015 kl. 09:17 |
Jeg har prøvet at fjerne standard udskriften af overskriften i settings Sidelayout - Udskriftstitler - Gentag øverste række og har ledt på nettet efter eksempelvis VBA Multiply Print, men kan ikke engang få koderne til at virke på en enkelt side uden bug.
Jeg håber du kan cracke den, da jeg har 7 forskellige sider med udskrifter, hvorpå jeg gerne vil have mulighed for at kunne printe flere måneder på en gang inkl. overskriften til hver måned.
Mvh. Ib
Ps. Jeg har også været på job hele weekenden og har heller ikke haft tid og har først rigtig tid på onsdag.
|
![Til top Til top](forum_images/back_to_top.png) |
EXCELGAARD
Platin bruger
Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5437
|
Sendt: 08.Jul.2015 kl. 10:07 |
Så prøver vi lige igen...
Hvis jeg har forstået dig rigtigt, så kan det ikke lade sig gøre ,hvad du beskriver: Nemlig, at formelen i overskriftscellen skal lave nye beregninger (for at få teksten til at passe til hver side) undervejs, mens der udskrives...
Hvis du ønsker, at overskriftscellen skal ændre sig, efterhånden som du når frem til månederne, må du udskrive månederne enkeltvis og lave en ny beregning ind i mellem månederne...
Dette gi'r selvfølgelig det problem, at du ikke kan få et 'Print Preview' af alle månederne samlet.
Det problem kunne du eventuelt løse, ved at 'udskrive' månederne enkeltvis som et PDF-dokument, og når alle månederne er udskrevet, så samlet PDF-dokumenterne til et enkelt samlet dokument, og så vise dette PDF-dokument i stedet for et 'Print Preview'.
Igen: Hvis jeg har forstået rigtigt, hvad du ønsker, at gøre...
|
Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
|
![Til top Til top](forum_images/back_to_top.png) |
Ib Hansen
Guld bruger
Medlem: 15.Apr.2014
Land: Danmark
Status: Offline
Point: 652
|
Sendt: 08.Jul.2015 kl. 11:23 |
Hmmm.
Hvis jeg har forstået din kode ret, gemmes et udskriftsområde som Temp - Hoppe videre til næste område, der gemmes som Temp - Osv. Et temp-område for hver kode. (Jeg går ud fra, når et område gemmes som Temp, er det et øjebliksbillede af det valgte område).
Herefter udskrives alle de gemte Temp områder, på hver sin side. Det virker.
Jeg kan finde mange link på nettet med helt almindelige Multiply Print Area, jeg ikke kan få til at køre med copy/paste. Derfor har jeg prøvet at indspille en makro i mit Excel 2010 - Der heller ikke virker !!
Sub Makro1() Range("D4:J5").Select ActiveSheet.PageSetup.PrintArea = "$D$4:$J$5" Range("D6:J10").Select ActiveSheet.PageSetup.PrintArea = "$D$6:$J$10" ActiveSheet.PrintPreview End Sub |
Alligevel har jeg prøvet at omsætte det til din Temp koden i arket. - Først har jeg fjernet området fra Sidelayout, Udskriftstitler, Gentag øverste række = $4:$5. - Så har jeg lavet koderne med de to print områder. - Jeg har også prøvet at indsætte ActiveSheet.PageSetup. foran alle TempPrintArea
Men intet hjælper og det forstår jeg ikke ?
'Print januar If CheckBox1.Value = True Then ActiveSheet.Range("A2:A4").ClearContents '______________________Sletter 1-tal der definere overskriften ActiveSheet.Range("A2") = 1 '___________________________________Sætter 1-tal til overskrift januar TempPrintArea = "D4:J5" & PrintAreaDevider '____________________Gemme overskriften som temp TempPrintArea = "D6:J10" & PrintAreaDevider '___________________Gemme udskriftsområdet som temp ActiveSheet.DisplayAutomaticPageBreaks = False End If '_______________________________________________________________________________________________________________
'Print februar If CheckBox2.Value = True Then ActiveSheet.Range("A2:A4").ClearContents '______________________Sletter 1-tal der definere overskriften ActiveSheet.Range("A3") = 1 '___________________________________Sætter 1-tal til overskrift februar TempPrintArea = "D4:J5" & PrintAreaDevider '____________________Gemme overskriften som temp TempPrintArea = TempPrintArea & "D13:J17" & PrintAreaDevider '__Gemme udskriftsområdet som temp ActiveSheet.DisplayAutomaticPageBreaks = False End If '_______________________________________________________________________________________________________________
'Print marts If CheckBox3.Value = True Then ActiveSheet.Range("A2:A4").ClearContents '______________________Sletter 1-tal der definere overskriften ActiveSheet.Range("A4") = 1 '___________________________________Sætter 1-tal til overskrift marts TempPrintArea = "D4:J5" & PrintAreaDevider '____________________Gemme overskriften som temp TempPrintArea = TempPrintArea & "D20:J24" & PrintAreaDevider '__Gemme udskriftsområdet som temp ActiveSheet.DisplayAutomaticPageBreaks = False End If |
Kan det virkelig ikke lade sig gøre, at definere to områder i samme Temp kode ? - Først gemme et øjebliksbilledet af de to områder. - Så hoppe videre til næste to områder. - osv. - Og til sidst, udskrive de gemte Temp områder.
Mvh. Ib
|
![Til top Til top](forum_images/back_to_top.png) |
Ib Hansen
Guld bruger
Medlem: 15.Apr.2014
Land: Danmark
Status: Offline
Point: 652
|
Sendt: 08.Jul.2015 kl. 11:39 |
Ps. Et område i hver kode virker med PrintPreview. To områder i hver kode virker ikke med PrintPreview. Måske skal der indsættes en PageBreak efter hver koder eller et eller andet sted i koden ? Men hvordan, ved jeg ikke ? Mvh. Ib
|
![Til top Til top](forum_images/back_to_top.png) |
EXCELGAARD
Platin bruger
Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5437
|
Sendt: 09.Jul.2015 kl. 02:56 |
Som, jeg skriver, så kan det ikke lade sig gøre på den måde, som du vil have det... ...hvis jeg forstår dig ret, hvad jeg ikke er sikker på at jeg gør - det er stadig ikke gået op for mig, sådan 100%, hvad du forsøger - det er jo bare en udskriftsopgave: Definer området og udskriv. Et andet alternativ til at have forskellige udgaver af samme 'header' på hver side kunne være, at oprette headeren i regnearket til hver side, men gøre rækkerne skjult - og, så blot vise rækkerne, når der udskrives, og så lade formlerne i de skjulte rækker beregne den korrekte måned. Både den metode og den metode, jeg tidligere gav, med at lave det som enkelte PDF'ere først, burde virke... PS: Og, du indsætter et PageBreak med:
ActiveSheet.HPageBreaks.Add Before:=Range("A9") |
|
Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
|
![Til top Til top](forum_images/back_to_top.png) |
Ib Hansen
Guld bruger
Medlem: 15.Apr.2014
Land: Danmark
Status: Offline
Point: 652
|
Sendt: 09.Jul.2015 kl. 22:41 |
Hmmm, det er mere kompliceret end som så... Ligesom i eksemplet har jeg et regneark, men med 14 måneder. De 14 måneder strækker sig fra række 8 til 500 og den skiftende header, afhængig af hvilken måned der klikes frem, er først lavet meget senere, ud fra den eksisterende header i toppen af arket. Selvfølgelig kan jeg lave en header til hver måned og definere udskriften af headeren + måneden. Men arket fylder 3-4 MB ren VBA kodning og hvis jeg indsætter rækker med headere på hver fane, skal jeg til at editere i ca. 1 milliard million VBA koder, for at få arket til at beregne rigtigt på alle fanerne. (Der er forøvrigt samme type header på flere af fanerne).
Det er jeg bange for at løbe sur i eller også får jeg arket ødelagt fuldstændigt.
Jeg var overbevist om, det var muligt at definere Multiply.Print.Area, men må nok droppe tanken og lade brugerne udskrive hver måned en ad gangen, i stedet for flere på en gang.. Desværre ![Cry Cry](smileys/smiley19.gif) Tusind tak for hjælpen og jeg vender nok tilbage, når andre spørgsmål melder sig. Mvh. Ib
|
![Til top Til top](forum_images/back_to_top.png) |