Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1364to1368
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
Inhaltsverzeichnis

Packzettel drucken VBA

Packzettel drucken VBA
29.06.2014 12:56:33
nobbi496
Hallo liebe Excelfreunde
ich habe wieder mal ein Problem:
ich möchte das händische schreiben von Packzetteln auf Excel umstellen und brauche Hilfe.
Die Zettel sollen in folgender Reihenfolge gedruckt werden
Produkt 111 an Kunde 1, Kunde 2, Kunde 3...
Produkt 112 an Kunde 1, Kunde 2, Kunde 3...
https://www.herber.de/bbs/user/91312.xlsm
Mein Ansatz bis jetzt funktioniert soweit, dass die richtigen Werte in die richtigen Zellen _
geschrieben werden. Für den Sprung von Kunde zu Kunde und anschließen zum nächsten Produkt habe ich keine Ahnung
ich bedanke mich im voraus
Norbert
Sub Makro3a()
Dim Blatt As Object
On Error Resume Next    ' Bei Fehler wird die nächste Zeile ausgeführt
'es gibt auch Druckaufträge mit null
Sheets("Zettel").Select
Range("B27").Select
ActiveCell.FormulaR1C1 = "=+Tabelle1!R3C4"    ' Kunde nach jedem Zyklus eine Zelle  _
nach rechts
' bis leere zelle
Range("D27").Select
ActiveCell.FormulaR1C1 = "=+Tabelle1!R4C4"       ' Farbe nach jedem Zyklus eine Zelle   _
_
nach rechts
Range("C29").Select
ActiveCell.FormulaR1C1 = "=+Tabelle1!R7C1"   ' Produkt jede Runde eine Zelle nach unten  _
_
von
'a7 bis a37                                  _
_
' bis leere zelle
Calculate
For Each Blatt In Worksheets
With Blatt
.PrintOut From:=1, To:=1, Copies:=.Range("a1")
.PrintOut From:=2, To:=2, Copies:=.Range("b1")
End With
Next Blatt
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Packzettel drucken VBA
30.06.2014 09:42:45
MCO
Moin!
Probier mal das:
Sub drucken()
' Makro1 Makro
Sheets(1).Select
For Each rw In Range("A4:A999").SpecialCells(xlCellTypeConstants, xlNumbers)
For Each cl In Range(Cells(rw.Row, "D"), Cells(rw.Row, "M"))
If cl > 0 Then
With Sheets("Zettel")
.Range("B27") = Cells(3, cl.Column) 'Kunde
.Range("D27") = Cells(4, cl.Column) 'Farbe
.Range("C29") = Cells(rw.Row, "A")  'Artikelnummer
.Range("D29") = Cells(rw.Row, "B")  'Artikelbez.
If .Range("a1") > 0 Then .PrintOut From:=1, To:=1, Copies:=.Range("a1")
If .Range("b1") > 0 Then .PrintOut From:=2, To:=2, Copies:=.Range("b1")
End With
End If
Next cl
Next rw
End Sub

Alle anderen Formeln könnte man auch ersetzen, aber das überlass ich mal Dir :-)
Gruß, MCO

Anzeige
AW: Packzettel drucken VBA
01.07.2014 01:15:40
nobbi496
Danke das funktioniert super
das mit den Werten Eintragen wäre sehr interesant, da ich Probleme mit dem Auslesen der Zelle hab. anders al in der Beispieltabelle bekommt Kunde 4 sowohl Rot als auch blau. das funkioniert mit meiner Formel leider nicht.
nochmals Danke

AW: Packzettel drucken VBA
30.06.2014 10:12:44
UweD
Hallo
kann man sicher auch so aufbauen, dass anstelle der Werte direkt die Werte eingetragen werden...
hier mal unter beibehaltung deiner Formeln

Sub Makro3a()
Dim Anz1 As Integer, Anz2 As Integer
Dim LR As Long, LC As Integer
Dim ZE As Integer, SP As Integer, L1 As Integer, S1 As Integer
Dim Z As Integer, S As Integer
On Error Resume Next    ' Bei Fehler wird die nächste Zeile ausgeführt
'Fehler wird nicht angezeigt
L1 = 7: ZE = 3: SP = 1: S1 = 4
With Sheets("Zettel")
LR = Sheets("Tabelle1").Cells(Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte
LC = Sheets("Tabelle1").Cells(ZE, Columns.Count).End(xlToLeft).Column 'letzte Spalte  _
einer Zeile
For Z = L1 To LR
.Range("C29").Formula = "=Tabelle1!A" & Z ' Produkt jede Runde eine Zelle nach  _
unten von
If .Range("D29")  "0" Then 'keine leeren Zeilen verarbeiten
For S = S1 To LC
.Range("B27").FormulaR1C1 = "=Tabelle1!R3C" & S ' Kunde nach jedem Zyklus  _
eine Zelle nach rechts
.Range("D27").FormulaR1C1 = "=Tabelle1!R4C" & S ' Farbe nach jedem Zyklus  _
eine Zelle nach rechts
.Range("E5").FormulaR1C1 = _
"=FLOOR(SUMIF(Tabelle1!C1,R[24]C[-2],Tabelle1!C" & S & ")/40,1)"
.Range("E6").FormulaR1C1 = _
"=MOD(SUMIF(Tabelle1!C1,R[23]C[-2],Tabelle1!C" & S & "),40)"
Calculate
Anz1 = .Range("A1")
Anz2 = .Range("B1")
If Anz1 > 0 Then .PrintOut From:=1, to:=1, Copies:=Anz1
If Anz2 > 0 Then .PrintOut From:=2, to:=2, Copies:=Anz2
Next S
End If
Next Z
End With
End Sub
Gruß UweD

Anzeige
AW: Packzettel drucken VBA
01.07.2014 01:20:14
nobbi496
Auch dir danke ich, wie du in der Antwort auf @MCO lesen kanst habe ich doch noch probleme den richtigen Wert auszulesen, weil ein Kunde 2 Farben bekommt.
Formelmäßig bin ich auch nicht so fit, dass ich ne Kombination von sverweis und wverweis mit 2 Bedingungen hinbekomme.
Gruß
Norbert

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige