Thema Datum  Von Nutzer Rating
Antwort
24.09.2024 14:31:44 andiastonmartin
NotSolved
24.09.2024 19:40:31 ralf_b
NotSolved
24.09.2024 21:58:21 andiastonmartin
NotSolved
25.09.2024 00:55:13 Gast25698
NotSolved
25.09.2024 06:53:29 ralf_b
NotSolved
Blau in Word Tabelle eine Spalte mit Währung vorbelegen
27.09.2024 11:44:39 andiastonmartin
Solved

Ansicht des Beitrags:
Von:
andiastonmartin
Datum:
27.09.2024 11:44:39
Views:
40
Rating: Antwort:
 Nein
Thema:
in Word Tabelle eine Spalte mit Währung vorbelegen

Hi ralf_p

 

entlich ist die Lösung gefunden !!! smiley

Erstmal Vielen Dank für deine Unterstützung....

Hier eine Beschreibung was den Fehler verursacht hatte :

 

Das grundlegende Problem betrifft hierbei die Datentypen und das Verständnis, wie der Computer den Unterschied zwischen Zahlentypen und Zeichenfolgen erkennt.

Der tatsächliche Wert, der für Ihr DataGridView bereitgestellt wird, ist (hoffentlich) eine Dezimalzahl (es könnte auch eine Double-/Float-/usw.-Zahl sein, aber bei der Arbeit mit Geld ist nur die Dezimalzahl korrekt ).

Wenn Sie einen gut formatierten Wert wie auf dem Bildschirm sehen 133,60 €, sehen Sie eine Zeichenfolge und keine Dezimalzahl. Sie erhalten diese Zeichenfolge, weil die DataGridView so konfiguriert ist, dass diese Spalte als Währung behandelt und entsprechend formatiert wird. Der tatsächliche Wert in der Zelle ist jedoch immer noch eine Binärzahl ohne jegliches für Menschen lesbares Format.

MS Word kennt Ihre DataGridView-Formatierung jedoch nicht. Es sieht nur den Wert. Es weiß nicht, dass der Wert Geld darstellt, und führt daher nur eine einfache Konvertierung in eine Zeichenfolge durch, anstatt einer gut formatierten Konvertierung in eine Zeichenfolge, die eine Währung darstellt.

Um dies zu beheben, sollten Sie im Voraus überlegen, welche Art von Zeichenfolge Sie für jede Spalte erstellen müssen. Dann können Sie entweder .ToString()den Originalwert mit der entsprechenden Formatzeichenfolge aufrufen. Oder Sie können beim Exportieren für Word die FormattedValue Eigenschaft in der Rasterzelle anstelle der Basiseigenschaft betrachten Value.

Habe nun in der fogenden Code Zeile dies geändert:

 

objDoc.Tables(1).Cell(r + 1, c + 1).Range.Text = Datagridview2(c, r).Value.ToString <------ Falsch
objDoc.Tables(1).Cell(r + 1, c + 1).Range.Text = Datagridview2(c, r).FormattedValue <------- Die Lösung !!

In Word wird jetzt alles Richtig mit € und 2 Decimal stellen angezeigt.

Danke Dir auch nochmal...

Gruß

Andi

 

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
24.09.2024 14:31:44 andiastonmartin
NotSolved
24.09.2024 19:40:31 ralf_b
NotSolved
24.09.2024 21:58:21 andiastonmartin
NotSolved
25.09.2024 00:55:13 Gast25698
NotSolved
25.09.2024 06:53:29 ralf_b
NotSolved
Blau in Word Tabelle eine Spalte mit Währung vorbelegen
27.09.2024 11:44:39 andiastonmartin
Solved