Autor Thema: Problem: (Um-)Formatieren von numerischen Werten  (Gelesen 1606 mal)

Offline aoibhneach

  • Aktives Mitglied
  • ***
  • Beiträge: 141
  • Geschlecht: Männlich
Problem: (Um-)Formatieren von numerischen Werten
« am: 15.07.22 - 11:47:23 »
Hallo Forum,

In meinen Notes-Dokumenten gibt es Zahlenwerte der Form 123.456 .

Durch die Feldeinstellungen in der Maske wird die Zahl im uidoc so dargestellt: 123,4560 . 4 Nachkommastellen; ggf. ein Tausender-Trennzeichen: "."

Dieser Wert soll genau so, wie er im geöffneten Dokument angezeigt wird, in EXCEL landen. D.h., es wird immer mit "0" auf 4 Nachkommastellen erweitert.

Ich habe es durch alle möglichen, mir sinnvoll erscheinenden Varianten von
Code
worksheet.Range(feld).NumberFormat = "#,##0.0000"
versucht und auch (alternativ) die direkte Formatierung des Inhalts der Variablen, etwa so 
Code
wert2 = Format(v(0),"####,0000")
(nur als Beispiel)

Bei allem Probieren waren die "besten" Ergebnisse in EXCEL : 123.456,0000 oder einmal 1.234.560.

Ich bin ziemlich ratlos; trotz Suche im Internet.

Vielen Dank für Ideen.

Grüße, Nils



"Der verlorenste aller Tage ist der, an dem man nicht gelacht hat."

Sébastien-Roch Nicolas de Chamfort

Offline CarstenH

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 664
  • Geschlecht: Männlich
Antw:Problem: (Um-)Formatieren von numerischen Werten
« Antwort #1 am: 15.07.22 - 12:14:17 »
Sowas mache ich im Zweifelsfall gern mit dem Makroeditor, also Aufzeichnung starten, Zelle formatieren, Aufzeichnung stoppen und Makro anschauen. Und laut meinem Test hast du eigentlich auch schon die richtige Variante herausgefunden:

Code
Range("C3").Select
Selection.NumberFormat = "#,##0.0000"

Bei mir sieht das Ergebnis auch so aus wie von dir gewünscht, bei dir nicht?

HTH
Carsten

Offline aoibhneach

  • Aktives Mitglied
  • ***
  • Beiträge: 141
  • Geschlecht: Männlich
Antw:Problem: (Um-)Formatieren von numerischen Werten
« Antwort #2 am: 18.07.22 - 12:43:32 »
Hallo Carsten,

Vielen Dank.

Ich bin im Moment nicht im Testsystem. Ich bekomme dann immer "0000" für die Nachkommastellen. Die von "0" verschiedenen Ziffern stehen dann allesamt vor dem Komma. Zu dumm... als würden die Nullen verhindern, dass Stellen hinter das Komma gelangen.  ;)

Ich werde mal die Idee mit dem Makro probieren und setze den Dialog fort. Vielleicht habe ich noch einen Geistesblitz.

Ach ja: Die Zahlen liegen im Notesdocument mit einem Punkt ".", statt mit einem Komma vor. Das bringt das Ganze wohl durcheinander. Der Punkt wird wohl "stur" als "1000er-Trennzeichen"interpretiert. Hier hatte ich auch versucht, mit dem Umweg über einen String, den Punkt durch ein Komma zu ersetzen; auch "Format(...)" habe ich versucht.
Das hat aber alles nicht geholfen.

Der "Punkt" als Trenner für die Dezimalstellen müsste in ein Komma gewandelt werden. Dann kann EXCEL mit den Zahlen umgehen.

Viele Grüße
« Letzte Änderung: 18.07.22 - 13:05:58 von aoibhneach »
"Der verlorenste aller Tage ist der, an dem man nicht gelacht hat."

Sébastien-Roch Nicolas de Chamfort

Offline aoibhneach

  • Aktives Mitglied
  • ***
  • Beiträge: 141
  • Geschlecht: Männlich
Antw:Problem: (Um-)Formatieren von numerischen Werten
« Antwort #3 am: 18.07.22 - 13:51:21 »
Hallo,

Nach Eingeben der richtigen Worte in Google ;) habe hier im Forum noch dieses Thema gefunden: "CDbl will Komma statt Punkt zur Dezimalentrennung???"

Vielleicht hilft mir das.

Viele Grüße
"Der verlorenste aller Tage ist der, an dem man nicht gelacht hat."

Sébastien-Roch Nicolas de Chamfort

Offline aoibhneach

  • Aktives Mitglied
  • ***
  • Beiträge: 141
  • Geschlecht: Männlich
Antw:Problem: (Um-)Formatieren von numerischen Werten
« Antwort #4 am: 18.07.22 - 15:26:05 »
Hallo Carsten, hallo Forum,

Bitte haut mir die Fehler nicht um die Ohren, falls ich etwas übersehen habe oder es zum Heulen erscheint.

Ich habe jetzt folgendes versucht:

Code
Dim alterWert as Variant
Dim vorKomma as Integer
Dim nachKomma as Single
Dim neuerWert as Single

alterWert = doc.getItemValue("ItemName")

vorKomma = Fix(alterWert(0))
nachKomma = Fraction(alterWert(0))

neuerWert = vorKomma + nachKomma

sht.Range(feld) = neuerWert

sht.Range(feld).NumberFormat = "#.##0,0000"

Das scheint die Werte richtigzustellen  ;)

UIDOC: 123,4560 (so wegen der Feldformatierung angezeigt)
DOC:    123.456 (steht in Variable alterWert(0))
EXCEL: 123,4560 (so habe ich es gewollt)

Ich werde noch weiter Testen; hoffentlich erfolgreich.

Vielleicht gibt es ja noch hilfreiche Meinungen?

Viele Grüße und nochmals Danke.

p.s.: Den alten Zahlenwert habe ich in eine Variant-Variable gelesen, um den Inhalt aus dem doc erst einmal unbeeinflusst zu erhalten. (Historie)
Nun habe ich es dabei belassen.

« Letzte Änderung: 19.07.22 - 07:38:49 von aoibhneach »
"Der verlorenste aller Tage ist der, an dem man nicht gelacht hat."

Sébastien-Roch Nicolas de Chamfort

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz