ich arbeite an einer Excel Bestellliste. Bisher geht mein Code jeden einzelnen Begriff durch und filter demnach und druckt das Ergebniss aus. Das Problem ist das es A umständlich ist und B doch recht lange dauert, deshalb würde ich gerne Variablen definieren und diese in eine Schleife einbinden.
im Grunde möchte ich das er erst in der Spalte E nach meinem Lieferanten filtert (Variabler Lieferant) und danach in Spalte B alle leeren und Daten größer als 0 ausblendet.
Wenn diese Filterung keine Ergebniss bringt soll er zum nächsten Lieferant usw.
Wenn diese Filterung etwas zurück gibt soll er eine Inputbox zeigen mit eingabe der Bestellnummer für den Liereanten und ein Ausdruck erstellen und eine Kopie als Pdf ablegen.
Hoffe es ist soweit verständlich.
Mein aktueller (und sehr umständlicher) VBA Code ist wie folgt:
[CODE] Sub Ausdrucken()
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False
End With
Range("E22:E543").AutoFilter Field:=5, Criteria1:="Lieferant1"
Range("B22:B543").AutoFilter Field:=2, Criteria1:=">0" ~f~
~f~ If Application.WorksheetFunction.Subtotal(103, Range("B23:B2592")) > 0 Then ~f~
Range("E22:E543").AutoFilter Field:=5, Criteria1:="Lieferant1"
~f~ Range("B22:B543").AutoFilter Field:=2, Criteria1:=">0"~f~
With Application
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
.EnableEvents = True
End With
Dim sTxt As String
sTxt = InputBox("geben Sie Ihre Bestellnummer für Bestellung Lieferant1 ein", "Bestellnunner")
If sTxt = "" Then Exit Sub
Range("H20").Value = sTxt
ActiveSheet.Columns("E:E").Hidden = True
ActiveSheet.PrintOut
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"\\NASBOX5G2\Gemeinsame Dateien\Bestellungen\" & Cells(20, 8).Value, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
End If
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False
End With
Range("E22:E543").AutoFilter Field:=5, Criteria1:="Lieferant2"
~f~ Range("B22:B543").AutoFilter Field:=2, Criteria1:=">0" ~f~
~f~ If Application.WorksheetFunction.Subtotal(103, Range("B23:B2592")) > 0 Then ~f~
Range("E22:E543").AutoFilter Field:=5, Criteria1:="Lieferant2"
~f~ Range("B22:B543").AutoFilter Field:=2, Criteria1:=">0"
With Application
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
.EnableEvents = True
sTxt = InputBox("geben Sie Ihre Bestellnummer für Bestellung Lieferant1 ein", "Bestellnunner")
If sTxt = "" Then Exit Sub
Range("H20").Value = sTxt
ActiveSheet.Columns("E:E").Hidden = True
ActiveSheet.PrintOut
End With
End If [CODE]
usw. bis zum letzten Lieferant
Meine VBA Kentnisse sind sehr beschränkt ich hoffe trotzdem das Ihr mir hier weiterhelfen könnt