AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
02.04.20 - 12:50:45
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino Sonstiges
| |-+  OLE/COM-Programmierung
| | |-+  Aus Notes in Word Tabellen modifizieren
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Aus Notes in Word Tabellen modifizieren  (Gelesen 9545 mal)
Barbara
Junior Mitglied
**
Offline Offline

Geschlecht: Weiblich
Beiträge: 93


« am: 04.02.10 - 15:02:47 »

Hallo zusammen,
Entschuldigung für den Threadtitel, mir ist nichts aussagekräftigeres eingefallen.

Zu meinem Problem habe ich auch einen Thread im ms-office-forum gepostet, dort bekomme ich leider keine Antworten, denke ich bin dort auch nicht richtig. http://www.ms-office-forum.de/forum/showthread.php?t=261198

Situation:
Es können mehrere Referenzen (Notesdokumente) ausgewählt werden, die dann in formatierte Worddokumente exportiert werden. Die Dots sind Vorgaben aus dem Marketing, Corporate Desgin .....
Prinzipiell auch kein Problem.

Die Dots enthalten Tabellen. Faste jede Spalte hat eine andere Formatvorlage. In einer Zelle gibt es sogar 2 Formatvorlagen. Funktioniert auch noch.

Um das Ganze dynamisch zu halten (die Anzahl der ausgewählten Dokumente kann jede beliebige Menge annehmen), möchte ich nach jedem Export eine neue Zeile anhängen. Die Formatvorlagen sollen natürlich übernommen werden.

Das aufgezeichnete Makro lieferte mir die Zeile: "Selection.InsertRowsBelow 1" ; es wurde jedoch immer nur 1 bzw. in der Zelle mit den 2 Vorlagen nur die letzte Formatvorlage übernommen.

Aus der Visual Basic Hilfe:
Zitat
Beispiel
In diesem Beispiel wird die zweite Zeile in der ersten Tabelle ausgewählt und darunter eine neue Zeile eingefügt.

ActiveDocument.Tables(1).Rows(2).Select
Selection.InsertRowsBelow


mein code (Auszug):
Code:
Liste = auslesen(db,session,doc)
wwApp.ActiveDocument.Tables(1).cell(y+1,1).Range.text =Liste(0,0)+Chr(13)+Liste(0,1)
wwApp.ActiveDocument.Tables(1).cell(y+1,2).Range.text = Liste(1,0) +Chr(13) + Chr(10)
wwApp.ActiveDocument.Tables(1).cell(y+1,2).Range.insertafter Liste(1,1)
wwApp.ActiveDocument.Tables(1).cell(y+1,3).Range.text =Liste(2,0)
wwApp.ActiveDocument.Tables(1).cell(y+1,4).Range.text =Liste(4,0)
wwApp.ActiveDocument.Tables(1).cell(y+1,5).Range.text =Liste(5,0)
wwApp.ActiveDocument.Tables(1).cell(y+1,6).Range.text = Liste(6,0)
wwApp.ActiveDocument.Tables(1).rows(y+1).Select
Selection.InsertRowsBelow 1
=>  Fehlermeldung Variant does not contain an object (Selection)

nächster Versuch mit
Code:
wwApp.ActiveDocument.Tables(1).cell(y+1, 2).Range.InsertRowsBelow 1
kommt die Fehlermeldung:Instancemember InsertRowsbelow does not exist

Wie hänge ich eine Zeile an, wie bringe ich die Formatvorlagen in die Zellen?

Gruß

Barbara



« Letzte Änderung: 05.02.10 - 11:44:39 von Barbara » Gespeichert
Axel
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8658


It's not a bug, it's Notes


« Antworten #1 am: 04.02.10 - 15:41:27 »

Ich habe das bisher immer so gemacht, dass ich in der Tabelle in der letzten Zeile in der ganz rechten Spalte ein "MoveRight" ausgeführt habe. Dadurch wird eine neue Tabellenzeile angehängt und die Formatierung von der vorherigen übernommen.

Const wdCell = 12
...
wwApp.Selection.MoveRight(wdCell)

Axel
Gespeichert

Ohne Computer wären wir noch lange nicht hinterm Mond!
Barbara
Junior Mitglied
**
Offline Offline

Geschlecht: Weiblich
Beiträge: 93


« Antworten #2 am: 04.02.10 - 15:59:57 »

Hallo Axel,

Code:
wwApp.ActiveDocument.Tables(1).cell(y+1,6).select
Selection.MoveRight(wdCell)

Funktioniert nicht, ich bekommen die Selection nicht hin, "Variant does not contain an object"

verzweifelter Versuch die Selection zu umgehen:

Code:
wwApp.ActiveDocument.Tables(1).cell(y+1,6).select.MoveRight(wdCell)


=> "Select ist keine Eigenschaft"

Moveright auf die range losgelassen
Code:
wwApp.ActiveDocument.Tables(1).cell(y+1,6).Range.MoveRight(wdCell)


=> "Instancemember Moveright does not exist"

Ich bin zu blöd für den MS-Kram  Angry

Gespeichert
Glombi
Gast
« Antworten #3 am: 04.02.10 - 16:18:31 »

