Frage von Nayes2020, 30

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?

Antwort
von LustenLu, 16

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...

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

Kommentar von Nayes2020 ,

danke für deine Antwort

Expertenantwort
von Ninombre, Community-Experte für Excel, 17

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

Kommentar von Nayes2020 ,

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?

Kommentar von Ninombre ,

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.

Kommentar von Nayes2020 ,

also muss das sheet der zahl entsprechen? weil diese heißen nicht 1, 2,3 sondern haben eine bezeichnung. IW 001, IW 002, BP,001, BP002 usw.

Kommentar von Ninombre ,

Ü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.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten