Autor Thema: LoNo --> MS Word - mal wieder.... (Tabelle)  (Gelesen 6723 mal)

Offline C_T

  • Senior Mitglied
  • ****
  • Beiträge: 272
  • Geschlecht: Männlich
LoNo --> MS Word - mal wieder.... (Tabelle)
« am: 29.05.08 - 15:47:57 »
Hallo alle zusammen,

ich muss mal wieder nerven...

Ich habe eine DB aus der ich die Dokumente in Word exportieren möchte. In den Dokumenten befinden sich feste (im Designer erstellte) Tabellen. Diese Tabellen sollen automatisch in Word erstellt werden.

Ich schaffe es schonmal eine Tabelle zu erstellen, jedoch habe ich im momment das Problem das ich die Spalte in Ihrer Breite nicht ändern kann.

Das Aufzeichnen bringt mir jetzt grade nicht so die erleuchtung und auch das www ist heute nicht mein Messiahs. ;)

folgender AUszug aus der MS Hilfe:

Zitat
Width (Eigenschaft)
Siehe auchBetrifftBeispielBesonderheitenFrameset-Objekt: Gibt die Breite des angegebenen Frameset-Objekts zurück oder legt sie fest. Long-Wert mit Lese-/Schreibzugriff. Die WidthType-Eigenschaft legt die Einheit fest, in der dieser Wert angegeben wird.

Alle anderen Objekte: Gibt die Breite des angegebenen Objekts (in Punkt) zurück oder legt sie fest. Long-Wert mit Lese-/Schreibzugriff.

Beispiel
In diesem Beispiel wird in einem neuen Dokument eine 5x5-Tabelle erstellt und dann die Breite der ersten Zelle auf 1,5 Zoll festgelegt.

Set newDoc = Documents.Add
Set myTable = _
    newDoc.Tables.Add(Range:=Selection.Range, NumRows:=5, _
    NumColumns:=5)
myTable.Cell(1, 1).Width = InchesToPoints(1.5)
      
In diesem Beispiel wird die Breite (in Zoll) der Zelle zurückgegeben, die die Einfügemarke enthält.

If Selection.Information(wdWithInTable) = True Then
    MsgBox PointsToInches(Selection.Cells(1).Width)
End If
      
In diesem Beispiel wird der Abschnitt, der die Markierung enthält, dreispaltig formatiert. Die Schleife For Each...Next wird zum Anzeigen der Breite der einzelnen Spalten in der TextColumns-Auflistung verwendet.

Selection.PageSetup.TextColumns.SetCount NumColumns:=3
For Each acol In Selection.PageSetup.TextColumns
    MsgBox "Width= " & PointsToInches(acol.Width)
Next acol
      
In diesem Beispiel werden die Breite und Höhe des Mircrosoft Word-Anwendungsfensters festgelegt.

With Application
    .WindowState = wdWindowStateNormal
    .Width = 500
    .Height = 400
End With
      
In diesem Beispiel wird die Breite des angegebenen Frameset-Objekts auf 25 Prozent der Fensterbreite festgelegt.

With ActiveWindow.ActivePane.Frameset
    .WidthType = wdFramesetSizeTypePercent
    .Width = 25
End With



Hier auch mein bisheriger Code:

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 view As NotesView
	Dim WordApp As Variant
	Dim WordDoc As Variant
	Dim Insert As Variant
	Dim LastParagraph As Variant
	Dim Range As Variant	
	
	Set uidoc = workspace.CurrentDocument
	Set db = session.CurrentDatabase
	Set view = db.GetView("aNach Name")
	Set doc = view.GetFirstDocument
	
	If Not doc Is Nothing Then
		Set WordApp = CreateObject("Word.Application")  				
		Call WordApp.documents.add()
		Set WordDoc = WordApp.activedocument	
		Set Insert =  WordApp.Selection
		
		WordApp.Visible = True  
		Call WordApp.Activate
		
		Set LastParagraph = WordDoc.Paragraphs(WordDoc.Paragraphs.Count).Range
		Set Range = WordDoc.Range(LastParagraph.Start, LastParagraph.End)
		Call WordDoc.Tables.Add(range,26,10)		
	End If
End Sub

VIELEN DANK FÜR EURE HILFE....

Gruß Christian
Viele Grüße

Christian T.

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re: LoNo --> MS Word - mal wieder.... (Tabelle)
« Antwort #1 am: 29.05.08 - 16:11:01 »
So solltest Du die ersten zwei Spalten der Tablelle auf die Größe 72pt bzw 144pt einstellen können:

Dim table as Variant

...

Set LastParagraph = WordDoc.Paragraphs(WordDoc.Paragraphs.Count).Range
Set Range = WordDoc.Range(LastParagraph.Start, LastParagraph.End)
Set table = WordDoc.Tables.Add(range,26,10)

table.Columns(1).Width = 72
table.Columns(2).Width = 144

Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline Werner Götz

  • Aktives Mitglied
  • ***
  • Beiträge: 248
  • Geschlecht: Männlich
Re: LoNo --> MS Word - mal wieder.... (Tabelle)
« Antwort #2 am: 29.05.08 - 16:45:09 »
Ansonsten habe ich sowas dadurch gemacht, dass ich die Templates für die Tabellen als Autotext abspeichere und dann in der Routine die "fertige" Tabelle als Autotext einfüge.

Vielleicht auch eine Idee für Deinen Anwendungsfall?

-Werner

Offline C_T

  • Senior Mitglied
  • ****
  • Beiträge: 272
  • Geschlecht: Männlich
Re: LoNo --> MS Word - mal wieder.... (Tabelle)
« Antwort #3 am: 02.06.08 - 07:57:47 »
Super Leute

Vielen Dank.... Wie immer konntet Ihr super helfen... Vielen DANK

Gruß CT
Viele Grüße

Christian T.

Offline C_T

  • Senior Mitglied
  • ****
  • Beiträge: 272
  • Geschlecht: Männlich
Re: LoNo --> MS Word - mal wieder.... (Tabelle)
« Antwort #4 am: 02.06.08 - 08:17:26 »
Noch ne andere Frage,

wie kriege ich effektiv und am sinnvollsten Text in die einzelnen Tabellen zellen rein?

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: LoNo --> MS Word - mal wieder.... (Tabelle)
« Antwort #5 am: 02.06.08 - 08:36:40 »
Ich habe das in einem Dokument mit einer Tabelle mal so gelöst:

Set WordApp = CreateObject("Word.Application")              
Call WordApp.documents.add()
Set WordDoc = WordApp.activedocument   

'Einfügen des Textes in die 2.Zeile, 1.Spalte
WordDoc.Tables(1).Cell(2,1).Range = "Der Text wird in die Zelle eingefügt."


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

Offline C_T

  • Senior Mitglied
  • ****
  • Beiträge: 272
  • Geschlecht: Männlich
Re: LoNo --> MS Word - mal wieder.... (Tabelle)
« Antwort #6 am: 02.06.08 - 09:25:03 »
Danke hatte es schon gefunden trotzdem nochmals vielen Dank....
Viele Grüße

Christian T.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz