Print side | Luk vindue

afgrænse udprint

Udskrevet fra: Dansk Regneark Forum
Kategori: Hjælp til regneark.
Forum navn: Makro og VBA
Forum beskrivelse: Hjælp til Makroer og VBA-programmering
Web-adresse: https://forum.excel-regneark.dk/forum_posts.asp?TID=4653
Udskrevet den: 18.Apr.2024 kl. 13:14


Emne: afgrænse udprint
Besked fra: Bjarnehansen
Emne: afgrænse udprint
Posteringsdato: 09.Jan.2022 kl. 10:34
hej

jeg har en udfordring i det vedhæftede ark.
på fanen bogføring har jeg en makro der udskriver bogføringen til og med den sidste linje der er noget i.
nu vil jeg gerne have den ændret til at den kun udskriver for det valgte år og det gør man på arket T i cellen C3

og året start står i T!C4 og året slut står i T!c5

jeg tænker noget i retning af :

hvis(og(a>=T!C4;a<=T!C5);så print; ingen ting)

men hvordan får jeg det i ind på knappen "Udskriv Bogføring"

og hvis så ændre årstalet i T!C3
så ændre den også udskrift området

der er kun 2 år i det vedhæftede ark

håber der er en der har et forslag
uploads/397/TEST-Regnskab_version_1.00.009.041_BETA.xlsm" rel="nofollow - uploads/397/TEST-Regnskab_version_1.00.009.041_BETA.xlsm


-------------
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.
Med venlig hilsen - Bjarne Hansen - Microsoft 365 DK



Svar:
Besked fra: Bjarnehansen
Posteringsdato: 06.Feb.2022 kl. 10:03
jeg har fået denne løsning fra vbaxpress.com
Private Sub CommandButton1_Click() '--------------------------------------------------------------------------' ' Printer til sidste række og hopper herefter til sidste celle i kolonne A ' '--------------------------------------------------------------------------' Dim ws As Worksheet Dim lastRow As Long 'arnelgp Dim yr As Long Dim var As Variant var = Split(Sheets("T").Range("h2").Value) yr = Val(Sheets("T").Range(var(UBound(var))) & "") Set ws = ThisWorkbook.Sheets("Bogføring") ws.Range("$A$5:$J$65536").AutoFilter Field:=1, Operator:= _ xlFilterValues, Criteria2:=Array(0, "12/31/" & yr) 'Find sidste række i kolonne B lastRow = [LOOKUP(2,1/(B1:B65536<>""),ROW(B1:B65536))] 'Sætter print området til sidste række ws.PageSetup.PrintArea = ws.Range("A3:J" & lastRow).Address 'Viser overskriften på hvert print ActiveSheet.PageSetup.PrintTitleRows = "$3:$5" 'Viser Dato - Klokken - Sidenummer i bunden af hvert print ActiveSheet.PageSetup.CenterFooter = "&8Udskrevet d. &D & - & Kl. &T" 'Viser ikke printbreaks på fanen ActiveSheet.DisplayAutomaticPageBreaks = False 'Åbner print ActiveSheet.PrintOut 'Preview 'Opdaterer skærmen og hopper til sidste A2 ws.Range("$A$5:$J$65536").AutoFilter ws.Range("$A$5:$J$65536").AutoFilter Application.ScreenUpdating = True ActiveSheet.Range("B65536").End(xlUp).Select End Sub


-------------
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.
Med venlig hilsen - Bjarne Hansen - Microsoft 365 DK



Print side | Luk vindue