Damit Du Selection. ... verwenden kannst, musst Du es erst setzen:

Set selection = wwApp.Selection


Andreas
Gespeichert
Barbara
Junior Mitglied
**
Offline Offline

Geschlecht: Weiblich
Beiträge: 93


« Antworten #4 am: 04.02.10 - 19:01:34 »

so, mit Hilfe von Axel und Andreas füge ich jetzt Zeilen ein. Die Formatvorlagen sind auch übernommen, bis auf die Zelle mit den 2 Formatvorlagen.
Meine Idee, ich kopiere das Format aus der vorhergehenden Zeile in die neu eingefügte:

Code:
Set Selection = wwApp.Selection
wwApp.Selection.MoveRight(wdCell)
wwApp.ActiveDocument.Tables(1).cell(y+1,2).range.select
Selection.copyformat
wwApp.ActiveDocument.Tables(1).cell(y+2,2).range.select
Selection.pasteformat

Aber: jetzt hat die Zelle auch in der ursprünglichen Zeile nur noch die erste Formatvorlage.

Also, wie spreche ich jetzt den 1. Absatz an, weise ihm Vorlage 1 zu, alle weiteren Absätzen bekommen dann Vorlage 2?

Irgendwie mit dem paragraphen

Code:
wwApp.ActiveDocument.Tables(1).cell(y+1,2).paragraph(1).range.select
Selection.copyformat
wwApp.ActiveDocument.Tables(1).cell(y+2,2).paragraph(1).range.select
Selection.pasteformat

aus der VB Hilfe
Zitat
ActiveDocument.Paragraphs(1).Range.Select
Selection.CopyFormat
ActiveDocument.Paragraphs(2).Range.Select
Selection.PasteFormat

Das geht aber nicht in der Zelle: mein obiger code liefert mir "Instance member PARAGRAPH does not exist.

Habt Ihr noch ein bißchen input?
Gespeichert
Axel
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8658


It's not a bug, it's Notes


« Antworten #5 am: 04.02.10 - 19:42:22 »

Eine Idee wäre, den kompletten Inhalt der entsprechenden Zelle kopieren (auch wenn es sich nur um Zeilenschaltungen handelt) und dann in die Zelle der neuen Zeile einfügen. Dann sollten auch die Formatierungen mitgenommen werden.

Ist aber nur mal so 'ne Idee. Ob's funktioniert müsste man testen.

Axel
Gespeichert

Ohne Computer wären wir noch lange nicht hinterm Mond!
Glombi
Gast
« Antworten #6 am: 05.02.10 - 08:32:32 »

paragraph oder paragraphs ?
Gespeichert
Barbara
Junior Mitglied
**
Offline Offline

Geschlecht: Weiblich
Beiträge: 93


« Antworten #7 am: 05.02.10 - 11:42:39 »

Guten Morgen,

@Andreas: natürlich paragraphs, irgendwann sollte man einfach die Kiste runterfahren und was ganz anderes machen  Smiley

@Axel: die Idee war super, jetzt klappts.

hier der code:
Code:
....
While Not doc Is Nothing
y=y+1
Liste = auslesen(db,session,doc)
wwApp.ActiveDocument.Tables(1).cell(y+1,1).Range.text =Liste(0,0)+Chr(13)+Liste(0,1)
wwApp.ActiveDocument.Tables(1).cell(y+1,2).Range.text = Liste(1,0) +Chr(13) + Chr(10)
wwApp.ActiveDocument.Tables(1).cell(y+1,2).Range.insertafter(Liste(1,1))
wwApp.ActiveDocument.Tables(1).cell(y+1,3).Range.text =Liste(2,0)
wwApp.ActiveDocument.Tables(1).cell(y+1,4).Range.text =Liste(4,0)
wwApp.ActiveDocument.Tables(1).cell(y+1,5).Range.text =Liste(5,0)
wwApp.ActiveDocument.Tables(1).cell(y+1,6).Range.text = Liste(6,0)

'neue Zeile anhängen
Set Selection = wwApp.Selection
Selection.MoveRight(wdCell)
Selection.MoveRight(wdCell)
Selection.MoveRight(wdCell)
Selection.MoveRight(wdCell)
Selection.MoveRight(wdCell)
If y=1 Then Selection.MoveDown(wdLine) 'nur in der Titelzeile muss nach unten gesprungen werden
wwApp.Selection.MoveRight(wdCell)

'2.Zelle kopieren um Formate zu übernehmen
wwApp.ActiveDocument.Tables(1).cell(y+1,2).Range.copy
wwApp.ActiveDocument.Tables(1).cell(y+2,2).Range.paste

Set doc = view.GetNextDocument(doc)
wend
wwApp.ActiveDocument.Tables(1).rows(y+2).delete 'letzte Zeile löschen enthält nur kopierte 2. Zelle

Call wwbook.saveas(Pfad(0)+"RefList_01_"+dateidatum.dateonly+".doc")

Vielen, vielen Dank - ich frage mich warum ich überhaupt erst noch im ms-office-forum fremdgegangen bin. Hier ist man immer wieder gut aufgehoben. Liebe

Ein schönes Wochenende

Barbara
Gespeichert
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: