clocking
Goto Top

VBA Automatisierung

Hallo Community, freut mich euch beigetreten zu sein.

Ich werde auf folgendes Problem in allen großen Sprachen im WWW leider nicht fündig. (Das die Lösung existiert weiß ich, ich find sie bloß nicht face-confused)
Ich habe mir einen Automatismus zusammengebastelt, welcher aus einem Datensatz ein fertiges Dokument ausgibt.
Quasi sowas wie die Serienbrieffunktion in Office, lediglich ein wenig spezifischer.
Wenn das Dokument also fertig ist, soll es bestmöglich per Mausklick gespeichert werden. Soweit so gut.
Jetzt kommt das Problem auf, dass die zu speichernde Datei einen konkreten Namen haben muss.
Und zwar: 180326/1 (JJMMTT/fortlaufende Nummer)
das nächste Dokument soll jedoch die fortl. Nummer 2 haben, usw.
Wenn also ein neuer Datensatz eingeht, soll das automatisch erstellte Dokument auch automatisch gespeichert werden undzwar mit der korrekten Bezeichnung: JJMMTT/fortl.Nr./Name.
Der Name ist im Dokument selber zu finden.
Wie kann ich das mit VBA realisieren?

Ein herzliches Dank im Vorraus!
Und freut mich dazugestoßen zu sein face-smile

Content-Key: 369277

Url: https://administrator.de/contentid/369277

Printed on: April 19, 2024 at 00:04 o'clock

Member: emeriks
Solution emeriks Mar 26, 2018 updated at 16:00:50 (UTC)
Goto Top
Hi,
also "/" im Namen kannst Du schon mal vergessen. Es sei denn, Du meinst hier Ordner und "JJMMTT" sowie "fortl.Nr." sind jeweils Verzeichnisnamen.
Falls ja: Das würde bedeuten, dass Du je Datei einen eigenen Ordner "fortl.Nr." erstellen willst? Falls nein, dann musst Du Dir ein anderes Trennzeichen suchen, z.B. "_".
Ansonsten einfach den Ordner einlesen, alle vorhandenen Dateien auflisten. Die höchste Nummer feststellen und dann um eins erhöhen.

Durch die Dateien hangeln kannst Du Dich z.B. mit "Dir"
DirectoryPath = "..........."  
NextFileName = Dir(DirectoryPath  & "\*.irgendwas")    ----> *.doc oder *.docx oder *.xlsx oder was auch immer Dein Dokumenttyp ist.  
Do While Len(NextFileName ) > 0
  .... irgendwas machen --> Name auswerten
  NextFileName = Dir
Loop

Es geht sicher auch anders, z.B. mit Scripting.FileSystemObject.

E.
Member: StefanKittel
Solution StefanKittel Mar 26, 2018 at 16:00:43 (UTC)
Goto Top
Hallo,

entweder Du merkst Dir irgendwo die letzte Nummer, z.B. in einer XML-Datei, oder Du suchst alle Dateien durch oder Du hast eine Datenbank mit allen Dokumten (am besten).

Stefan
Member: clocking
clocking Mar 26, 2018 at 16:12:47 (UTC)
Goto Top
Okay. Der Ansatz gefällt mir im Sinne meiner Frage gut. Das slash hätte ich mit dashes getauscht, korrekt!
Angesichts der perspektivischen Funktionalität und Übersicht und vorallem Größe, wäre eine Datenbank glaube ich doch besser.
Gut, dass mir diese Einsicht jetzt kommt, sonst hätte ich wohl noch weitere Stunden hiermit verbracht..

Scripting.FileSystemObject werde ich mir auch mal genauer ansehen, kannte ich nämlich noch nicht

Vielen Dank für die kompetente und vorallem flotte Hilfe!!! face-smile