Gå til innhold

vba - kode for utskrift av valgte sider


Anbefalte innlegg

Hei

 

Jeg har en forside i excel, hvor jeg har en liste som viser ca 10 ark som ligger etter denne forsiden i regnearket mitt.

Jeg har satt en avkrysningsboks etter hvert punkt på listen.

Det jeg ønsker å få til er følgende:

 

Hvis jeg merker f.eks. ark 2 og 5 på listen, og trykker skriv ut, så ønsker jeg at

forsiden pluss ark 2 og 5 blir skrevet ut.

Aller helst ønsker jeg at det blir laget en pdf som inneholder disse 3 arkene.

 

For å dele opp spørsmålet mitt litt, så trenger jeg hjelp til følgende:

 

Jeg trenger en prosedyre som sjekker hvilke avkrysningsbokser som er merket, som så merker de tilsvarende arkene.

 

Utskriftsdelen av denne prosedyren, mener jeg at jeg skal klare å lage selv, men det er å komme dit hvor de rette arkene er merket som er problemet mitt.

 

Kan noen hjelpe med det?

 

 

Hilsen Harald

Lenke til kommentar
Videoannonse
Annonse

Hei Harald

 

Antatt at du har brukt Checkbox'er fra Skjemaverktøyene (Forms), ikke Kontrollverktøyene (ActiveX), at det ikke andre uvedkommende checkbox'er på forsiden, og at det ikke er skjulte ark i filen:

 

 

Sub Klikk()

 

Dim Kryssa() As Boolean

 

Dim i As Long

 

ReDim Kryssa(1 To Sheets(1).CheckBoxes.Count)

 

'Les inn verdiene:

 

For i = 1 To Sheets(1).CheckBoxes.Count

 

If Sheets(1).CheckBoxes(i).Value = 1 Then Kryssa(i) = True

 

Next

 

'Gjør noe med dem, f.eks

 

For i = 1 To Sheets(1).CheckBoxes.Count

 

If Kryssa(i) = True Then MsgBox Sheets(i).Name

 

Next

 

End Sub

 

HTH. Beste hilsen Harald

Lenke til kommentar

Hei

 

Takker for hjelpen.

 

 

Det er et problem i koden. Den teller riktig antall checkboxer, men det ser ut til at den teller med forsiden, når den teller arkene.

I hvertfall viste den navnene på arkene som var et hakk etter de jeg merket.

Er det enkelt å fikse?

 

Et annet spørsmål:

Ser at du har gjort det slik at den viser navnet på de merkede arkene i en msgbox, jeg prøvde å bytte til "select" i stedet for "name", men det da ble arket aktivert. Er det en annen kommando som bare merker arket, men ikke aktiverer det? Evnt. vet koden hvilke ark som skal merkes?

 

 

Hilsen Harald

Lenke til kommentar

Når du ber om hjelp til deler av et problem så følger det med litt lekser ;) Ja det er bare å legge på 1, så er du en høyere.

 

Resten fikser du:

 

Sub Klikk()

 

Dim V() As Long

 

Dim i As Long, j As Long

 

j = -1

 

For i = 1 To Sheets(1).CheckBoxes.Count

 

If Sheets(1).CheckBoxes(i).Value = 1 Then

 

j = j + 1

 

If i < ThisWorkbook.Sheets.Count Then

 

ReDim Preserve V(0 To j)

 

V(j) = i + 1

 

End If

 

End If

 

Next

 

Sheets(V()).PrintPreview

 

End Sub

Lenke til kommentar

Hei

 

Funker i utgangspunktet veldig bra, bortsett fra at jeg ikke får med forsida i utskriften.

Kunne du hjulpet med det også?

 

En annen ting:

 

Den koden som heter ReDim Preserve var ny for meg, hva er det den gjør?

 

 

 

Hilsen Harald

Lenke til kommentar

Ja, jeg får til å endre j til 0, men hvordan kan jeg få den til å endre v(0) fra 0 til 1

Jeg forstår det slik at den lagrer de jeg har hukket av i checkboxene som en verdi som heter

V(1), V(2) osv. Det funker for de arkene som er variable.

Når det gjelder forsiden så har jeg ikke noen checkbox til den, fordi den skal alltid være med.

 

Beklager men jeg faller litt ut her...

Det er nok et litt høyt nivå for meg.

 

Hilsen Harald

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...