AW: Auswahl von Blättern zum drucken per liste
17.05.2007 11:53:25
Blättern
Hi Andre,
dies ist grundsächlich möglich. Wenn die Vorauswahl immer identisch ist und sich die Namen der Tabellen nicht ändern dann kann man das direkt in die Initialisierungsprozedur einbauen.
z.B.
Private Sub UserForm_Initialize()
'Namen der sichtbaren Tabellen in Listenauswahl einlesen
With Me.ListBox_Tabellen
.Clear
For Each Blatt In ActiveWorkbook.Sheets
If Blatt.Visible = xlSheetVisible Then
.AddItem Blatt.Name
End If
Next
'Auswahlmodus für Liste festlegen _
bei einer Vorauswahl ist es besser wenn man einzelne Tabellen _
dazu-/abwählen kann ohne versehentlich die Vorauswahl aufzuheben. _
Deshalb die folgende Zeile oder unter Eigenschaften für die Listbox _
die Einstellung ändern.
.MultiSelect = fmMultiSelectMulti
'Tabellen vorauswählen, Zählung beginnt bei 0
For i = 0 To .ListCount - 1
Select Case .List(i, 0)
Case "TabHoch", "TabQuer (2)"
'Namen der Tabellen in der Vorauswahl
.Selected(i) = True
Case Else
.Selected(i) = False
End Select
Next
End With
End Sub
Fall du die Vorauswahl flexibel haben möchtest oder sich die Tabellennamen ändern, dann solltest du das Ganze ein wenig anders aufbauen.
In der Tabelle mit dem Druckbutton werden in einem Tabellenbereich die Namen der sichtbaren Tabellen eingetragen und die vorauszuwählenden markiert. Diesem Tabellenbereich (2 Spalten breit) gibts du einen Bereichsnamen z.B. ListeTabellen. Für die Listbox im Userform kannst du dann diesen Tabellenbereich direkt als RowSource angeben. In der Initiallisierungsprozedur muss du dann "nur" noch für die Vorauswahl die Markierungen überprüfen. Falls sich Namen und/oder Anzahl der Tabellen häufig ändern, dann sollte das Aktualisieren der Tabellenliste inkl. Bereich des Namens ebenfalls per Makro durchgeführt werden. Auch um ggf. Schreibfehler bei den Tabellennamen zu vermeiden. Ich hab in der Datei die Tabelle und das Userform entsprechend angepasst.
Für die Übernahme in deine Datei zuerst den Bereich mit den Tabellennamen festlege (manuell oder mit dem Makro), dann das Userfom übernehmen. ggf. vorher das Userform in deiner Date löschen oder umbenennen.
Die Datei https://www.herber.de/bbs/user/42525.xls wurde aus Datenschutzgründen gelöscht
Gruß
Franz