Excel 2010 - fortlaufende Nummer beim Drucken

von Schnitzel

Captain
Registriert
Apr. 2008
Beiträge
3.903
Tach zusammen,

ich bräuchte ein Makro für Excel 2010 das mir beim Drucken, den Wert einer Zahl in einer bestimmten Zellel immer um 1 erhöt.
Ich hab schon diverse Makros hier rumliegen, nur funktionieren die unter 2010 nicht mehr.
Umschreiben kann ich die leider nicht, da meine Kenntnisse nicht so weit reichen.

THX
 
Schau dir mal folgendes Beispiel an:

Sub Druck()

Dim wert As String

ActiveWindow.SelectedSheets.PrintOut 'Druckt den angegebenen Druckbereich

wert = Range("J5").Value ' Bereich, wo Wert ist: J5 abändern
Range("J5").Value = wert + 1 ' J5 abändern
End Sub
 
Läuft, thx.

Wie wäre das denn, wenn ich mehrere exemplare drucken möchte - z.B. 250 Stück.
Was müsste dann am Quelltext geändert werden?
 
Wie wäre das denn, wenn ich mehrere exemplare drucken möchte - z.B. 250 Stück.

Wie äußern sich die 250 Exemplare? willst du 250 Tabellenblätter nacheinder drucken?
Sind es 250 Seiten in einem Tabellenblatt? oder 250 Excelmappen?!

Paar mehr Angaben wären sinnvoll:

Was soll gedruckt werden (Mappenname, Tabellenblattname, Druckbereich)
Wo steht die fortlaufende Nummer? (Mappenname, Tabellenblattname, Zelle)
 
Die Exceltabelle besteht nur aus einem Tabellenblatt (Tabelle1) von dem evtl. mehrere Exemplare ausgedruckt werden. Auf jedem Exemplar soll die Zahl (in Zelle C3) um 1 erhölt sein.

Sorry.
 
Probier mal diesen Code:
Sub Druck()

Dim wert As String

x = InputBox("Bitte geben Sie die Anzahl der Exemplare ein:", "Wie viele Exemplare:", "1")
ActiveWindow.SelectedSheets.PrintOut Copies:=x 'Druckt den Druckbereich + Anzahl = X

wert = Range("C3").Value 'variable Wert = aktueller Wert J5
Range("C3").Value = wert + 1 'aktueller Wert J5 = variabler Wert + 1
End Sub
 
Bei dieser Version wird, wenn ich "2" eingebe, zweimal das selbe Exemplar mit der gleichen laufenden Nummer ausgedruckt; es soll aber die Nummer immer um eins pro Druck erhöt werden.

Sollte ich mir undeutlich ausgedrückt haben, bitte ich dies zu Entschuldigen.
 
Achso...jetzt verstehe ich.

Die lfd. Nummer ist im Dokument mit abgebildet.

Also brauchst du eine Schleife:

Sub Druck()

Dim wert As String

x = InputBox("Bitte geben Sie die Anzahl der Exemplare ein:", "Wie viele Exemplare:", "1")

For i = 1 To x
ActiveWindow.SelectedSheets.PrintOut
wert = Range("C3").Value
Range("C3").Value = wert + 1
Next i
End Sub
 
Wuhu^^ es funzt genau so wie ich es brauche.
Vielen vielen Dank.:D
 
Hallo zusammen,

ich greife diesen älteren Post noch einmal auf, da ich vor dem selben Problem stehe aber das Macro nicht zum laufen bekomme.
Wie auch der eigentliche Fragensteller rauche auch ich nur ein einziges Tabellenblatt.

Ich nutze im Gegensatz zum eigentlichen Thread Excel 2007. Wenn ich das Macro in Einzelschritten durchlaufen lasse bekomme ich bei "Next i" die Fehlermeldung Laufzeitfehler 13, Typen unverträglich.

Wie muss das Macro verändert werden, damit es auch bei mir läuft?

Vielen Dank schon einmal im vorraus

Andreas
 
Hallo Andreas,

ich behaupte einfach einmal: Die Zelle C3 ist leer oder enthält ABC-Text. Schreibe eine Zahl in die Zelle und es sollte laufen.
 
Hallo

bei mir läuft das Makro super, vielen Dank.

Kann mir jemand noch helfen und das Makro anpassen?

Ich möchte gerne jede Nr. 2 mal ausdrucken und dann eins hochzählen.

1
1
2
2
3
3
4
4
usw.

