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