Exel 2013 für Folgenummern beim Druck

Mirco1977

Newbie
Registriert
Nov. 2016
Beiträge
4
Moin,
ist es möglich über Exel ein Makro oder Addins zu bekommen mit der ich wenn ich Gutscheine drucke immer eine Fortlaufende Nummer habe.
Diese sollte aber nicht nur 1, 2, 3 usw sein sondern sich aus Buchstaben Wie GU-Jahr-und dann 1,2,3, usw zusammensetzen und dann auch noch beim nächsten Drucken wieder bei der Nummer weitermachen wo ich aufgehört habe. Dort kann ich aber auch manuell die letzte Nummer eintragen. Dann sollte ich auch noch definieren können wie viele ausdrucke ich haben möchte.
Vielen dank.
Mirco
 
..?
Das erschließt sich mir nicht recht.

Würde ich so was drucken müssen, und sei das über ein einzelnes Kommando mehrfach, dann hätte ich diese eine Mappe die auch das Außenrum hält nebst einer Zelle die laufend mitzählt und (das muss sein) je einzeln per im Makro ausgelöstem Druckjob die Zelle um 1 hochzählt. Das speichert sich automatisch. Die Zelle ist natürlich außerhalb des Druckbereichs stationiert.

Wie weit bist du derzeit mit dieser Aktion?

CN8
 
Was die Komplexeren fragen in Exel angeht bin ich nicht so fit.
Gerade was das hochzählen im Druck betrifft bin ich echter Leihe ebenso wir Makros.
Die normalen Zellen erstellen ist ja kein Problem das kann ja ein starrer Text sein.
Aber Speichert Exel das immer bei der letzen erstellen Nummer?
 
Du möchtest das bekommen? Also jemand bastelt Dir das schnell mal zusammen und schickt Dir das? Oder eher Hilfe zur selbst hilfe?

Man müsste natürlich Excel sagen das es von selbst speichern soll, das geht.

Man könnte eine Art Datenbank anlegen, in welcher alle erstellten Nummern auflaufen und dann immer bei der nächsten weitermachen. Da könnte man dann auch evtl. Namen dazu speichern, oder so.

Ich sage immer, alles ist möglich...
 
Hast Du denn diese Gutscheine schon fertig erstellt als Vorlage, oder Excel file? Man koennte soweit gehen, dass man eine Access Datenbank baut in welcher die Seriennummern gespeichert werden (wie von Janush bereits vorgeschlagen) und dazu ein Excel Add-In welches eine Wordvorlage oeffnet, die Seriennummer hinzufuegt und dann Ausdruckt. Das Add-In wuerde zusaetzlich die Nummern aus der DB lesen und neue hinzufuegen. Der Vorteil hier ist, das so ein Program beliebig erweiterbar waere.
 
Moin,
Als erstes würde ich natürlich gerne was dazu lernen wollen, ohne das jemand die ganze Arbeit hat und ich dann immer noch nichts von der Materie verstehe.
Nur was weitergehende Formeln in Exel angeht verstehe ich halt nicht viel.
Zu Kompliziert sollte sollte es nach Möglichkeit auch nicht sein da nicht nur ich am System arbeite.

Access ist bisher ein Buch mit sieben Siegeln für mich, habe mich früher mal mit beschäftigt und nach ein paar versuchen genervt weil nichts funktionierte kapituliert.

Ich habe die Gutscheine schon als Exel Vorlage und kann die Ersten Ziffern wie GU und Jahr selber als festen Wert setzen.
Jetzt geht es nur darum das ich die Werte danach Automatisch hochgezählt bekomme wenn ich mehrere Ausdruck ohne jedesmal manuell eine Nummer einzutragen.
Und das ganze muss auch so geschützt sein das meine Frau nichts löschen oder verstellen kann, denn dafür hat Sie ein Händchen. :)
Der Vorschlag von cumulonimbus8 wäre glaube ich schon die einfachste Art weil ich keine Namen oder sonstiges extra dazu speichern muss das passiert bei uns noch mit Zettel und Stift.
Leider habe ich keine Ahnung wie man Exel so schlau bekommt.
 
Und das ganze muss auch so geschützt sein das meine Frau nichts löschen oder verstellen kann
:D Vergiss es :D

Die Vorschläge mit der Datenbank tendieren tatsächlich in die Richtung einer gewissen Sicherheit nach der man nicht so ohne Weiteres an den Daten rumbasteln kann.

Wie sicher muss die Aktion denn sein? Je nach Temperament kann man es lockerer sehen (einfach eine Zelle die den laufenden Wert hält) oder z.B. diesen Wert in einer Hilfsdatei lagern. Kritisch sehe ich nur den Aspekt wie viele Etiketten ich am Stück drucke. Pessimist wie ich wäre würde ich die Hilfsdatei wählen und nach jedem Etikett die laufende Nummer dahin speichern. Das ist prinzipiell mehr mechanischer Aufwand.
Als Opportunist würde ich die kritische Zelle weit außerhalb der Sichtfläche des Blattes parken (vielleicht auch mal 5 verstreute Zellen nehmen und dann auf die Mehrheit setzen) und die Methode Weißer Adler auf Weißem Grund ansetzen: was ich nicht weiß macht mich nicht heiß - ein besserer Schutz als man denkt.

Direkt hinprogrammieren möchte ich hier nicht, ich finde dann immer wieder Dinge die man absichern oder optimieren sollte… Da du Eingaben machst setze ich einen Button voraus (Code ›im Blatt‹) und den Arbeitscode in einem Modul (ich mag diese Trennung der Ordnung halber [auch wenn man mir vorwirft, das wäre für mich ein Fremdwort ;) ]).
Also lese ich zuerst aus wie viele Etiketten es diesmal werden (Eingabe in eine Zelle). Beginn einer Schleifenkonstruktion. Dann lese ich die Laufende-Nummer-Zelle aus und addiere zu dem Wert 1. Dies muss offenbar in eine Zelle im ›Inneren‹ des Etiketts (nicht die selbe wie die zum Lagen). Nun setzt ich den (einzelnen) Druckauftrag ab (und hoffe, dass der glatt geht). Der erhöhte Wert kommt in Laufende-Nummer-Zelle (erst nach dem Drucken). Ende der Schleife, 1 hochzählen bis Druckziel erreicht. Eingabe löschen, Mappe speichern.
Pessimisten speichern zum Ende jedes Schleifendurchgangs.

CN8
 
meine Frau ist schon schlimm was das ganze angeht aber ich habe meine Taktiken gelernt. Ich habe immer noch eine Original Datei liegen die Kennwortgeschützt ist um alles im Notfall auf Null zurück zu bringen! Auch ganz wichtig bei uns ins der Täglichen Buchhaltung!!!
Dort habe ich auch einzelne Zellen in weiß auf weiß gebaut aber sicherheitshalber noch mal die Zellen gesperrt und seid dem Funktioniert es!
Daher sehe ich das ganze recht locker was das überschreiben angeht.
Es braucht für uns auch nicht so Kompliziert zu sein. Vordruck ist da und meistens drucken wir uns 20Stk aus.
Es würde mir sogar reichen wenn ich einfach nur dem Anfangswert dann selber eintagen würde also Start bei 1 in der Zelle und beim nächsten Drucken dann einfach 21 und dann go. So könnte ich dann auch mal einen Gutschein erstellen und per Mail versenden ohne Ihn ggf Drucken zu müssen und kann dann immer da weitermachen wo ich aufgehört habe.
 
Ob Excel in dem Falle das richtige Tool darstellt ist die Frage. Mit einer Datenbank hätte man eine Reihe von Vorteilen, unter anderem auch die Fehlertoleranz, so ein Excel Sheet ist schnell zerstört.
 
Hier mal ein kleines Bespiel wie sowas aussehen koennte.

Dieser Code geheort in Excel und Oeffnet in seiner jetzigen Form 5 neue Word Dokumente und schreibt eine Gutscheinnummer in den Header. Aufsteigend von 1 bis 5. Man koennte jetzt diesen Code anpassen und eine bestimmte Gutscheinvorlage oeffnen lassen, damit man am Ende einen schoen gestalteten Gutschein hat :-)

Man koennte auch den Zaehlerbereich variabel uebergeben, wenn man zum Beispiel eine Zaehler-Verwaltungs-Funktion baut.

Und dann laesst man Word die Dokumente drucken, oder als PDF ablegen. Je nachdem was man moechte. In dem Beispiel sind die Druckfunktionen auskommentiert, damit man leichter testen kann, ohne das gross was passiert.

Wenn man das alles dann noch mit nem UserForm verbindet, hat man ein schoenes kleines Gutscheinverwaltungsprogramm :king:

Code:
Option Explicit

'SOL Solutions @ Office 365
'Alle Angaben ohne Gewaehr :-)
Sub WordGutschein()
Dim wa As Object
Dim doc As Object
Dim zaehler As Integer

Set wa = CreateObject("Word.Application")
'Oeffnet Word und Zeigt es an
wa.Visible = True

'Der zaehler koennte hier an die Funktion uebergeben werden,
'Also irgend ein Bereich
For zaehler = 1 To 5
    'an stelle von Add, koennte hier eine Vorlage des Gutscheins
    'geoeffnet werden. Dann kann man schoenere Sachen erstellen
    Set doc = wa.Documents.Add
    
    With doc
        .Sections(1).Headers(1).Range.InsertBefore _
        "Gutschein Nummer " & Format(Date, "dd mm yyyy") & " " & zaehler

        'Hier kann man dann noch schoene Dinge mit dem Worddokument machen
    End With
    
    'Hierher kommt der Befehl zum PDF exportieren
    'ActiveDocument.ExportAsFixedFormat OutputFileName:= _
        "C:\Users\.....\Doc1.pdf", ExportFormat:=wdExportFormatPDF, _
        OpenAfterExport:=False, OptimizeFor:=wdExportOptimizeForPrint, Range:= _
        wdExportAllDocument, From:=1, To:=1, Item:=wdExportDocumentContent, _
        IncludeDocProps:=True, KeepIRM:=True, CreateBookmarks:= _
        wdExportCreateNoBookmarks, DocStructureTags:=True, BitmapMissingFonts:= _
        True, UseISO19005_1:=False
        
    'oder aber zum drucken
    'Application.PrintOut Filename:="", Range:=wdPrintAllDocument, Item:= _
        wdPrintDocumentWithMarkup, Copies:=1, Pages:="", PageType:= _
        wdPrintAllPages, Collate:=True, Background:=True, PrintToFile:=False, _
        PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
    
    Set doc = Nothing
Next zaehler

Set wa = Nothing
End Sub

Sollte Excel nachdem Kopieren rummeckern, kann es sein das die Leerzeilen als etwas anderes eingefuegt wurden und vom Compiler nicht erkannt werden. Dann einfach die dann markierten Zeichen loeschen und durch echte Zeilenumbrueche ersetzen. Bei mir passiert das andauernd :-)

mfg
 
Zurück
Oben