![]() |
|
![]() |
#1 |
![]() Neuer Benutzer |
![]() Hallo zusammen,
ich bin neu hier im Forum weil ich grad ein kleines Problem mit einem Makro habe. Kurze Vorgeschichte: Ich habe für die Firma eine Wordvorlage erstellt, die von den Kollegen ausgefüllt wird und anschließend durch klicken auf einen Button am Ende der Vorlage automatisch mit einem Dateinamen versehen und in einem bestimmten Ordner gespeichert wird. Bisher habe ich die Vorlage als PDF-Datei speichern lassen. Das funktioniert auch alles super. Den Makro-Code dafür habe ich mir auch hier im Forum zusammengesucht. Jetzt haben wir aber festgestellt, dass das PDF-Format für unser Vorhaben einen Nachteil mitsich bringt. Undzwar wollen wir den Text aus der PDF-Datei anschließend wieder per copy-and-paste in eine Datenbank einfügen. Nur leider gehen beim copy-and-paste aus PDFs anscheinend alle Formatierungen des Textes verloren (also Leerzeilen, eingerückter Text, etc.). Deshalb möchte ich es jetzt so hinbekommen, dass die Vorlage doch lieber als Word-Datei auf dem Server abgelegt wird. Nur leider habe ich qusi null VB-Skills und bekomme meinen jetzigen Code nicht angepasst. Ich hoffe jetzt das mir hier im Forum jemand helfen kann. Momentan sieht mein Code so aus: Private Sub CommandButton1_Click() Dim doc_current As Document Dim str_file_name As String Dim str_path As String Dim str_file_number As String str_path = "u:ABWURF_Tickerzettel" Set doc_current = ActiveDocument With doc_current str_file_name = .FormFields("Text1").Result str_file_number = .FormFields("Text2").Result End With doc_current.ExportAsFixedFormat _ OutputFileName:=str_path & str_file_name & "_" & str_file_number & ".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 End Sub Ich habe mal in der Zeile "outputfilename" die Endung .pdf gegen ein .docx ausgetauscht, das hat aber leider nicht funktioniert. Ich hoffe hier hat jemand eine Lösung für mich. VG Martakus |
![]() |
![]() ![]() |
![]() |
#2 |
![]() MOF Meister |
![]() Wenn Du die Speicheroptionen für PDF drinlässt, kann das nichts mit .docx werden. Da Du dieses Makro offenbar per Makroaufzeichnung erstellt hast, dürfte der einfachste Weg sein, wenn Du den Speichervorgang als .docx ebenfalls aufzeichnest und den entspr. Teil in Deinem Code damit ersetzt.
Gruß G.O. |
![]() |
![]() ![]() |
![]() |
#3 |
Threadstarter
![]() ![]() Neuer Benutzer |
![]() Hallo G.O.
und danke für deine schnelle Antwort. Ich habe den das Makro aber nicht per Aufzeichnung erstellt, sondern hier aus dem Forum kopiert und anschließend leicht angepasst. Mit der aufzeichnen-Funktion habe ich es ganz am Anfang mal versucht, aber da habe ich garnichts mit hinbekommen. VG Martakus |
![]() |
![]() ![]() |
![]() |
#4 |
![]() MOF Guru |
![]() Hallo Martakus,
probier das: Code: Private Sub CommandButton1_Click() Dim doc_current As Document Dim str_file_name As String Dim str_path As String Dim str_file_number As String str_path = "C\:temp\" 'obigen Pfad wieder anpassen und abschließenden Backslash nicht vergessen! Set doc_current = ActiveDocument With doc_current str_file_name = .FormFields("Text1").Result str_file_number = .FormFields("Text2").Result doc_current.SaveAs2 FileName:=str_path & str_file_name & "_" & str_file_number & ".docx" 'Falls Word-Version älter als 2010 bei SaveAS die 2 weglassen End With End Sub __________________ GrußGerhard |
![]() |
![]() ![]() |
![]() |
#5 |
Threadstarter
![]() ![]() Neuer Benutzer |
![]() Hallo Gerhard H,
dankle für deine schnelle Antwort Ich habe das grad getestet. Wenn ich mit deinem Script auf den Button klicke kommt die Meldung: Laufzeitfehler 5152 Dies ist kein gültiger Dateiname Die beiden Felder (Text1 und Text2) werden bei uns nur mit Ziffern gefüllt. Der Dateiname wäre also z.B. 0815_1 oder 0815_2.... Ist das ein Problem? Also bei den PDFs hat er es als Dateiname akzeptiert. VG Martakus |
![]() |
![]() ![]() |
![]() |
#6 |
Threadstarter
![]() ![]() Neuer Benutzer |
![]() ...Ok ich habe den Fehler grad gefunden...
Du hast beim schnellen tippen im Pfad den vor dem : gehabt und ich habs auch so reinkopiert. Habe es grad umgedreht und jetzt funktioniert es wunderbar :-) Ich danke dir sehr für die schnelle hilfe, jetzt kann ich gleich mal beruhigt in den Feierabend gehen... VG Martakus |
![]() |
![]() ![]() |
![]() |
#7 |
Threadstarter
![]() ![]() Neuer Benutzer |
![]() hmmm oder auch nicht
![]() Hab grad noch was komisches festgestellt. Jetzt speichert er die Datei mit dem richtigen Namen und an der richtigen Stelle. Aber wenn ich die Datei dann mit einem Doppelklick öffnen möchte, funktioniert es nicht. Es geht zwar Word auf, aber er zeigt mir nur einen grauen Hintergrund...also nichtmal eine weiße leere Wordseite oder so. Woran könnte das jetzt wohl liegen? VG Martakus |
![]() |
![]() ![]() |
![]() |
#8 |
![]() MOF Guru |
![]() Hallo Martakus,
bei mir passiert das nicht. Deswegen kann ich dir nur ein bisschen Versuch und Irrtum bieten. Ersetze die alte rote Code-Zeile durch eine der beiden Varianten: Variante a) Code: doc_current.SaveAs2 FileName:=str_path & str_file_name & "_" & str_file_number, fileformat:=wdFormatDocumentDefault Code: doc_current.SaveAs FileName:=str_path & str_file_name & "_" & str_file_number Falls nichts davon zum Ziel führt: Was steht denn in der Titelleiste des leeren Word-Fensters? Der Dateiname oder was anderes? Und erklär noch eines: In was für Sorte Dokument hast du das Makro drinstehen? Ich bin davon ausgegangen, dass es in einer selbsterstellten Dokumentvorlage (*.dotm) oder in der Normal.dotm steht. Denn würde es in einem normalen Dokument (docx oder docm) stehen wäre das Makro nach dem Speichern futsch, wenn man ausdrücklich als *.docx speichert. Und: Arbeitest du in einem Netzwerk oder nur auf deinem eigenen PC? __________________ GrußGerhard |
![]() |
![]() ![]() |
![]() |
#9 |
Threadstarter
![]() ![]() Neuer Benutzer |
![]() Guten Morgen Gehard,
und sry wegen der späten Rückmeldung...ich hatte die letzten Tage auf der Arbeit leider keine Zeit um mich um EDV-Angelegenheiten zu kümmern. Du hast mich mit deiner letzten Antwort aber auf den richtigen Lösungsweg gebracht. Ich hatte die Vorlage tatsächlich im docm-Vormat erstellt. Habe jetzt grad nur einen kurzen Test gemacht und die Vorlage so wie sie ist im dotm-Vormat gespeichert. Anschließend habe ich sie wieder aufgerufen und den Makrobutton "betätigt"...und siehe da, ich konnte die dadurch gespeicherte Datei auch tatsächlich wieder öffnen ![]() Ich vermute, dass ich nun dann auch endlich die Vorlage im gewünschten Umfang fertig stellen kann. Vielen lieben Dank nochmal für deine Hilfe und ne angenehme Woche... VG Martakus |
![]() |
![]() ![]() |