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 worksheet.Range(feld).NumberFormat = "#,##0.0000"
versucht und auch (alternativ) die direkte Formatierung des Inhalts der Variablen, etwa so 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
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:
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
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:
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.