Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1752to1756
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Variable Anzahl von Zeilen drucken
16.04.2020 12:10:06
Zeilen
Hallo zusammen,
mit Hilfe von Euch Profis habe ich eine Lagerverwaltung erstellt, die einen Kommissionierbeleg ausdruckt, der durch eine Listbox gefüllt wird. Die Zeilen 1 bis 4 sind Überschriften, ab Zeile 5 kommen die Artikel ins Spiel (Bereich B5:H44).
In Spalte A habe ich von Zeile 5 bis 44 eine feste Nummerierung stehen.
Ursprünglich reichte es aus, auf dem Beleg nur 40 Zeilen zu drucken - dies passte dann auch genau auf eine Seite. Jetzt sollen aber bei Bedarf mehr Zeilen gedruckt werden (bis zu 70). Folglich benötige ich dann bis zu zwei Seiten, die gedruckt werden.
Ich möchte nun, dass
a) in Spalte A eine varible Nummerierung gedruckt wird, abhängig davon, wieviele Artikel in Spalte B stehen
b) nur bis zur letzten gefüllten Zeile gedruckt wird, wenn in Spalte B ein Artikel steht.
Mein derzeitiger Code sieht wie folgt aus:

Private Sub CommandButton_Druck_Click()
Dim i As Integer
Dim ErsteFreieZeile As Long
With Tabelle6
.Range("C3").Value = UserForm_LAGER.TextBox_Datum.Value
.Range("C2").Value = UserForm_LAGER.TextBox_Shipment.Value
.Range("F2").Value = UserForm_LAGER.ComboBox_Spediteur.Value
.Range("B5:H74").ClearContents
End With
With Sheets("Pickliste")
ErsteFreieZeile = Sheets("Pickliste").Cells(.Rows.Count, 2).End(xlUp).Row + 1
End With
With ListBox2
For i = 0 To UserForm_LAGER.ListBox2.ListCount - 1
If UserForm_LAGER.ListBox2.ListCount > 0 Then
Sheets("Pickliste").Cells(ErsteFreieZeile + i, 2) = .List(i, 0)
Sheets("Pickliste").Cells(ErsteFreieZeile + i, 3) = .List(i, 1)
Sheets("Pickliste").Cells(ErsteFreieZeile + i, 4) = .List(i, 2)
Sheets("Pickliste").Cells(ErsteFreieZeile + i, 5) = .List(i, 3)
Sheets("Pickliste").Cells(ErsteFreieZeile + i, 6) = .List(i, 7)
Sheets("Pickliste").Cells(ErsteFreieZeile + i, 7) = .List(i, 8)
Sheets("Pickliste").Cells(ErsteFreieZeile + i, 8) = .List(i, 9)
End If
Next
End With
Range("B4:H74").Select
ActiveWorkbook.Worksheets("PICKLISTE").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("PICKLISTE").Sort.SortFields.Add Key:=Range( _
"F5:F74"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("PICKLISTE").Sort.SortFields.Add Key:=Range( _
"G5:G74"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("PICKLISTE").Sort.SortFields.Add Key:=Range( _
"H5:H74"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("PICKLISTE").Sort
.SetRange Range("B4:H74")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("B5").Select
Application.ScreenUpdating = False
With Sheets("Pickliste")
.Visible = True
.Range("A1:H75").PrintOut
.Visible = False
End With
Application.ScreenUpdating = True
End Sub

Kann mir bitte einer von Euch bei dem Code für das Ausdrucken helfen?
Viele Grüße
Andre

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variable Anzahl von Zeilen drucken
16.04.2020 19:23:42
Zeilen
Hallo Andre,
Deklariere für das Blatt "Pickliste" (Tabelle6) eine Objektvariable, dann kann man den Code etwas übersichtlicher gestalten.
Der einfachste Weg für den Ausdruck dürfte sein, die nicht belegten Zeilen am Ende der Liste auszublenden.
LG
Franz
Private Sub CommandButton_Druck_Click()
Dim i As Integer
Dim ErsteFreieZeile As Long
Dim wksPick As Worksheet
Set wksPick = Tabelle6 'ActiveWorkbook.Worksheets("Pickliste")
Application.ScreenUpdating = False
With wksPick
.Range("C3").Value = UserForm_LAGER.TextBox_Datum.Value
.Range("C2").Value = UserForm_LAGER.TextBox_Shipment.Value
.Range("F2").Value = UserForm_LAGER.ComboBox_Spediteur.Value
.Range("B5:H74").ClearContents
ErsteFreieZeile = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
End With
With ListBox2
For i = 0 To UserForm_LAGER.ListBox2.ListCount - 1
If UserForm_LAGER.ListBox2.ListCount > 0 Then
wksPick.Cells(ErsteFreieZeile + i, 2) = .List(i, 0)
wksPick.Cells(ErsteFreieZeile + i, 3) = .List(i, 1)
wksPick.Cells(ErsteFreieZeile + i, 4) = .List(i, 2)
wksPick.Cells(ErsteFreieZeile + i, 5) = .List(i, 3)
wksPick.Cells(ErsteFreieZeile + i, 6) = .List(i, 7)
wksPick.Cells(ErsteFreieZeile + i, 7) = .List(i, 8)
wksPick.Cells(ErsteFreieZeile + i, 8) = .List(i, 9)
End If
Next
End With
With wksPick
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=.Range("F5"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.Sort.SortFields.Add Key:=.Range("G5"), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
.Sort.SortFields.Add Key:=.Range("H5"), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
With .Sort
.SetRange wksPick.Range("B4:H74")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'letzte Zeile mit Inhalt in Spalte B
ErsteFreieZeile = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
.Visible = True   '? Blatt einblenden
If ErsteFreieZeile 

Anzeige
AW: Variable Anzahl von Zeilen drucken
20.04.2020 11:53:34
Zeilen
Hallo Franz,
der Code läuft durch. Super und vielen Dank!
Gruß
Andre

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige