PDA

Vollständige Version anzeigen : Fortlaufende Nummerierung eines Wordfiles


Strangers
18.12.2008, 10:06
Guten Tag

Fortlaufende Nummerierung eines Wordfiles

Ich sitze in einer Zwickmühle.
Zu einem weiss ich nicht, ob das vorhaben realisierbar wäre und zum zweiten,
wenn es den realisierbar wäre, weiss ich nicht wie.
Zur Problemstellung.
Ich muss ein Wordfile erstellen (Handelsrechnung) dass immer eine fortlaufende Nummer aufweist (wie z.B. eine Rechnungsnummer). Nun gibt es drei verschiedene Ordner, zum besseren Verständnis heissen die Ordner „ Deutschland, Österreich, Schweiz“.
Bsp:
Nun ist es so dass die erste und zweite Handelsrechnung mit der Nr. 01 und Nr. 02 im Ordner Deutschland gespeichert werden, die dritte aber z.B. im Ordner Österreich und die vierte (04) Handelsrechnung im Ordner Schweiz.
Wenn ich das nächste Mal, die Vorlage verwende um eine neue Handelsrechnung zu erstellen,
soll automatisch die nächst folgender Rechnungsnummer (05) verwendet werden ohne das ich zuerst in den Ordner die letzte vergebene Nummer suchen muss.
Meine Frage an euch, ist dies möglich und zweitens wie ?

Vielen Dank im Voraus

Grüessli
Strangers

C-J
18.12.2008, 10:42
Hallo Fremder,

die Stadt ist zu klein für uns beide!! :D Is nur Spass ...

Ja, man kann fortlaufende Nummern vergeben.
Ich habe auch ein PDF, wo drinn steht wie es geht. Aber das ist zu groß, um es hier hochladen zu können.

Gib mir mal Deine E-mail per PN ...

Gruß, Christoph

peppi
18.12.2008, 11:01
Hallo Christoph,

bitte keine Anleitungen per Mail verschicken... Schick es bitte mir und ich lade es hoch, damit alle etwas davon haben...

Übrigens kann man für fortlaufende Nummerierungen sehr gut die Eigenschaften mit eigenem Eintrag benutzen. Funktioniert dann aber nur mittels vba-Programmierung...
<br>

C-J
18.12.2008, 11:16
Hallo peppi,
das was ich hätte ist halt die Word FAQ von RP, ist nicht die neueste Version, aber der Index ist nicht so zerschossen, wie auf der Webseite ...
Das Ding hat knapp 10mb.

Wenn ich es Dir schicken soll, dann wohin?

Gruß, Christoph

peppi
18.12.2008, 11:21
Hallo Christoph,

das Teil habe ich selber hier in den unterschiedlichsten Versionen... Unter Umständen kann man ja die Seiten, die das, worauf Du verlinken willst, als einzelne pdf's auseinanderdröseln...

Allerdings gibt es da immer noch die Frage des Copyrights - weshalb ich das pdf nicht so gerne hochlade. Zwischenzeitlich gibt es auch bessere Methoden der Nummerierung - zumal der Code von René auch nicht immer einwandfrei läuft. Da ist immer noch Nacharbeit angesagt...

Warten wir also mal ab, ob sich der Fragesteller nochmals meldet und reagieren dann ;)...

Meine Mailadresse steht übrigens in meinem Profil... Falls zukünftig mal was sein sollte... :grins:
<br>

C-J
18.12.2008, 11:27
also meine ist vom 16. März 2001 :D
Dann hat sich das ja quasi erledigt ..

Wegen dem Copyright, keine Ahnung, das Ding kostete doch nichts und in der Fußzeile steht, von wem es ist ..?! Kenn mich da nicht wirklich aus ..

Gruß, Christoph

Strangers
18.12.2008, 11:54
also meine ist vom 16. März 2001 :D
Dann hat sich das ja quasi erledigt ..

Wegen dem Copyright, keine Ahnung, das Ding kostete doch nichts und in der Fußzeile steht, von wem es ist ..?! Kenn mich da nicht wirklich aus ..

Gruß, Christoph

Hallo Pepi und C-J & co

Ich war mal kurz ausserhalb der Stadt...
Copywright wasn das... *hihi*
Ok mal ernst, welche Lösung würde Ihr mir Vorschlagen...?
meine E-Mail Adresse kann ich auch angeben, das ist kein Problem...
Ihr das PDF auch kurz hochladen und dann wieder entfernen...

Ach ja Danke.

Strangers
19.12.2008, 08:24
Hallo Peppi & Christoph...

Ob ich wohl in der falschen Stadt bin...
Wenn ihr nicht zusenden oder hochladen dürft, könnt ihr doch den Text Kopieren... von der Anleitung.
Oder ist das ganze Komplexer als ich mir das Vorstellen kann.

Gruss
Stranger

peppi
19.12.2008, 08:55
Hallo Stranger,

gestern war ich den ganzen Nachmittag und auch abends unterwegs, und heute wird es nicht anders sein... Wenn es ein wenig Zeit hat, kümmere ich mich während der nächsten Tage drum und guck mal, ob ich etwas hochladen kann...

Hotte
19.12.2008, 12:32
Hi,

erstmal eine Frage:

Wie unterscheidest Du in der Vorlage, für welches Land die Vorlage ist? Unterscheiden die sich im eigentlichen Text - oder nur beim Speichern selbst in den Ordnern selbst.... - und wo soll denn die fortlaufende Nummer benutzt werden? Nur beim Speichern oder schon im Dokument selbst?

In den Dokumenteigenschaften der Vorlage kann man viel speichern mit VBA - auch sowas.... Es gibt auch noch die Methode, es extern z.B. in einer ini-Datei oder Textdatei zu speichern. Möglichkeiten sind da vielfältig - je nach Anwendungen.

Strangers
19.12.2008, 14:38
Hi,

erstmal eine Frage:

Wie unterscheidest Du in der Vorlage, für welches Land die Vorlage ist? Unterscheiden die sich im eigentlichen Text - oder nur beim Speichern selbst in den Ordnern selbst.... - und wo soll denn die fortlaufende Nummer benutzt werden? Nur beim Speichern oder schon im Dokument selbst?

In den Dokumenteigenschaften der Vorlage kann man viel speichern mit VBA - auch sowas.... Es gibt auch noch die Methode, es extern z.B. in einer ini-Datei oder Textdatei zu speichern. Möglichkeiten sind da vielfältig - je nach Anwendungen.

Hallo Hotte

Das Formular ist eigentlich immer das gleiche, ausser wenn sich die Sprache ändert ist es eine andere Vorlage.

Die Fortlaufende Nummer, soll nicht nur beim Speichern ersichtlich sein, sondern auch auf dem Formular (wie z.B. bei den Rechnungen, die ja immer eine Fortlaufende Rechnungsnummer haben).

Jedes Ziel andere Adresse hat einen eigenen Speicherort (Ordner).

Ich bin überhaupt nicht gewandt mit Word umzugehen und auch sonst ein banause was die Technik angeht.
Ich kann mit VBA nichts anfangen (sagt mir nichts) und ini. Datei habe ich schon gehört und gesehen, mehr auch nicht...

Gruss und Danke

Strangers
19.12.2008, 14:39
Hallo Stranger,

gestern war ich den ganzen Nachmittag und auch abends unterwegs, und heute wird es nicht anders sein... Wenn es ein wenig Zeit hat, kümmere ich mich während der nächsten Tage drum und guck mal, ob ich etwas hochladen kann...


Hallo Peppi

Nimm dier Zeit und nicht das Leben (Mehr als blöde Sprüche Klopfen, kann ich nicht).
Gruss

Hotte
19.12.2008, 15:14
Hi,

... und dann wird jetzt alles "manuell" gemacht - also die laufende Nummer für die Sprache manuell eingegeben?

Soll die laufende Nummer jetzt einfach nur angezeigt werden oder wie hast Du Dir das gedacht.

Wie gesagt: machbar ist (fast) alles.... man muss nur wissen, wie das genau assehen soll und jetzt aussieht.

Strangers
22.12.2008, 07:18
Hi,

... und dann wird jetzt alles "manuell" gemacht - also die laufende Nummer für die Sprache manuell eingegeben?

Soll die laufende Nummer jetzt einfach nur angezeigt werden oder wie hast Du Dir das gedacht.

Wie gesagt: machbar ist (fast) alles.... man muss nur wissen, wie das genau assehen soll und jetzt aussieht.


Moin Hotte

Nein, es wird nicht manuell gemacht.
Das ist eine neue Vorschrift. D.h. wenn ich keine Lösung finde, wird es manuell gemacht.

