Tarkoitus on luoda UserForm, jossa on checkboxeja, joiden perusteella liitetään yhteen multi area kokoelmaan useita alueita tulostusta ja esikatselua varten, kumpaakin toimintoa varten on nappi. Alueet on nimetty excelissä.
Olen kokeillut union methodia näiden nimettyjen alueiden yhdistämiseen, se toimi ihan hyvin muuten, mutta jotta voisin liittää tähän multi area kokoelmaan alueita, sen pitää olla alustettu.
Dim MyMulti as range
ActiveSheet.PageSetup.PrintTitleRows = ActiveSheet.Rows("1:12").Address
Set MyMulti = Range("Alue1")
MyMulti = Application.Union(MyMulti, Range("Alue2"))
Jne..
Miten saan tehtyä tämän niin että voin valita Alue1.. ..Alue9 välillä checkboxien kautta mitkä tai minkä sivun haluan esikatseluun tai tulostukseen?
If.. Then rakenteesta tulee aika monimutkainen, ainakin minun vaatimattomilla taidoillani.
Kiitos etukäteen loistavista ratkaisuista!
Olen kokeillut union methodia näiden nimettyjen alueiden yhdistämiseen, se toimi ihan hyvin muuten, mutta jotta voisin liittää tähän multi area kokoelmaan alueita, sen pitää olla alustettu.
Dim MyMulti as range
ActiveSheet.PageSetup.PrintTitleRows = ActiveSheet.Rows("1:12").Address
Set MyMulti = Range("Alue1")
MyMulti = Application.Union(MyMulti, Range("Alue2"))
Jne..
Miten saan tehtyä tämän niin että voin valita Alue1.. ..Alue9 välillä checkboxien kautta mitkä tai minkä sivun haluan esikatseluun tai tulostukseen?
If.. Then rakenteesta tulee aika monimutkainen, ainakin minun vaatimattomilla taidoillani.
Kiitos etukäteen loistavista ratkaisuista!
Vastaukset 2
Vanhimmat
lomakkeen moduuliin...
ja kaikki nimet nyt oletusnimiä ja alueet nimetty checkbox captionin nimillä työkirjassa esim Alue1, Alue2 jne
Option Explicit
Dim ctl As Control
Public MyMulti As Range
Sub MaaritaAlue()
Set MyMulti = Nothing
On Error Resume Next
For Each ctl In UserForm1.Controls
If TypeName(ctl) = "CheckBox" Then
If ctl.Value = True Then
If MyMulti Is Nothing Then
Set MyMulti = Range(ctl.Caption)
Else
Set MyMulti = Application.Union(MyMulti, Range(ctl.Caption))
End If
End If
End If
Next
'MsgBox MyMulti.Address
End Sub
Private Sub CheckBox1_Click()
MaaritaAlue
End Sub
Private Sub CheckBox2_Click()
MaaritaAlue
End Sub
Private Sub CheckBox3_Click()
MaaritaAlue
End Sub
Private Sub CheckBox4_Click()
MaaritaAlue
End Sub
Private Sub CommandButton1_Click()
On Error GoTo virhe
MyMulti.Select
'Me.Hide
'ActiveSheet.PrintPreview False
Exit Sub
virhe:
MsgBox "sinun täytyy valita ainakin yksi alue tulostusta varten!", vbInformation
End Sub
Jep, ei se sitten ollutkaan niin monimutkainen, mun viritys oli 4 kertaa pitempi, eikä se saatana edes toiminut :)
Kiitos ja kumarrus!