Guten Morgen Mase,
Das hat jetzt auf beiden Weisen funktioniert.
Sowohl meine ursprüngliche, als auch deine laufen super.
Ich muss jetzt mal schauen, welche sich am besten im Gesamtkontext eignet. Ich danke dir schonmal für deine schnelle und sehr kompetente Hilfe.
Ich möchte diese ausgewählten Blätter nun auch noch drucken, und zwar am liebsten mit löschen von leeren Zeilen auf einzelnen, ausgewählten Tabellenblättern.
Und einige der Blätter müssen Hochformat, andere Querformat besitzen.
Dann soll eine Druckerauswahl erfolgen, Druckvorschau und dann soll gedruckt werden und die UserForm mit Unload me geschlossen werden.
Bisher habe ich das:
'Druckbereich festlegen:
Call LeereZeilenLöschen
Application.Dialogs(xlDialogPrinterSetup).Show
Sheets(Drucksammlung).PrintPreview
Sheets(Drucksammlung).Print
Me.Hide
'ausgeblendete Zeilen wieder einblenden einblenden:
Rows.Hidden = False
Sub LeereZeilenLöschen()
Dim Zeile, Letzte As Long
Dim ws as Worksheet
'Letzte Zeile mit Eintrag suchen:
Letzte = LastRow(ws)
MsgBox Letzte & " " & Zeile
'Zeilen ausblenden:
For Zeile = 1 To Letzte
If Rows(Zeile).Text = "" Then
MsgBox "Hier steht nichts"
Rows(Zeile).EntireRow.Hidden = True
Else
MsgBox "Hier steht was"
End If
Next Zeile
End Sub
Function LastRow(wks As Worksheet) As Long
Dim lngFirst As Long, lngLast As Long, lngTmp As Long
With Application
If .CountA(wks.Cells) = 0 Then Exit Function 'Fehler Laufzeitfehler 91
If .CountA(wks.Rows(wks.Rows.Count)) Then
LastRow = wks.Rows.Count: Exit Function
End If
lngLast = wks.Rows.Count
Do While lngLast > lngFirst + 1
lngTmp = (lngFirst + lngLast) \ 2
If .CountA(wks.Rows(lngTmp).Resize(lngLast - lngTmp)) Then _
lngFirst = lngTmp Else lngLast = lngTmp
Loop
If .CountA(wks.Rows(lngLast)) Then LastRow = lngLast Else LastRow = lngFirst
End With
End Function
Soweit so gut. Im Prinzip jedenfalls, doch er öffnet den Print-Befehl mindestens zweimal oder blendet manchmal die temporär verschwindenden Zeilen nicht wieder ein oder meckert anderweitig rum
Gibt es btw einen kurzen Befehl, wie ich beim Öffnen der UserForm einen Optionsbutton direkt aktivieren kann?
In der Form:
Sub UF_Drucken_Aktivieren()
optDrucken.Value = True
End Sub
Vielleicht kannst du mir bei diesem Problem noch helfen, das würde mich sehr glücklich machen :).
LG Justin
|