Die Fortlaufenede Nummer soll gedruckt werden.
Stell dir einen Briefkopf vor der zu unterst diese fortlaufende Nummer hat.
Diese Nummer soll, dann für Jahrzente zurüchverfolgbar sein....
Bei jedem öffnen der Vorlage soll eine Nummer generiert werden, (egal ob dieses Forlmular gespeichert wird...)

Es sollte eigentlich wie ein Auto Text (Datum, Seitenzhal etc.).
Über finessen möchte ich gar nicht reden wie z.B.
Was passiert wenn ich eine neue Rechnung erstelle, diese Drucke aber nicht speichere... welche Zahl nimmt er beim nächsten öffnen der Vorlage, die gespeicherte oder... ?:entsetzt:

Hotte
22.12.2008, 10:54
Hi,

mir ist klar, dass es nun automatisch gemacht werden soll.

Aber wie ist der aktuelle Stand? Wie macht ihr das jetzt?

Das ist alles möglich - aber nur mit VBA. Man müsste irgendwo beim Starten der Vorlage ja fragen, welche Sprache gewählt werden soll. Denn Word muss ja wissen, was er hochzählen soll.

Also da eine Userform, die das abfragt.

Wie man das am einfachsten in das Dokument dann einfügt - das richtet sich nach dem Dokument selbst. Da ich es nicht kenne, kann ich dazu erstmal nicht nichts sagen. Man kann es über Textmarken mit VBA machen...


Das, was Du mit Finessen beschreibst, sind aber die wichtigen Fragen. Denn danach richtet sich die ganze Funktionalität. Soll die Nummer nur vergeben werden, wenn die "Rechnung" gespeichert wird?

Du musst erstmal den Istzustand genauer beschreiben - und den gewünschten Zustand!
Dann können wir Dir helfen.....

Strangers
22.12.2008, 11:27
Hi Hotte

Momentan wird nichts gemacht, d.h. ohne Nummer.

Es sind 2 (vorerst) Vorlagen eine Französisch, die andere Deutsch.
Egal welche Vorlage er verwendet, es ist eine Fortlaufende Nummer.
Die Nummer soll vergeben werden, wenn eine Vorlage geöffnet wird und nicht beim speichern (wenn eine Person vergisst zu speichern, und das nächste Mal wieder die Vorlage geöffnet wird, nicht zweimal die gleiche Nummer verwendet wird).

Wenn ich nur einen Anfang hätte würde ich selber einwenig probieren.
Alle sprechen von VBA, ich weiss höchstens was es heisst aber anwenden..., vorallem ist das eine Software oder Programmierung ?

Gruss

Hotte
22.12.2008, 11:35
Hi,

