Autor Thema: Mal wieder das Thema Export nach WORD  (Gelesen 38134 mal)

Offline C_T

  • Senior Mitglied
  • ****
  • Beiträge: 272
  • Geschlecht: Männlich
Mal wieder das Thema Export nach WORD
« am: 13.03.08 - 10:21:58 »
HI Leute

ich habe da mal wieder eine kleine Frage und bräuchte eure Unterstützung.

Ich habe einen Button, mit dem ich markierte DOkumente aus einer Ansicht in ein WordDokument exportieren kann. Dies klappt soweit auch ganz gut. Jedoch möchte ich in diesem Worddokument die Zeile mit dem "TEXT" mit dem Format "Überschrift 3" aus Word belegen, ausserdem möchte ich nachdem das WordDokument komplett gefüllt ist noch ein Inhaltsverzeichnis erstellen.

Das Mit dem Format müsste irgendwie mit "Style" gehen, jeodch hab ich das noch nicht hinbekommen,

das mit dem Inhaltsverzeichnis muss glaube ich mit "TableOfContents" gemacht werden!? Oder irre ich mich bei beidem Total?

Ich hoffe unter euch sind ein paar die sich mit dem Export nach Word besonders gut auskennen.

Hier der Code zum Exportieren der Dokumente:

Code
Sub Click(Source As Button)
	Dim workspace As New NotesUIWorkspace
	Dim session As New NotesSession
	Dim uidoc As NotesUIDocument
	Dim doc As NotesDocument
	Dim db As NotesDatabase
	Dim col As NotesDocumentCollection
	
	Dim Ins As Variant
	
	Set db = session.CurrentDatabase
	Set col = db.UnprocessedDocuments	
	

	Set WordApp = CreateObject("Word.Application")  
	Call WordApp.documents.add("c:\Word.dot")
	Set WordDoc = WordApp.activedocument	
	
	Set Ins=  WordDoc.Paragraphs(WordDoc.Paragraphs.Count).Range
	
	Set doc = col.GetFirstDocument
	Do Until doc Is Nothing
		Set uidoc = workspace.EditDocument(True, doc)
		uidoc.EditMode = True
		uidoc.AutoReload = False
		
		WordDoc.Paragraphs(WordDoc.Paragraphs.Count).Style = wdStyleHeading3         <-------------  Eigentlcih müsste das doch mit dieser Zeiel klappen oder?
		Call Ins.InsertAfter("TEXT: "+doc.TEST(0)+Chr$(10))
		
		Call WordDoc.ParagraphFormat.Style("Standard")

		Call uidoc.GotoField("Text")
		Call uidoc.SelectAll
		Call uidoc.Copy
		If Not Err = 4407 Then
			Err = 0
			Call Ins.InsertAfter("Text: "+Chr$(10))
			Set Past = WordDoc.Content
			Call Past.Collapse(wdCollapseEnd)
			Call Past.Paste
			Call Ins.InsertAfter(Chr$(10))
		End If
		
		Call Ins.InsertAfter(Chr$(12))
		uidoc.Close(True)		
		Set doc = col.GetNextDocument(doc)
	Loop
	
	Set WordDoc = WordApp.activedocument	
End Sub



Schonmal Vielen Dank für eure Hilfe

Gruß Christian T.
« Letzte Änderung: 24.04.08 - 13:37:49 von C_T »
Viele Grüße

Christian T.

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Mal wieder das Thema Export nach WORD
« Antwort #1 am: 13.03.08 - 10:45:32 »
Code
[codeWordDoc.Paragraphs(WordDoc.Paragraphs.Count).Style = wdStyleHeading3 ]
       

Wo setzt du den Wert für Count?


Ich habe das mal so gelöst

Wordapp.Selection.Style = wdStyleNormal

Hast du auch die wd-Konstanten definiert?

z.B.
Const wdStyleNormal = -1
Const wdStyleHeading3 = -4


Axel
« Letzte Änderung: 13.03.08 - 10:52:36 von Axel »
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline C_T

  • Senior Mitglied
  • ****
  • Beiträge: 272
  • Geschlecht: Männlich
Re: Mal wieder das Thema Export nach WORD
« Antwort #2 am: 13.03.08 - 10:56:20 »
Das Count brauch ich ja definieren, denn das ist ja "ein Befehl"

und wieso muss ich den die wd sachen definieren? Ich dachte das wäre von Word vorgegeben.....
Viele Grüße

