Wie kann ich Word Textmarken mit einem Excel Makro befüllen?

...komplette Frage anzeigen

2 Antworten

dein hauptproblem:

ActiveCell.SpecialCells(xlLastCell).Select

- damit wählst du immer die zuletzt benutzte zelle, die angeklickte zelle wird übersprungen, also die ursprüngliche ActiveCell auf irgendwas festes gesetzt.

ausserdem:

1. Set xlZelle
das xl als prefix solltest du nicht nehmen: MS verwendet das für Excel-spezifische vordefinierte numerische konstanten (z.b. xlLastCell) - xl=excel
damit verwirrst du dich nur selbst.

2. die offset schreibweise ist schwierig zu lesen. mit den anklicken einer zelle willst du doch eigentlich nur die aktuelle zeile feststellen.

also einfach statt Set xlZelle=...
currentrow = ActiveCell.Row

und dann mit
cells(currentrow, "G") etc. auf die einzelnen zellen zugreifen.

3. Set objDocx = objWDApp.Documents.Open(strFileName, ReadOnly:=False)
heisst, dass er NICHT (false) schreibgeschützt öffnet. sinnvoll wäre also ReadOnly:=true
würdest das aber erst merken, wenn du das fileattribut der docx auf readonly setzt - vermute ich.  

4. die neue worddatei schreibst du wohl mit objDocx.saveAs ... 

Antwort bewerten Vielen Dank für Deine Bewertung
ChrisFragtGern 04.03.2016, 10:22

vielen dank für deine Hilfe! Ich habe gerade kein Excel zur Hand, aber ich werde deine Tipps die Tage mal befolgen ;)

0
ChrisFragtGern 08.03.2016, 15:07

Hey @maximilianus7

Ich habe versucht deine Tipps zu beherzigen. Aktuell sieht mein Programm so aus.

https://paste2.org/gI32HeBz


Im Prinzip möchte ich Excel starten, eine Zeile anklicken und dann das Makro ausführen, und VBA soll das Makro dann nur für die zuvor angeklickte Zeile durchführen.

Leider funktioniert es immernoch nicht. Der Fehler wird in der Zeile

" Set objDocx = objWDApp.Documents.Open(strFileName, ReadOnly:=True) "

markiert.


Liebe Grüße



0

... und mit Serienbrief in Word kommst du nicht weiter?

Antwort bewerten Vielen Dank für Deine Bewertung
ChrisFragtGern 03.03.2016, 18:50

Ne Sorry, das soll über ein Excel Makro funktionieren.

0

Was möchtest Du wissen?