Hallo dreamflasher,
bin vom Urlaub zurück und beim Aufräumen meiner Emails über Deine Anfrage gestolpert. Es gibt zwei Möglichkeiten:
1) Du ersetzt im Makroteil die im Folgenden mit ALT markierten Zeilen durch die mit NEU markierten Zeilen:
ALT: ausdrucke = endnummer - startnummer + 1
NEU: ausdrucke = (endnummer - startnummer)/2 + 1
und
ALT: For i = startnummer To endnummer
NEU: For i = startnummer To endnummer step 2
2) Du ersetzt das obige Makro durch das Folgende. In dem habe ich die Schrittweitenabfrage ebenfalls eingebaut, so dass jemand auch beliebige Schrittweiten eingeben kann...
Gruss martintino
und hier das Makro:
-------------------------
Sub Losdrucker1()
'
' Dieses Programm druckt eine aufsteigende LOSnummer in eine vorher ausgewählte EXCELZELLE.
' Das MAKRO wird von Extras>Makros>Losdrucker1 gestartet.
' Bitte darauf achten, dass der zu verwendende Drucker als Standarddrucker eingestellt ist,
' da im Makro keine Druckeranpssung erfolgt.
' Auswaehlen lassen sich "anfgangsnummer", "endnummer", "schrittweite", "X/Y Koordinaten
' der Losnummernzelle". Bitte geben Sie alle Zahlen als Integer (ganze Zahlen) ein, da es
' ansonsten zu Fehlern kommt. Eine automatische Fehlerkorrektur ist im Programm nicht
' vorgesehen. Sollten Sie in den DEBUGGEN Modus kommen, so stoppen Sie einfach das Makro
' und beginnen nochmals von Neuem.
' Spalten A, B, C, D,... werden als Zahlen 1,2,3,4... eingelesen
' viel vergnuegen - martintino / 14.1.2008
Dim xzellwert As Integer
Dim yzellwert As Integer
Dim startnummer As Integer
Dim endnummer As Integer
'Dim schrittweite As Integer
Dim ausdrucke As Integer
Dim i As Integer
'
'Losnummerneingabe:
startnummer = Application.InputBox("Bitte Losnummer eingeben für ERSTES LOS: ")
endnummer = Application.InputBox("Bitte Losnummer eingeben für LETZTES LOS: ")
schrittweite = Application.InputBox("Bitte die Schrittweite eingeben (Falls keine Eingabe erfolgt, ist die Schrittweite 1): ")
If schrittweite = "" Then schrittweite = 1
If schrittweite = 0 Then schrittweite = 1
ausdrucke = (endnummer - startnummer) / schrittweite + 1
'Zelleingabe
xzellwert = Application.InputBox("Bitte LosNummernSpalte der variablen Zelle eingeben: ")
yzellwert = Application.InputBox("Bitte LosNummernZeile der variablen Zelle eingeben: ")
' Bestaetigung der Eingabewerte:
MsgBox "Ihre LOSZELLE ist SPALTE " & xzellwert & " / ZEILE " & yzellwert _
& ". Sie starten den DRUCK bei LOS-Nummer: " & startnummer _
& " und enden bei LOS-Nummer: " & endnummer & ". Ihre Schrittweite ist: " & schrittweite & _
". Bitte legen Sie die folgende Anzahl an Blaettern in Ihren Standarddrucker ein: " _
& ausdrucke & ". Danach drücken Sie bitte OK!!! " & _
"V O R S I C H T!!! - Alle Blätter werden OHNE UNTERBRECHUNG ausgedruckt!", _
vbYesNoCancel
'Seriendruck
For i = startnummer To endnummer Step schrittweite
ActiveSheet.Cells(yzellwert, xzellwert).Value = i
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Next i
'Beendigung des Druckauftrages
MsgBox "Folgende Anzahl an Blaettern wurde auf Ihrem Standarddrucker gedruckt: " _
& ausdrucke, vbOKOnly
End Sub