Ich habe folgendes Problem:
Wir erzeugen schon seit Jahren in einer Exceldatei mit Hilfe eines Makros Etikettvorlagen mit Barcode, die dann über einen Etikettendrucker ausgedruckt werden. Die Etiketten werden so erzeugt, dass der Barcode als Bild in eine Zeile, und weitere Infos in die Zeile darunter eingepasst werden. Die Infos sucht er sich aus einer Tabelle zusammen. Die Abmessungen sind so gewählt, dass alles dann schön auf die Etiketten passt. Wir haben als Barcode App das TBarCode Panel von TEC-IT installiert. In einem Durchgang werden bis zu 600 Etiketten erzeugt und dann anschließend gedruckt. Es werden also zuerst alle Etiketten in einer Druckvorlage erstellt und dann in einem Rutsch ausgedruckt.
Prinzipiell funktioniert das bereits seit mehreren Jahren sehr gut. Auf dem Computer mit Excel 2007 dauerte ein Etikett ca. 1-2 s zur Erstellung. Das Drucken aller Etiketten selbst geht dann sehr rasch. Seit der Umstellung auf Excel 2016 jedoch hat sich die Dauer zur Erstellung eines Etiketts signifikant verlängert. Der Code ist aber derselbe. Die Dauer nimmt scheinbar im Laufe eines Tages eher zu. Mit jedem neuen Druckvorgang werden die alten Etikettenvorlagen aber gelöscht, daher kann sich da nichts ansammeln. Programmiert wurde der Code unter Excel 2016.
Der PC ist nicht der neueste, aber auch kein Uralt-Gerät:
Intel Core i5-7500 CPU
8 GB RAM 3.41 GHz
Windows 10 Pro 64 bit
Ich kann gerne den Code posten, der für die Erstellung der Etiketten zuständig ist, aber hat jemand eine Idee, was alleine die Umstellung von 2007 auf 2016 bewirkt haben könnte? Immerhin ist 2016 ja auch schon eine ältere Version, der Computer ist sicher jünger.
Dies ist der Codeabschnitt, der den Barcode in die Zelle einfügt:
Sub barcodeEinfügen(ByVal TargetCell, ByVal wert, ByVal ws, ByVal top)
'Worksheets("EtikettenNEU").Select
Dim CellHeight As Variant ' Höhe der Zelle
Dim CellWidth As Variant ' Breite der Zelle
Dim CellTop As Variant ' Obere Rand-Koordinate der Zelle
Dim CellLeft As Variant ' Linke Rand-Koordinate der Zelle
Dim BCObject As OLEObject ' Das TBarCode Container Objekt
'Als Ziel-Zelle wählen wir C3 - dort soll der Strichcode eingefügt werden.
'Ist die Zelle zu klein, passen wir die Höhe an eine Mindesthöhe an:
If (ws.Range(TargetCell).RowHeight
Vielen Dank für sachdienliche Hinweise!Albert