Avatar billede larspb Nybegynder
23. februar 2011 - 12:28 Der er 6 kommentarer og
1 løsning

Sætte Printarea i et dynamisk regneark

hej

jeg har en opgave med at få sat det korrekte printarea i et regneark.

Antallet af kolonner i printrange er altid fast f. eks til og med kolonne "D"

  a  b  c  d  e
1 x  x  x  x  x
2 x  x  x  x  x
3    x  x
4      x
5
6

Antallet af rækker i B og C varier og koden skal teste for hvilken der er flest rækker i

Printarea i ovenstående skal således være $A$1:$D$4

Næste gang kan den se således ud

  a  b  c  d  e
1 x  x  x  x  x
2 x  x  x  x  x
3    x  x  x  x
4    x  x    x
5    x        x
6            x

Der skal kun testes på B og C

Printarea i ovenstående skal således være $A$1:$D$5

Jeg har leget med Cells(Rows.Count, 2).End(xlUp).Address, men kan ikke rigtig teste på resultatet.

kan nogen hjælpe?
Avatar billede larspb Nybegynder
23. februar 2011 - 13:25 #1
Hej igen

jeg har denne simple routine, men den søger kun i kolonne "A"

Sub SetPrintArea()
Range("A65536").Select
Selection.End(xlUp).Select
intLastRow = ActiveCell.Row
ActiveSheet.PageSetup.PrintArea = "$A$1:$J$" & intLastRow
End Sub
Avatar billede excelent Ekspert
23. februar 2011 - 15:50 #2
Under forudsætning af at der ikke er tomme celler i kolonne B og C

Marker celle A1:D4
Vælg "Angiv Udskriftområde" i menuen Filer
Vælg Navn/Definer i menuen Indsæt
Klik på "Udskriftområde" i feltet Navne i Projektmappe
Indsæt følgende formel i feltet Refererer til
=FORSKYDNING(Ark1!$A$1;;;MAKS(TÆLV(Ark1!$B$1:$B$1000);TÆLV(Ark1!$C$1:$C$1000));4)
Klik på knappen Tilføj

Ret evt. Ark1 i formlen til aktuel arknavn
Avatar billede larspb Nybegynder
23. februar 2011 - 16:12 #3
hej excelent

den løsning går nok ikke efter som der er blanke felter og koden skal være en del af anden kode der bl. a. udskriver og gemmer et PDF dokument - gemt bag en knap.

Det hele virker, men jeg har nu rettet regnearket således at jeg ikke længere kan definere et fast antal rækker i print area, da jeg sletter celler og rykker op for at spare papir.

Tak for forsøget
Avatar billede excelent Ekspert
23. februar 2011 - 16:30 #4
så prøv med denne

=FORSKYDNING(Ark1!$A$1;;;MAKS(HVIS(Ark1!$B$1:$C$1000<>"";RÆKKE(Ark1!$B$1:$C$1000)));4)
Avatar billede excelent Ekspert
23. februar 2011 - 16:32 #5
oh ok så lige det skulle være en vba løsning

har du stadig brug for det ?
Avatar billede larspb Nybegynder
24. februar 2011 - 09:28 #6
Ja, helt afgjort

beklager hvis ikke det fremgik helt klart at det skulle bruges i VBA
Avatar billede larspb Nybegynder
24. februar 2011 - 15:12 #7
hej igen

jeg har nu fået styr på løsningen, men tak for hjælpen alligevel
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