VBA gehört zu Microsoft Office. Schau mal ein wenig hier (http://www.vba-wordwelt.de)nach - da gibt es ein wenig Grundkenntnisse...

Ok - dann werde ich mal was basteln - wird aber eher abends bis nachts was werden...

Wenn es für jede Sprache eine eigene Vorlage gibt, ist es etwas einfacher. Dann kommt die laufende Nummer in die jeweilige Vorlage.

Die Nummer wird dann hochgezählt, wenn eine neue Rechnung (oder was es ist) erstellt wird.

Strangers
23.12.2008, 13:45
Hi Hotte

Vielen Dank für den Link.
Der hat mir ein paar Glühbirnen angezündet.
Sie nehmen sogar mein Problem als Beispiel, nur keine Lösung dazu :(

Gruss

Hotte
23.12.2008, 14:29
Hi,

ja ... ich weiß! Irgendwie hab ich ja doch was damit zu tun....;)

Solch ein Beispiel hab ich schon alles - musses nur ein bischen "umbauen". Aber der Weihnachtsstress ... dauert also noch ein wenig, bis ich dazu komme....

Hotte
24.12.2008, 16:21
Hi,

hier mal mein Beispiel für sowas.

Es muss immer der gesamte Code aus der Vorlage in Deine Vorlage kopiert werden.

Schau Dir unbedingt die Anpassungen in dem Modul "mod_Funktionen" an!

Als Dateieigenschaft habe ich "Nummer" genommen. Diese Dateieigenschaft musst Du in die Vorlage selbst als neue Eigenschaft mit Zahl formatiert einfügen. Als Wert trägst Du 0 ein.
Dazu die Vorlage öffnen und in die Eigenschaft (Menü Datei) gehen. Dort dann auf dem Register "Anpassen" den Eintrag vornehmen.

Bei den Anpasungen kannst Du folgendes machen:
Variable "Stelle":
das sind die Anzahl der festen STellen fürdie Numemr selbst. Wenn Du hier eine 3 einträgst, dann hat die Numemr immer 3 STellen. Bei eins sieht es dann so aus: 001

Variable "MyEigenschaft":
Hier komtm der Name der eigenschaft rein, den Du vergeben hast

Variable "TM_Name":

Das ist der Anfang der Textmarken, wo die Nummer ins Dokument eingefügt werden soll.
Schau Dir mal die Textmarken im Beispiel an - und dann den Eintrag im Code

So zählt er jedes Mal hoch, wenn ein neues Dokument aufgrund der Vorlage erstellt wird.
Ob das Dokument dann auch gespeichert wird, spielt hier keine Rolle...

Am besten Du schaust Dir die Vorlage im Anhang mal genau an. Dateieigenschaften, Textmarken und den Code...

Strangers
05.01.2009, 07:58
Hi Hotte und ein gutes neues Jahr

Ich hoffe du bist gut gestartet.
Oh je jetzt habe ich dich noch mehr in einen Weihnachtlichen Stress
Gebracht…. Das wollte ich nicht…
Jetzt habe ich ein schlechtes Gewissen…
Mir ging es gleich, darum war mal Pause angesagt was die Arbeit anbelangt, dafür hat
Mich die Grippe mit Fieber ins Nest gehauen… na ja… Im still alive

Vielen Dank für deine Hilfe, ich werde mir deine Vorlage unter die Lupe nehmen…
Also bis dann und einen guten Start

Greets
Strangers

Strangers
06.01.2009, 09:11
Hi Hotte

Ich habe mir das ganze zu gemüte genommen.
Deine Vorlage funktioniert einwandfrei.
Ich habe bei der Vorlage die Anzahl Stellen (von 1) auf
8 Stellen (00000008) geändert. Zürüchstellen wollte nicht funktionieren
über "Datei - Eigenschaften - Register Anpassen".
Egal,... Eigentlich Tip top... aber... irgend etwas habe ich nicht begriffen...
Wenn ich deine Vorlage als neue Dokumentvorlage (speicher unter als dot.) speichere, funktioniert danach auch deine Vorlage nicht mehr...
Der ganze Code vom Visual Basic ist auch nicht mehr vorhanden.

Ich habe gestern mehrmals den Code, in meine Vorlage eingefügt.
Ich habe lediglich die Stellen geändert und alles andere beim alten gelassen.
Die TM_Nr per Textmarker in meiner Vorlage positioniert.
Aber ein Zähler enstand dabei nicht.

Nun meine Frage, habe ich etwas wesentliches vergessen, eine Eigenschaft oder Verknüpfung (Wohlmöglich mein Verständniss für diese Programmierung) ?

Ich bin wohl dein grösster Alptraum... :-(

Gruss
Strangers

Strangers
06.01.2009, 10:09
Hi Hotte

Ich unterhalte mich gerade selbst.... :-)
Bevor du dir die Mühe gibst viel zu schreiben habe ich das geschnallt mit dem Anpassen und speichern unter usw. (Ist irgendwie recht umständlich das ganze...) Jetzt tauch in meiner Vorlage die Fehlermeldung:
"Laufzeitfehler 13" (Typen unverträflich)
und das bei dem Fettgedruckten (siehe Code unten).
Ehm... Hilfe...
Ich versuch es Mal selbst...

Function RechnungsNummer() As String
Dim i As Long
Dim strZahl As String

strZahl = DateiEigenschaft_lesen(MyEigenschaft)

i = CLng(strZahl) + 1

Call DateiEigenschaft_schreiben(MyEigenschaft, i)

RechnungsNummer = FormatNummer(i)

End Function

Gruss
Strangers

Hotte
06.01.2009, 10:20
Hi,

Du musst in der neuen Vorlage die Dateieigenschaft "Nummmer" eintragen mit einer Startnummer - ggf. "0".

So scheint dort nichts drin zu stehen - und der String "strNr" scheint leer zu sein.

Du könntest folgende Zeile vor der Debugzeile einfügen (wo der code jetzt stehn geblieben ist):

If strNr = "" Then strNr = "0"

Dann wird es wieder laufen.....

Ich hatte hier darauf verzichtet, die Eigenschaft abzufragen und ggf. per Code zu setzen...

Strangers
06.01.2009, 12:12
Hi

Vielen Dank für den Code
Ich habe den Code eingegeben.
Die Dateieigenschaft ist auch i.O.
So scheint dort nichts drin zu stehen - und der String "strNr" scheint leer zu sein....
Welchen meinst du...? In deinem Code ist er leer..
Ansonsten steht:
Private Const MyEigenschaft As String = "Nummer"
Private Const TM_Name As String = "TM_Nr"

Ich bekomme jetzt diese Fehler Mehldung:
Mehrdeutige Bezeichnung (für Rechnungsnummer)

Sub AutoNew()
'immer wenn ein neues Dokument aufgrund der Vorlage erstellt wird...

Dim strZahl As String

strZahl = RechnungsNummer

Call Textmarken_fuellen(strZahl)

End Sub


Gruss

Strangers
06.01.2009, 13:27
Hi

OK habe das mit dem Mehrdeutige Bezeichnung hinbekommen, vorrerst.
Jetzt muss ich nur noch StrNr in deinem neuen Code definieren.
Vielleicht bringe ich was zustande.

Gruss

Hotte
06.01.2009, 13:56
Hi,

wieso definieren???? Wo willst Du was genau definieren???

Du musst nur dei Zeile einbauen - direkt vor der Zeile, wo er stehen geblieben ist. So sieht das dann aus:


strZahl = DateiEigenschaft_lesen(MyEigenschaft)

If strZahl = "" Then strZahl = "0"

i = CLng(strZahl) + 1

Natürlich bleiben sonst alle Zeilen so wie sie sind....

[EDIT] Sorry - die Zeile war nicth ganz richtig wegen der Variablen strNr. Denn da steht die VBariable strZahl....
Also niimm den Code so, wie er jetzt da steht!
Das war mein Fehler....

Strangers
06.01.2009, 14:34
Hi Hotte

Nun hatt es endlich geklappt.
Die Vorlage zählt schön aufwärts.
In diesem Sinne möchte ich dir ganz fest Danken und allen anderen auch.

Ich habe nun in alle Vorlagen den selben Code eingebaut.
Es funktioniert überall. Leider zählen diese nicht Synchron, sondern unabhängig voneinander.
Kann ich das noch irgenwie verlinken, das der Counter (Rechnungsnummer) derselbe ist für alle Vorlagen ?

Nochmals vielen, vielen Dank Hotte, du hast mir meinen A... gerettet
Gruss und einen schönen Abend
Strangers

Hotte
06.01.2009, 22:23
Hi,

wie meinst Du das denn - mit "synchron"...?

Gibt es mehrere Vorlagen, die auf dieselben Numemrn zugreeifen - also immer gleich hochzählen? Dann bleibt nur die Lösung, die Numemr "extern" abzulegen - z.B. in einer kleinen Textdatei oder ini-Datei. Da müssen aber alle drauf zugreifen können - also am besten im Verzeichnis der ganzen Vorlagen speichern.

Wie ist denn das System oder wie soll es sein? Viele Vorlagen, die immer die selbe Nummer hochzählen - oder mehrere Vorlagen, die unabhängige Nummern hochzählen?

Strangers
08.01.2009, 15:12
Hi Hotte

Das System ist so:
Mehre Vorlagen, die eine (dieselbe) Rechnungsnummer Hochzählen.
So sollte es sein.

Der Stand ist:
Mehre Vorlagen, die jede ihre eigene Rechnungsnummer haben (hochzählen).
So kann ich auch damit Leben :-)

Gruss

Hotte
08.01.2009, 15:18
Hi,

... musst Du aber nicht. Das geht auch als "externe" Numemrnverwaltung.

Aber ich dachte, es seien 3 Sprachen, die jeweils hochzählen sollen. So hatte ich das verstanden.... Dann muss es doch mindestens 3 Zähler geben oder?

Strangers
09.01.2009, 10:38
Hi Hotte

Ja du hast recht, es sind 3 Vorlagen und jede hat eine andere Sprache
(D.h. es ist nur ein geringer Text).
Der Absender ist aber immer der gleiche (ich), aus diesem
Grund sollte es auch nur eine Nummer (einen Zähler) geben.

Das ganze ist aber halb so schlimm, dann gibt es einfach pro Land oder Vorlage eine Nummer.

Ich dachte falls es etwas ganz kleines ist (verknüpfung), wäre es noch Cool gewesen, aber so funktioniert es auch.

Grusss
Strangers