Vielen Dank schon im voraus.

Gruß

Nomeat
 
ad hoc würde ich sagen:
Schreibe den Print Befehl zweimal nacheinander in die Schleife, da die Zahl erst bei Ende der Formel erhöht wird.
 
Danke an Knufu

für alle die es wissen möchten....

einfach die Zeile

ActiveWindow.SelectedSheets.PrintOut

wiederholen. Das ganze sieht dann so aus:

Sub Druck()

Dim wert As String

x = InputBox("Bitte geben Sie die Anzahl der Exemplare ein:", "Wie viele Exemplare:", "1")

For i = 1 To x
ActiveWindow.SelectedSheets.PrintOut
ActiveWindow.SelectedSheets.PrintOut
wert = Range("C1").Value
Range("C1").Value = wert + 1
Next i
End Sub



Danke für die schnelle Hilfe

Gruß

Roland
 
btw.

Wieso wird die Variable "wert" in jeder Schleife neu eingelesen?
Es reicht doch wenn ich die Variable einmal initialisiere und dann einmal einlese.
In jeder Schleife wird diese Variable dann um eins erhöht.
 
Hallo zusammen,

ich hätte auch noch zwei hoffentlich einfache Fragen

Wie kann ich es machen, dass der Wert, den ich für die Anzahl der Seiten angebe, also x, ebenfalls auf dem auszugegebenden Blatt erscheint?
Also wenn ich Anzahl = 12 eingebe, dass dann auf dem ersten Blatt 1 / 12 steht, auf dem zweiten 2 / 12 etc.

Ist es auch möglich in der Zelle, wo dann die 12 steht, einen Button o.ä. zu haben, der das Makro aktiviert?
Also ich drücke auf den Button in Zeile C4, dann kommt ein Popup, wo ich die Anzahl angebe und der Druck beginnt nach der Eingabe?

Ich hoffe, ich habe mich verständlich ausgedrückt. Vielen Dank für die Hilfe,

mfG Christian

***Habs mit Eigenrecherche hinbekommen*** Trotzdem danke ;)
 
Zuletzt bearbeitet:
Hi,

ich möchte ähnlich wie mein Vorredner oben eine Makro erstellen, daran hapert es allerdings leider schon, weil ich nicht so der pro bei Excel bin.Wie müsste ich vorgehen wenn ich diesen sub () sub end Text kopiere , was muss ich genau machen?

Ich möchte eine Tabelle ausdrucken, bei der sich mit dem Ausdruck eine Zahl in einer Zelle ändert, allerdings ist diese Zahl nicht unbedingt fortlaufend steigend um den Wert 1, sondern ich möchte selber die Zahlenfolge bestimmen können, wenn ich jetzt z.B. 35 Ausdrucke von der Tabelle erstelle ,das diese eine Zelle quasi immer eine andere bestimmte vorgegebene zahl auf dem Ausdruck erscheint.

Dieses Makro sollte es mir erleichtern, nicht für jede Nummer eine Tabelle als Karteikarte/Tabreiter erstellen zu müssen, die ich mühsam alle einzeln ausdrucken müsste.


Ich hoffe ihr könnt mir folgen und auch weiterhelfen.

Gruß

Grander
 
Hallo,

da gibts sicherlich viele Moeglichkeiten. Eine ist z.B. eine weitere Inputbox zu instrumentalisieren.

Code:
Sub Druck()

Dim werte As String
Dim zahlen() as String

x = InputBox("Bitte geben Sie die Anzahl der Exemplare ein:", "Wie viele Exemplare:", "1")
werte = InputBox("Bitte geben Sie die Werte duch , getrennt ein:", "Werte Eingeben:")
zahlen = Split(werte,",")


For i = 1 To x
ActiveWindow.SelectedSheets.PrintOut

Range("C1").Value = Cint(zahlen(i-1))
Next i
End Sub

Hoffe das klappt, habe es frei Hand eingetragen :)


Ergaenzung: Das ist sehr basic, auf keinen Fall weniger Zahlen eintragen als Exemplare gedruckt werden sollen.
 
Danke für die Info bzw. Das Makro.

Kannst Du mir vielleicht sagen, wie ich den Text einfüge das es funktioniert ? Ich bin leider in Excel nicht so bewandert was Makros angeht :/

Gruß
Grander
 
Drueckste mal Alt+F11, damit kommste in den VB Editor. Dort kannst Du den Code einfuegen, anpassen und ausfuehren.
 
Zurück
Oben