Hallo,
Ik zou graag een (print)lijst maken met alle zichtbare tabbladen. In deze lijst kan men dan selecteren welk tabblad er moet afgedrukt worden.
Deze vraag is al eens behandeld in volgende link:
http://www.helpmij.nl/forum/showthread.php/401488-VBA-Printknop-met-document-selectie
Toch is mijn geval iets(je) anders. Ik zou namelijk niet alleen "Sheets" willen afdrukken, maar ook nog "Charts".
Onderstaande code heb ik daarom een beetje aangepast en dit werkt ook. Nu worden zowel de Charts als de Sheets in de lijst weergegeven.
Toch heb ik bij het rode gedeelte in onderstaande code een foutmelding. Ik heb namelijk nog niet gezegd dat de Charts ook uitgeprint moeten worden.
Misschien is er een 'eenvoudige' oplossing voor(?), maar aangezien mijn vba kennis vrij beperkt is geraak ik er maar niet uit.
Kan er iemand misschien helpen?
Bij voorbaat hartelijk bedankt!
mvg,
Seppe
Ik zou graag een (print)lijst maken met alle zichtbare tabbladen. In deze lijst kan men dan selecteren welk tabblad er moet afgedrukt worden.
Deze vraag is al eens behandeld in volgende link:
http://www.helpmij.nl/forum/showthread.php/401488-VBA-Printknop-met-document-selectie
Toch is mijn geval iets(je) anders. Ik zou namelijk niet alleen "Sheets" willen afdrukken, maar ook nog "Charts".
Onderstaande code heb ik daarom een beetje aangepast en dit werkt ook. Nu worden zowel de Charts als de Sheets in de lijst weergegeven.
Code:
Private Sub UserForm_Initialize()
Dim sh As Worksheet
Dim ch As Chart
With LstPrint
.Clear
For Each sh In Worksheets
If sh.Name = "Sheet1" Or sh.Name = "Sheet2" Or sh.Name = "Sheet3" Then
.AddItem sh.Name
End If
Next
For Each ch In Charts
If ch.Name = "Chart1" Or ch.Name = "Chart2" Then
.AddItem ch.Name
End If
Next
End With
End Sub
Toch heb ik bij het rode gedeelte in onderstaande code een foutmelding. Ik heb namelijk nog niet gezegd dat de Charts ook uitgeprint moeten worden.
Misschien is er een 'eenvoudige' oplossing voor(?), maar aangezien mijn vba kennis vrij beperkt is geraak ik er maar niet uit.
Code:
Private Sub CmdPrint_Click()
mededeling = MsgBox("U gaat nu het zichtbare formulier afdrukken.", vbOKCancel, "Printen")
If mededeling = vbOK Then
For x = 0 To LstPrint.ListCount + 1
[COLOR="#FF0000"] [B]If LstPrint.Selected(x) = True Then Worksheets(LstPrint.List(x)).PrintOut Copies:=1, Collate:=True[/B][/COLOR]
Next
End If
End Sub
Kan er iemand misschien helpen?
Bij voorbaat hartelijk bedankt!
mvg,
Seppe