AW: über ComboBox Liste Variabel Druck
24.11.2008 12:43:00
fcs
Hallo Angela,
da die Listbox1 bei dir scheinbar einer Zelle verknüpft ist, müsstes du für das Drucken von mehreren Namen eine 2. Listbox mit der gleichen Auswahlliste erstellen. Für die 2. Liste stellst du die Eigenschaft "MultiSelect" auf "frmMultiSelectMulti" oder "frmMultiSelectExtended". Dann kannst du mehrere Listeneinträge markieren.
Das Makro muss dann etwa wie folgt aussehen:
Private Sub CommandButton1_Click()
Dim Zeile As Long
On Error GoTo Fehler
With Me.ListBox2 'Namen der Combobox ggf. anpassen
Zeile = .ListCount
For Zeile = 0 To Zeile - 1
If .Selected(Zeile) = True Then
Me.ListBox1.ListIndex = Zeile
Me.Calculate 'Tabellenblatt neu berechnen
If Me.ListBox1.Value "" Then 'Bei leeren Einträgen nicht drucken
Me.ListBox1.Select
With Worksheets("Nichtang.") 'zu druckendes Tabellenblatt
PrintOut 'Drucken des Tabellenblatts
'.PrintPreview 'Seitenvorschau des Tabellenblatts
End With
End If
End If
Next
End With
Fehler:
With Err
If Err 0 Then
MsgBox "Fehler-Nr. " & .Number & vbLf & .Description
End If
End With
End Sub
Alternativ kannst du deine Listbox1 auf Multiselect umstellen und die Listbox nicht mit einer Zelle verknüpfen. Das Makro muss dann die selektierten Einträge vor dem Drucken ins Tabellenblatt eintragen.
Private Sub CommandButton1_Click()
Dim Zeile As Long
On Error GoTo Fehler
With Me.ListBox1 'Namen der Combobox ggf. anpassen
Zeile = .ListCount
For Zeile = 0 To Zeile - 1
If .Selected(Zeile) = True Then
'Selektierten Eintrag in Zelle eintragen. Tabelle und Zelle ggf. anpassen
Worksheets("Nichtang.").Range("E1") = .List(Zeile, 0)
Me.Calculate 'Tabellenblatt neu berechnen
If .List(Zeile, 0) "" Then 'Bei leeren Einträgen nicht drucken
With Worksheets("Nichtang.") 'zu druckendes Tabellenblatt
'.PrintOut 'Drucken des Tabellenblatts
.PrintPreview 'Seitenvorschau des Tabellenblatts
End With
End If
End If
Next
End With
Fehler:
With Err
If Err 0 Then
MsgBox "Fehler-Nr. " & .Number & vbLf & .Description
End If
End With
End Sub
Gruß
Franz