Word 365 Texttabelle Zahlenformat

LokutusvB

Lt. Junior Grade
Registriert
Dez. 2015
Beiträge
433
Hallo,

für eine programmgesteuerte Automation entwerfe ich eine Vorlage in Word 365. Die Vorlage beinhaltet unter anderem eine Texttabelle. Die Texttabelle wird aus einem anderen Programm heraus mit Inhalt aus einer Datenbank gefüllt, dabei fügt das Programm jeweils eine Zeile mit mehreren Spalten ein. Eine Spalte davon beinhaltet den Artikelpreis. Bisher funrtkionierte diese Automatisierung mit LibreOffice. Dort konnte man für die Textaballe pro Zelle Zahlenformate definieren, z.B. "0,00". In Word 364 konnte ich das nur unter Verwendung einer Formel finden. Gibt es diese Möglichkeit auch ohne das Verwenden von Formeln?

Ein Makro soll am Ende den Inhalt einer Spalte summieren und in eine Zelle unterhalb schreiben. Mit einer Formel wüßte ich nicht, wie das realisierbar sein soll, da die Anzahl der Zeilen erst feststeht, wenn die Automatisierung die Inhalte aus der Datenbank eingetragen hat. ICh dachte erst anSUM(ABOVE), aber das ermittelt mir die Summe der Zeile darüber, nicht die Summe aller Zellen oberhalb der Zelle.

Ich hoffe, ich konnte mein Problem halbwegs verständlich darlegen und jemand kann helfen.
 
Der Verweis auf die Datenbank ist ja sicher ein Feld, sollte sich also mit den üblichen Feldschaltern formatieren lassen.
Wenn da ein Makro oder irgendwas tatsächlich plain Text in das Word Dokument schreibt, dann sollte genau dieses geändert werden.
Eine weitere Alternative wäre, die formatierte Zahl in einer Spalte daneben anzuzeigen (z. B. per Verweis) und den Originalbetrag zu löschen. Und dann wäre da noch Suchen-Ersetzen...

SUM(ABOVE) funktioniert auch in Tabellen mit leeren Zeilen dazwischen, aber nur, wenn es sich um als Betrag formatierte bzw. eingegebene Zahlenwerte handelt. So zumindest in meinem Word.
 
Das Programm füllt die Tabelle nur mit Positionen in Form neuer Zeilen. Die Summenbildung wird erst nachträglich durchgeführt, bisher in LibreOffice per Macro, da der Benutzer die Positionen noch editieren kann/muß. (Summe aus jeweils Anzahl und Einzelpreis, davon dann Gesamtsumme, MWst und Summe inkl. MWst)

Kann ich in Word denn Suchen/Ersetzen auf bestimmte Zellen einer Tabelle einschränken?
 
Hallo LokutusvB,
man kann in Word einen Bereich markieren (z. B. auch eine Tabellenspalte) und dann Suchen/Ersetzen starten, dann wird zunächst dieser Bereich bearbeitet und dann fragt Word, ob der Rest auch ersetzt werden soll.
Noch mehr hilft dir wahrscheinlich meine Rechnungsvorlage:
http://www.ms-office-forum.net/forum/attachment.php?attachmentid=86461&d=1434544479
Sie enthält die von dir benötigten Formeln (per Alt-F9 siehst du die Feld-Formeln). Darunter ist auch eine, um einen Zahlungstermin automatisch aus dem aktuellen Datum (Speicherdatum) + 15 Tage zu berechnen.
Mit dem Ansatz der Produkt- und Summenformeln kannst du dann auch in der Tabelle frei editieren. Die Formeln werden berechnet, wenn du das Dokument ausdruckst oder per "Alles markieren - F9".
 
Ich bin nun soweit, per VBA jeweils mittels einer Formel den Wert berechnen zu lassen inkl. des Setzens vom Zahlenformat, anstatt den Wert fest einzutragen. Es scheitert aber an dem variablen (nicht festen) Setzen der Zellen für die Berechnung. In einer Schleife will ich einfach Zeile für Zeile eine Summe berechnen. Aber Cell(xy,).Formular akzeptiert wohl leider nur Zeichenketten. Wie könnte ich das lösen?
Code:
AngTabelle.Cell(ii, 5).Formula Formula:="=B3*E3"
funktioniert. Allerdings müssen B3 und E3 variabel bleiben.
Code:
Dim ZelleAnz As String
Dim ZelleEPreis As String
For ii = 3 To AnzZeilen - 3 Step 1
    ZelleAnz = "B" + Str(ii)
    ZelleEPreis = "E" + Str(ii)
    AngTabelle.Cell(ii, 5).Formula Formula:==ZelleAnz*ZelleEPreis
Next ii
funktioniert leider nicht. Wie sollte es auch.
 
Wie gesagt, meine Tabelle funktioniert variabel, ganz ohne VBA und feste Zellenbezüge.
 
Leider kann ich dein Beispiel nur runterladen, wenn ich dort im Forum angemeldet bin. Könntest du es bitte auch hier hochladen? :)

Zusatz: Ich habe es herausgefunden. :)
Code:
AngTabelle.Cell(ii, 5).Formula Formula:="=" & ZelleAnz & "*" & ZelleEPreis, NumFormat:="0,00"
 
Zuletzt bearbeitet:
Oh, sorry, hier die Rechnungsvorlage noch mal. Das sollte VBA überflüssig machen.
 

Anhänge

Hey, das ist ja meine Tabelle, nur ein wenig andere Optik. ;) Ja vielen Dank, dann kann ich das zum Großteil übernehmen.
 
Zurück
Oben