Clever-Excel-Forum

Normale Version: Drucken über Excel mit Niveau
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebe Excel Profis

ich habe mal ein wenig geblättert, und stelle fest, dass ich doch eher kleine Probleme lösen will. Hoffentlich erbarmt sich jemand, und kann mir helfen :21:

Und zwar dreht es sich darum, einen an einem Netzwerkcomputer angeschlossenen Etikettendrucker komfortabel über Excel zu benutzen. Vor einigen Jahren hat mir das www in einem Ecxel Forum bereits wertvolle Dienste geleistet. Daraus wurde ein kleines Makro geboren, welches bis heute in Betrieb ist. Nunmehr will ich es modifizieren, da das zu bedruckende Label und die Anforderungen geändert werden sollen.

Im Anhang versuche ich zu verdeutlichen, wie die Funktion ausschaut..

Beim Ettikettendrucker handelt es ich um Doppeletiketten, werlche immer Paarweise gedruckt werden. Wie ein einzelnes Etikett gedruckt werden soll, ist mir unbekannt. Ich denke, dass dies nicht vorgesehen ist. Daher müssen einige Berechnungen zur Menge der zu druckenden Etiketten gemacht werden.

Anforderung:

- div Eingaben wie Auftragsnummer; Artikelnummer; Charge
-Menge
-Teilung (Losgröße)

Als Beispiel: Zu Drucken sind 1257 Artikel zu je 25 Stück pro Etikette. Jetzt kann der Drucker natürlich keine 50,28 Etikettem ausdrucken. Blush  Dazu kommt, dass der Drucker nur Etikettenpaare drucken kann. Er müsste somit immer nur gerade Anzahlen drucken. Dazu käme der "Rest" auch als Paar. Die überschüssigen Labels sollen dann entsorgt werden. Im günstigsten Falle, passt ja alles. zB bei 1000 zu je 25 Stück = 40 Etiketten. Bei 1012 Stück jedoch, müsste der Drucker 40 Etiketten + 2 Etiketten mit 12 Stück drucken. Wie gesagt, er kann immer nur 2 auf einmal drucken.. Die überschüssige Etikette wird weggeworfen. Bei 1036 Stück müsste der Drucker demnach 42 Etiketten drucken und zusätzlich 2 Etiketten mit 11 Stück. Demnach wird anschließend von den 42 Etiketten 1 Etikette entsorgt, und dazu natürlich aus die eine von der doppelten 11er.

Oh Leute, ich verstehe das. Aber ob ich Euch das gut erklärt hab.. Blinksmiley

hier das alte Makro. Dieses Makro kann bisher nur auf die gerade Anzahl der Etiketten runden. Änderungen der Teilung oder eine konkrete Anzahl eingeben konnte man bisher nicht. Dies wird ja über die Excelzellen in den Formeln reregelt. Ach ja, die Teilung soll dabei variabel sein. Bisher kann der Benutzer eine Menge (soll zb 1036Stück) nicht angeben. Er kann lediglich zb bei einer Teilung von 25 Stück, 1025 Stück angeben. (Etikettendrucker druckt dann 42 Etiketten für 1050 Stück. 1 Etikette wird entsorgt). Danach muss er die restlichen 11 Stück eingeben, welche dann auch doppelt ausgedruckt werden. (1 Etikette wird entsorgt)

Code:
Sub Makro1()
  
   Application.ActivePrinter = "Brother DCP-135C Printer auf Ne03:" '(ist nicht der Etikettendrucker. ist nur meinTestdrucker zuhause)
   Dim dblSeiten As Double
   dblSeiten = Range("H8").Value
   If dblSeiten < 1 Then
      dblSeiten = 1
   Else
      dblSeiten = WorksheetFunction.RoundDown(dblSeiten, 0)
   End If
   ActiveWindow.SelectedSheets.PrintOut Copies:=dblSeiten
   Range("H5:I5").Select
   Selection.ClearContents
   Range("H6:I6").Select
   Selection.ClearContents
End Sub

Die einzugebenden Daten werden in einem druckbaren Bereich angezeigt und Schlussendlich über einen Button "drucken" zum Etikettendrucker übertragen. Ich hoffe, dass sich jemand erbarmt, und mir weiter hilft. Mag sein, dass so mancher über mein Anliegen lächelt. Aber ich habe Humor, und lache mit :19:

MfG der Klaus
Hallo Klaus,

trotz deiner ausführlichen Beschreibung habe ich das Problem leider nicht erfasst.

Dein (etwas entschlackter) Code:

Code:
Sub Makro1()
Dim dblSeiten As Double
 
    Application.ActivePrinter = "Brother DCP-135C Printer auf Ne03:" '(ist nicht der Etikettendrucker. ist nur meinTestdrucker zuhause)
    dblSeiten = Range("H8").Value
    If dblSeiten < 1 Then
        dblSeiten = 1
    Else
        dblSeiten = WorksheetFunction.RoundDown(dblSeiten, 0)
    End If
    ActiveWindow.SelectedSheets.PrintOut Copies:=dblSeiten
    Range("H5:I6").ClearContents
End Sub

macht doch das, was du willst! In der Zelle H8 wird doch die Anzahl der zu druckenden Etiketten eingetragen und der Code übernimmt diese Menge zum Drucken.
Hallo Glausius,

erstmal habe ich deine Änderungen übernommen! Schön, dass du dich für mein Problemchen interessierst. Ich denke, dass ich das Problem an der verkehrten Stelle angepackt habe. Ich muss ja die Berechnungen in den Zellen vornehmen und nicht am Makro herum frickeln. Das klappt ja, wie du schon sagtest.

Die Antwort zu einer weiteren Frage hat mich drauf gebracht. Der Antworter hat es genau auf den Punkt gebracht. Bisher konnte man die tatsächliche Menge ja nicht eingeben. Ich hattee mich seiner Zeit damit beholfen, indem Excel die Teilmegen angezeigt hatte. Aber nun kann man direkt die gesamte Menge eingeben, und Excel berechnet das ganze in Losmengen und eben dem Rest, der übrig bleibt.