Christian T.

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: Mal wieder das Thema Export nach WORD
« Antwort #3 am: 13.03.08 - 10:59:13 »
Aber woher soll Notes denn wissen, dass das Konstanten von Word sind? Deswegen musst du die Konstanten nochmal in Notes separat deklarieren.

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Mal wieder das Thema Export nach WORD
« Antwort #4 am: 13.03.08 - 11:04:05 »
Count ist kein Befehl, sondern eine Eigenschaft. Sie liefert sie anzahl der Absätze in einem Dokument zurück.

Wenn du ein Absatzformat zuweisen willst, dann musst du angeben welchem Absatz.

Hier mal ein Beispiel aus der Word VBA-Hilfe:

Zitat
Dieses Beispiel weist allen Absätzen im aktiven Dokument abwechselnd die Formatvorlagen Überschrift 3 und Normal zu.

For i = 1 To ActiveDocument.Paragraphs.Count
    If i Mod 2 = 0 Then
        ActiveDocument.Paragraphs(i).Style = wdStyleNormal
    Else
        ActiveDocument.Paragraphs(i).Style = wdStyleHeading3
    End If
Next i

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline C_T

  • Senior Mitglied
  • ****
  • Beiträge: 272
  • Geschlecht: Männlich
Re: Mal wieder das Thema Export nach WORD
« Antwort #5 am: 13.03.08 - 11:10:55 »
OK Schonmal danke habe ich alles bis jetzt Verstanden und das mit dem Befehl war einfach nur mies ausgedrückt.

Das Beispiel hab ich mir natürlich auch schon angeguckt, jedoch komm ich damit einfach nicht weiter...

Wie muss ich den dann die Konstanten in Notes deklarieren mite dem wd teilen?

Wordapp.Selection.Style = wdStyleNormal

Hast du auch die wd-Konstanten definiert?

z.B.
Const wdStyleNormal = -1
Const wdStyleHeading3 = -4


Irgendwie kann ich mit dem "-1" und "-4" gar ncihts anfagen?

kannst du das genauer erörtern?

Christian

Viele Grüße

Christian T.

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: Mal wieder das Thema Export nach WORD
« Antwort #6 am: 13.03.08 - 11:28:04 »
Die Zahlen sind die tatsächlichen Werte hinter den Konstantennamen.

Irgendwo hier habe ich mal eine Notesdatenbank oder eine lss-Datei mit den Wordkonstanten gesehen, benutz mal die SuFu. Dann brauchst du die auch nicht selbst alle definieren...

Offline C_T

  • Senior Mitglied
  • ****
  • Beiträge: 272
  • Geschlecht: Männlich
Re: Mal wieder das Thema Export nach WORD
« Antwort #7 am: 13.03.08 - 11:31:42 »
Ich habe da acuh eine gefunden, jedoch steht da sowas wie "wdStyleNormal" oder "wdStyleHeading3" nicht drin....

kannst du mir sagen woher du die Werte hsat??

Und sollte der rest meines Codes so laufen oder is da ach noch was falsch?
Viele Grüße

Christian T.

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Mal wieder das Thema Export nach WORD
« Antwort #8 am: 13.03.08 - 11:32:18 »
Wie muss ich den dann die Konstanten in Notes deklarieren mite dem wd teilen?

So wie ich dir das in dem Beispiel geschrieben habe.

Const wdStyleNormal = -1

Irgendwie kann ich mit dem "-1" und "-4" gar ncihts anfagen?

kannst du das genauer erörtern?

In Word entspricht -1 der Konstante wdStyleNormal.

Guckst die hier: http://atnotes.de/index.php?topic=34333.0. Da kannst du dir eine Datenbank mit den entsprechenden Definitionen herunterladen. Oder du schaust im VBA-Editor von Word im Objektkatalog und suchst dir die wdStylexxx - Konstanten. Da findest du dann auch welcher Wert hinter einer Konstanten liegt.

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline C_T

  • Senior Mitglied
  • ****
  • Beiträge: 272
  • Geschlecht: Männlich
Re: Mal wieder das Thema Export nach WORD
« Antwort #9 am: 13.03.08 - 11:41:57 »
Hey Super soweit klappt es schonmal einwandfrei....


Wenn Ihr meinen zweiten Teil der Frage auch super beantworten könnt wäre das Spitze....

Wie kriege ich jetzt ein Inhaltsverzeichnis in das Dokument rein?
Viele Grüße

