Export in Excel. Druckbereiche in Word einfügen. dringend Hilfe?
Gude,
Ich verzweifle langsam... brauche eure Hilfe. Ich habe ein halbes Jahr lang an einem "Programm" gebastet. es soll dazu dienen Bauteilkataloge zu erstellen.
Also wir haben mehrere Exceltabellenblätter in einer Datei, in jedem Tabellenblatt gibt es ein festen Druckbereich (welches eben die fertige Seite darstellt) drum herum gibts Dropdown menüs, Formeln usw. also alles um die fertige Seite zu füllen. Aber wie gesagt im Druckbereich liegt nur das fertige Blatt was eben exportiert werden soll.
Da wir hier in der Regel von 100 Seiten reden, möchte ich das nicht händisch über Kopieren und EInfügen halten. es soll so automatisch wie möglich gehen. da es eine Arbeitserleichterung für die Zukunft darstellen soll.
Wie kriege ich diese Seiten in einer Word datei? Warum fragt ihr? weil zu einem katalog noch viel Schnickschnack gehört. Hinweistexte, Beschreibung des Bauobjektes usw. Vielleicht kann man sich das vorstellen.
deswegn möchte ich diese fertigen Datenblätter am Ende in einer Worddatei einfügen. und ich kriegs einfach nicht hin.
ich kann in dem Excelprojekt eine PDF erstellen. das klappt wunderbar bringt mir nur leider nix. wenn ich diese in Word konvertiere verschwinden Rahmenlinien und es ist zum Teil verschoben.
mit XPS kann ich auch nichts anfangen.
Excel und Word sind doch von der selben Firma. das muss doch möglich sein. Am besten wäre es wenn man die Druckbereiche als doc. exportieren kann. die Option habe ich leider nicht.
Weiß einer wie ich das hinkriege?
2 Antworten
Hallo Nayes
Klingt recht kompliziert. Aber ich kann mir vorstellen, dass man es evtl. mit einem "Virtuellen Drucker" erledigen kann.
Schau dir doch mal diesen an: https://www.zoliblog.com/2006/01/30/free-virtual-printer-creates-pdf-jpg-doc-xls-and-other-formats/
Das Programm und die Treiber werden installiert und er wird dir dann als "Drucker" im Drucker Menu angezeigt. Wenn du ihn auswählst, kannst du entscheiden, in was für ein Format er "Drucken" soll.
Wenn du aber sehr viele Rahmenlinien und Grafiken/Verschiebungen hast, kann nicht mal das beste Tool ein Excel so übernehmen, damit es von Word gelesen werden kann.
Mfg
LuKaLu
Das Grundgerüst wird nicht so schwierig sein, eher wenn es dann um die Details geht. Soll jeder Druckbereich auf eine eigene Seite in Word, also nach jedem Einfügen ein Seitenwechsel?
Das wären nun die drei ersten Tabellenblätter, das i=1 to 3 entsprechend ändern.
Wichtig ist allerdings, wenn Du aus Excel heraus in Word mit VBA hantierst, dass in Excel VBA die Microsoft Word 14.0 Object Library (heißt zumindest bei mir in Office 2010 so) eingerichtet ist. In VBA unter Extras > Verweise zu finden
Sub wordkopieren()
Dim AppWD As Object
Set AppWD = CreateObject("Word.Application")
AppWD.Visible = True
AppWD.Documents.Open "C:\users\xxx\desktop\dok1.docx"
For i = 1 To 3
With Sheets(i)
.Range(.PageSetup.PrintArea).Copy
End With
AppWD.Selection.endkey unit:=wdstory 'ans Textende springen
AppWD.Selection.Paste 'einfügen
AppWD.Selection.InsertBreak Type:=wdPageBreak 'seitenumbruch
Next
End Sub
Ohne VBA geht das mit dem Kopieren nicht, außer wenn Du ganz andere Ansätze noch verfolgst, wie LustenLu bspw. virtuelle Drucker genannt hat. Evtl. ist das sogar einfacher, damit kenne ich mich allerdings nicht aus und kann es nicht vergleichen.
Der Code gehört in ein Modul. Wenn mit sheets(i) kein gültiges Tabellenblatt gefunden wird, gibt es eine Fehlermeldung bzw. bricht das Makro ab. Wenn Du die Anzahl nicht ständig anpassen willst und immer alle Tabellenblätter übernommen werden sollen geht es mit
for i=1 to sheets.count einfacher. Dann zählt Excel die Anzahl der Tabellenblätter.
Über VBA kannst Du die Tabellenblätter mit dem Namen ansprechen oder mit der Nummer. Das erste Tabellenblatt ist dann sheets(1).
Bei der verwendeten Schreibweise sheets(i) wird i mit der for-schleife hochgezählt und so beim ersten Tabellenblatt begonnen bis zum letzten. Wie die Tabellenblätter heißen ist hierbei egal.
ja jeder Druckbereich muss auf eine extra Seite.
Uhh VBA... ein Buch mit sieben Siegeln... xD. Ich hab alles mit Excel formeln machen müssen. zum einen weil ich in vba nicht fit bin und zum anderen war das vom Cheffe so gewollt.
kann ich das einfach in so einen Modul kopieren?
muss die zahl für i richtig sein? also wenn ich sage i= 1 to 100000
was würde dann passieren? wenn es dementsprechend weniger Sheets gibt?