Tarkoituksenani oli luoda exceliin nappi, jota painamalla avautuu ikkuna, missä kysytään mitkä sheetit halutaan tulostettavaksi (ja esikatseltavaksi). Tulostettavien sheettien valinta tapahtuisi CheckBoxien avulla, jotka ilmaisisivat tulostuvat sheetit.
Oman kokemattomuutteni takia en osaa rakentaa koodia, jonka avulla pystyisin esikatselemaan ja tulostamaan vain valittuja sheettejä.
Ongelma on lähinnä se, että en osaa tehdä koodia, joka suorittaisi sheettien valinnan/tsekkauksen, jonka jälkeen annettaisiin vain tarvittavat tulostus/esikatselu -käskyt.
Osaako joku auttaa?
Oman kokemattomuutteni takia en osaa rakentaa koodia, jonka avulla pystyisin esikatselemaan ja tulostamaan vain valittuja sheettejä.
Ongelma on lähinnä se, että en osaa tehdä koodia, joka suorittaisi sheettien valinnan/tsekkauksen, jonka jälkeen annettaisiin vain tarvittavat tulostus/esikatselu -käskyt.
Osaako joku auttaa?
Vastaukset 2
Vanhimmat
taulukkoon nappi ja siihen koodi
Private Sub CommandButton1_Click()
UserForm1.Show modal
End Sub
ja napin ominaisuuksiisa ruksi pois kohdasta tulosta objekti.
lisää lomake ja lisää sinne 3 commandbuttonia ja 1 listbox oletusnimillä. Listbox1 muuta multiselect arvo ->1
ja lisää lomakkeelle suraavat koodit
Private Sub CommandButton1_Click()
Dim Lista() As String
Dim i As Integer
Dim Laskuri As Long
For Laskuri = 1 To ListBox1.ListCount
If ListBox1.Selected(Laskuri - 1) Then
i = i 1
ReDim Preserve Lista(1 To i) As String
Lista(i) = ThisWorkbook.Sheets(i).Name
End If
Next Laskuri
If i = 0 Then
MsgBox "et ole valinnut yhtään sivua esikatseltavaksi", vbInformation
Exit Sub
End If
Me.Hide
ThisWorkbook.Sheets(Lista).PrintPreview
Sheets(1).Select
Me.Show
End Sub
Private Sub CommandButton2_Click()
Dim Lista() As String
Dim i As Integer
Dim Laskuri As Long
For Laskuri = 1 To ListBox1.ListCount
If ListBox1.Selected(Laskuri - 1) Then
i = i 1
ReDim Preserve Lista(1 To i) As String
Lista(i) = ThisWorkbook.Sheets(i).Name
End If
Next Laskuri
If i = 0 Then
MsgBox "et ole valinnut yhtään sivua tulostettavaksi", vbInformation
Exit Sub
End If
Me.Hide
ThisWorkbook.Sheets(Lista).PrintOut
Sheets(1).Select
Me.Show
End Sub
Private Sub CommandButton3_Click()
End
End Sub
Private Sub UserForm_Initialize()
Dim i As Integer
For i = 1 To Sheets.Count
ListBox1.AddItem Sheets(i).Name
Next i
End Sub
Paljon kiitoksia! Koodi toimii erinomaisesti.