Christian T.

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: Mal wieder das Thema Export nach WORD
« Antwort #10 am: 13.03.08 - 11:47:00 »
Ich weiß nicht genau, wie das geht, aber einen Anhaltspunkt kann das Aufzeichnen eines Makros von der Inhaltsverzeichniserzeugung bieten.

Das sagt mein Makro-Rekorder mit Word 2003:
Code
Sub Inhaltsverzeichnis()
    With ActiveDocument
        .TablesOfContents.Add Range:=Selection.Range, RightAlignPageNumbers:= _
            True, UseHeadingStyles:=True, UpperHeadingLevel:=1, _
            LowerHeadingLevel:=3, IncludePageNumbers:=True, AddedStyles:="", _
            UseHyperlinks:=True, HidePageNumbersInWeb:=True, UseOutlineLevels:= _
            True
        .TablesOfContents(1).TabLeader = wdTabLeaderDots
        .TablesOfContents.Format = wdIndexIndent
    End With
End Sub

Leider sehe ich mich auch nicht direkt in der Lage den Code nach LS zu portieren.

Fraglich ist für mich noch, wie du das Inhaltsverzeichnis dann an die richtige Stelle bekommst... Aber das kommt auf einen Versuch an.
« Letzte Änderung: 13.03.08 - 11:51:14 von MadMetzger »

Offline C_T

  • Senior Mitglied
  • ****
  • Beiträge: 272
  • Geschlecht: Männlich
Re: Mal wieder das Thema Export nach WORD
« Antwort #11 am: 13.03.08 - 12:03:22 »
Ich denke das krieg ich schon hin hab mir das auch mal aufgenommen und dann schau ich mal und teste

jetzt habe ich aber direkt wieder 2 fragen....

und zwar

1. wie kriege ich text fett geschrieben? Ich habe folgendes ausprobiert...

Code
	
Set Ins =  WordDoc.Paragraphs(WordDoc.Paragraphs.Count).Range
Ins.Bold = True
Call Ins.InsertAfter("TEXT: ")
Ins.Bold = False



2. Wie kann ich den Text den ich aus einem RichText Feld (Notes) nach word "Paste" nochmal bearbeiten und z.b. da auch ein Format drauflegen?
« Letzte Änderung: 24.04.08 - 13:39:02 von C_T »
Viele Grüße

Christian T.

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Mal wieder das Thema Export nach WORD
« Antwort #12 am: 13.03.08 - 12:07:53 »
Mal aus dem Bauch heraus umgesetzt.

...
   Const wdTabLeaderDots = 1
   Const wdIndexIndent = 0
...
    With WordDoc
        .TablesOfContents.Add
        Range:=WordApp.Selection.Range,
        RightAlignPageNumbers:= True,
        UseHeadingStyles:=True,
        UpperHeadingLevel:=1,
        LowerHeadingLevel:=3
        IncludePageNumbers:=True,
        AddedStyles:="",
        UseHyperlinks:=True,
        HidePageNumbersInWeb:=True,
        UseOutlineLevels:= True
        .TablesOfContents(1).TabLeader = wdTabLeaderDots
        .TablesOfContents.Format = wdIndexIndent
    End With
...

Ich hab's nicht getestet ob's auch wirklich so funktioniert.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Mal wieder das Thema Export nach WORD
« Antwort #13 am: 13.03.08 - 12:13:35 »
1. wie kriege ich text fett geschrieben? Ich habe folgendes ausprobiert...

Code
	
Set Insert =  WordDoc.Paragraphs(WordDoc.Paragraphs.Count).Range
Insert.Bold = True
Call Insert.InsertAfter("Kategorie: ")
Insert.Bold = False



So z.B.

...
WordApp.Selection.Font.Bold = True   'Fett einschalten
WordApp.Selection.TypeText "Kategorie:"
WordApp.Selection.Font.Bold = False  'Fett ausschalten
...

Du kannst dir auch hier http://atnotes.de/index.php?topic=39875.0 noch ein paar Infos holen.



Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline C_T

  • Senior Mitglied
  • ****
  • Beiträge: 272
  • Geschlecht: Männlich
Re: Mal wieder das Thema Export nach WORD
« Antwort #14 am: 13.03.08 - 13:13:57 »
Leider klappt das mit dem Bold ebend nicht so...

das merkwürdige ist jedoc, wenn ich das Bold mit Italic tausche schreibt er mir den Text Kursiv aber mit Fett klappt es nicht.....
Viele Grüße

