Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Code auf Formatieren einer Tabelle in Word reagiert "komisch"
#1
Ha((o

Bin am verzweifeln. Formatiere von Excel aus in Word eine Tabelle.
Bin in Foren gewesen und Hilfe und meine Paramter müssten passen, aber das Verhalten ist sehr komisch. D.h. auf einige Parameter reagiert es richtig auf andere nicht. Ich vermute einen Fehler im System. Folgende Diskrepanzen:
1. Rechtsbündigkeit in Spalte 8 bringt einen Fehler.
Code:
.Columns(8).ParagraphFormat.Alignment = wdAlignParagraphRight

2. oberer Rahmen erste Zeile läßt sich nicht mit "xlEdgeTop" ansprechen. Aber mit einer 1. Im Code unten nun mit einer 1.
Code:
With wdtable.Rows(1).Borders(1) 'oberste Umrandung der ersten Zeile
       .LineStyle = xlContinuous
       .Weight = xlThick
   End With

3. Und das verrücksteste für mich ist der gleiche Code wie oben. "LineStyle" wird akzeptiert, aber "Weight" bringt einen Fehler. Wieso?

Und nun der gesamte Code:
Code:
Sub Tabelle_Fuellen(ByRef wddoc As Word.Document)

Dim z1 As Integer
Dim z2 As Integer
Dim rabatt As Boolean
Dim wdtable As Object

   Call Rechnungsbereich_Festlegen(z1, z2, rabatt)
   
   If rabatt = True Then
       Set wdtable = wddoc.Tables.Add(Range:=wddoc.Bookmarks("Tabelle").Range, NumRows:=z2 - z1 + 1, NumColumns:=8)
       With wdtable
           .Columns(1).PreferredWidth = CentimetersToPoints(0.9) 'Position
           .Columns(2).PreferredWidth = CentimetersToPoints(2)   'Art.Nr.
           .Columns(3).PreferredWidth = CentimetersToPoints(6.5) 'Bezeichnung
           .Columns(4).PreferredWidth = CentimetersToPoints(0.8) 'Menge
           .Columns(5).PreferredWidth = CentimetersToPoints(1.2) 'Einheit
           .Columns(6).PreferredWidth = CentimetersToPoints(2)   'Originalpreis
           .Columns(7).PreferredWidth = CentimetersToPoints(1.6) 'Rabatt
           .Columns(8).PreferredWidth = CentimetersToPoints(2)   'Gesamtpreis
       
'            .Columns(8).ParagraphFormat.Alignment = wdAlignParagraphRight
       End With
   Else
       'Set wdtable = wddoc.Tables.Add(Range:=wddoc.Bookmarks("Tabelle").Range, NumRows:=z2 - z1 + 1, NumColumns:=7, defaulttablebehavior:=wdWord8TableBehavior, AutoFitBehavior:=WdAutoFitBehavior)
   End If
   
   With wdtable.Rows(1).Borders(1) 'oberste Umrandung der ersten Zeile
       .LineStyle = xlContinuous
       .Weight = xlThick
   End With
   With wdtable.Rows(1).Borders(3) 'untere Umrandung der ersten Zeile
       .LineStyle = xlContinuous
       .Weight = 2
   End With
End Sub

Weiß jemand wo das Problem ist? Wie gesagt, ich vermute ein Systemproblem.
Danke Euch
Grüße
Nyn007
Antworten Top
#2
(24.12.2018, 19:48)Nyn007 schrieb: Folgende Diskrepanzen:
1. Rechtsbündigkeit in Spalte 8 bringt einen Fehler.
Code:
.Columns(8).ParagraphFormat.Alignment = wdAlignParagraphRight

2. oberer Rahmen erste Zeile läßt sich nicht mit "xlEdgeTop" ansprechen. Aber mit einer 1. Im Code unten nun mit einer 1.
Code:
With wdtable.Rows(1).Borders(1) 'oberste Umrandung der ersten Zeile
       .LineStyle = xlContinuous
       .Weight = xlThick
   End With

3. Und das verrücksteste für mich ist der gleiche Code wie oben. "LineStyle" wird akzeptiert, aber "Weight" bringt einen Fehler. Wieso?

Hab es selber versucht zu lösen kriege es aber auch nicht hin
LG
Antworten Top
#3
Hallo,

ist das hier nur ein Schreibfehler im Posting für "Width" oder meinst Du das im ernst?
Zitat:3. Und das verrücksteste für mich ist der gleiche Code wie oben. "LineStyle" wird akzeptiert, aber "Weight" bringt einen Fehler. Wieso?
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#4
steht im Code auch falsch. Also passe das mal an auf width.
Antworten Top
#5
könnte sein, dass das andere Gründe hat, als nur Schreibfehler.
Hast du den Verweis auf Word gesetzt?
Wenn nein, bekommst du einen Fehler wenn du
Code:
wdAlignParagraphRight
aufrufst. Das ist Excel nicht bekannt, nimm statt dessen den Zahlenwert. (Bemühe Tante Google, ich weiß das auch nicht anders, oder gib im Direktbereich von ?wdalignparagraphright ein und du bekommst den Zahlenwert)

das gleiche ist hier:

Code:
With wdtable.Rows(1).Borders(1) 'oberste Umrandung der ersten Zeile
      .LineStyle = xlContinuous
      .Weight = xlThick
  End With
Du rufst Excelkonstanten auf, die können zufällig auch mal passen, aber im Regelfall eher nicht.
Hier gilt das gleiche: Zahlewerte einfügen, wenn du Word-Sachen in Excel aufrufst.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste