Avatar billede tvc Seniormester
02. november 2017 - 00:56 Der er 4 kommentarer og
1 løsning

Vælg ark til udskrift med VBA

Hej

Jeg har lavet en userform med CheckBox for hvert ark og en Knap til udskrift.

Jeg vil gerne have funktionen til at vælge de ark der skal udskrives på baggrund af mine CheckBox valg. Men jeg kan ikke få det til at virke hverken med nedenstående eller array, da jeg ikke altid skal have alle ark skrevet ud.

Er der en som kan hjælpe med en løsning?

Private Sub CommandButton1_Click()


    If CheckBox1.Value = True Then Sheets(Ark18.Range("I_Forside").Value).Select
    If CheckBox2.Value = True Then Sheets(Ark18.Range("I_Indhold").Value).Select
    If CheckBox3.Value = True Then Sheets(Ark18.Range("I_ForeningsOpl").Value).Select
    If CheckBox4.Value = True Then Sheets(Ark18.Range("I_Ledelsespategn").Value).Select
    If CheckBox5.Value = True Then Sheets(Ark18.Range("I_RevPategn").Value).Select
    If CheckBox6.Value = True Then Sheets(Ark18.Range("I_ForbundsRev").Value).Select
    If CheckBox7.Value = True Then Sheets(Ark18.Range("I_Beretning").Value).Select
    If CheckBox8.Value = True Then Sheets(Ark18.Range("I_AnvendtRegn").Value).Select
    If CheckBox9.Value = True Then Sheets(Ark18.Range("I_HovedNøgle").Value).Select
    If CheckBox10.Value = True Then Sheets(Ark18.Range("I_Resultatopg").Value).Select
    If CheckBox11.Value = True Then Sheets(Ark18.Range("I_Aktiver").Value).Select
    If CheckBox12.Value = True Then Sheets(Ark18.Range("I_Passiver").Value).Select
    If CheckBox13.Value = True Then Sheets(Ark18.Range("I_Noter").Value).Select
 

    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
End Sub
Avatar billede Jan Hansen Ekspert
02. november 2017 - 06:10 #1
Jeg ville lave noget ala:


Private Sub CommandButton1_Click()
dim arr() as string
dim sRange as string

    If CheckBox1.Value = True Then sRange=Range("I_Forside")
    If CheckBox2.Value = True Then sRange=sRange & "/" & Range("I_Indhold")
    If CheckBox3.Value = True Then sRange=sRange & "/" & Range("I_ForeningsOpl")
    If CheckBox4.Value = True Then sRange=sRange & "/" & Range("I_Ledelsespategn")
    If CheckBox5.Value = True Then sRange=sRange & "/" & Range("I_RevPategn")
    If CheckBox6.Value = True Then sRange=sRange & "/" & Range("I_ForbundsRev")
    If CheckBox7.Value = True Then sRange=sRange & "/" & Range("I_Beretning")
    If CheckBox8.Value = True Then sRange=sRange & "/" & Range("I_AnvendtRegn")
    If CheckBox9.Value = True Then sRange=sRange & "/" & Range("I_HovedNøgle")
    If CheckBox10.Value = True Then sRange=sRange & "/" & Range("I_Resultatopg")
    If CheckBox11.Value = True Then sRange=sRange & "/" & Range("I_Aktiver")
    If CheckBox12.Value = True Then sRange=sRange & "/" & Range("I_Passiver")
    If CheckBox13.Value = True Then sRange=sRange & "/" & Range("I_Noter")
 
if left(sRange,1)="/" then sRange=mid(sRange,2,len(sRange)-1)
arr=split(sRange,"/")

Sheets(Ark18).Range(arr).PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
End Sub



ej testet

Jan
Avatar billede Dan Elgaard Ekspert
02. november 2017 - 06:21 #2
Du mangler ganske simpelt, at sætte 'False' bag ved dine .Select linjer.

If CheckBox1.Value = True Then Sheets(Ark18.Range("I_Forside").Value).Select False
If CheckBox2.Value = True Then Sheets(Ark18.Range("I_Indhold").Value).Select False

o.s.v.
Avatar billede tvc Seniormester
02. november 2017 - 10:12 #3
Tak for hjælpen begge - det var Jans løsning jeg manglede. Tak!
Avatar billede Jan Hansen Ekspert
02. november 2017 - 12:09 #4
virkede den uden tilretning, det havde jeg ikke forventet!!

Velbekomme
Avatar billede tvc Seniormester
14. november 2017 - 00:30 #5
Undskyld - det var Dans der virkede :-)
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

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