Christian T.

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Mal wieder das Thema Export nach WORD
« Antwort #15 am: 13.03.08 - 13:17:30 »
Was nutzt du denn für eine Schriftart?


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline C_T

  • Senior Mitglied
  • ****
  • Beiträge: 272
  • Geschlecht: Männlich
Re: Mal wieder das Thema Export nach WORD
« Antwort #16 am: 13.03.08 - 13:25:54 »
Arial

und ja habe auch schon versucht die kann Fett darstellen...
« Letzte Änderung: 24.04.08 - 13:01:11 von C_T »
Viele Grüße

Christian T.

Offline C_T

  • Senior Mitglied
  • ****
  • Beiträge: 272
  • Geschlecht: Männlich
Re: Mal wieder das Thema Export nach WORD
« Antwort #17 am: 13.03.08 - 15:51:18 »
So Ich habe den Code mehr oder weniger nochmals komplett über den Haufen geworfen. Anbei findet Ihr meinen neuen Code der bis jetzt auch super läuft.


Code
Sub Click(Source As Button)
	Dim workspace As New NotesUIWorkspace
	Dim session As New NotesSession
	Dim uidoc As NotesUIDocument
	Dim doc As NotesDocument
	Dim db As NotesDatabase
	Dim col As NotesDocumentCollection
	
	Dim Ins asVariant
	
	Set db = session.CurrentDatabase
	Set col = db.UnprocessedDocuments	
	
	On Error Resume Next
	
	Const wdStyleNormal = -1
	Const wdStyleHeading3 = -4	
	
	Set WordApp = CreateObject("Word.Application")  
	Call WordApp.documents.add("c:\WORD.dot")
	Set WordDoc = WordApp.activedocument	
	
	Set Ins =  WordApp.Selection
	
	Set doc = col.GetFirstDocument
	Do Until doc Is Nothing
		Set uidoc = workspace.EditDocument(True, doc)
		uidoc.EditMode = True
		
		With Ins
			.Style = wdStyleHeading3
			.TypeText "TEXT: " 
			.TypeText doc.TEST(0) + Chr$(10)
			.Style = wdStyleNormal
		End With

		Err = 0
		Call uidoc.GotoField("TEXT")
		Call uidoc.SelectAll
		Call uidoc.Copy
		If Not Err = 4407 Then
			With Ins
				.Font.Bold = True
				.TypeText "TEXT: "+ Chr$(10)
				.Font.Bold = False
				.Paste 
			End With
		End If
		
		Ins.TypeText Chr$(12)
		
		uidoc.Close(True)		
		Set doc = col.GetNextDocument(doc)
	Loop
	
	

	Set WordDoc = WordApp.activedocument	
End Sub


Jetzt bleiben mir immernoch fragen über bzw. aufgaben die ich erledigen möchte.

1. Weiß jemand von euch wie an den Anfang des Dokumentes springen kann mit dem Cursor????

2. Inhaltsverzeichnis erstellen (Krieg ich schon irgendwie selbst hin)

3. Wieder an den anfange des Dokuments springen (siehe 1)



Vielen Dank schonmal


P.S.

Nimmt das Forum noch spenden an? Ihr habt mir schon so oft geholfen, ich will mich revanchieren.
Schreibt mir einfach dazu ne PN

CU
« Letzte Änderung: 24.04.08 - 13:40:37 von C_T »
Viele Grüße

Christian T.

klaussal

  • Gast
Re: Mal wieder das Thema Export nach WORD
« Antwort #18 am: 13.03.08 - 15:57:13 »
Zitat
Nimmt das Forum noch spenden an?

JA:


http://atnotes.de/index.php?topic=20132.0

 :) :) :)

Offline C_T

  • Senior Mitglied
  • ****
  • Beiträge: 272
  • Geschlecht: Männlich
Re: Mal wieder das Thema Export nach WORD
« Antwort #19 am: 13.03.08 - 16:04:29 »
@Klaus(s)

Natürlich liest du nur das wichtigeste was????  ;D ;D ;D


Naj wie dem auch sei  Hier die Lösung auf meine eigene Frage

Code
		
Set Ins =  WordApp.Selection
With 	Ins
  .StartOf(wdStory)
  .TypeText "Dies ist ein TEst auf der 1. Seite...." + Chr$(12)
End With
« Letzte Änderung: 24.04.08 - 13:41:14 von C_T »
Viele Grüße

Christian T.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz