Hi,
Ich nöchte die ermittelten "Point to Point" Meter aus L3 al "Ges.-Km" nach O3 schreiben.
oZelle = oSheet.getCellByPosition (11,x)
oZelle.numberFormat(2)
oZelle.Value = nPoint_Dif
nPoint_Dif_Zae = nPoint_Dif_Zae + (nPoint_Dif /1000)
Print nPoint_Dif, nPoint_Dif_Zae ->Inhalte der Variablen werden korrekt angezeigt.
oZelle = oSheet.getCellByPosition (14,x)
oZelle.numberFormat(2)
oZelle.Value = ??Point_Dif_Zae
Zellformat und Type habe ich ausgelesen.
Die Splte ist al Dezimalzahl mit 4 nachkommastellen vorformatiert.
Hat jemand eine Idee was los sein könnte.
Grüße Ulrich
Wir sind auf Ihre Unterstützung angewiesen!
💚 BITTE helfen Sie uns HEUTE mit einer SPENDE 💚
Helfen Sie das LibreOffice Forum zu erhalten!
> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
GELÖST: Addition wird nich in Zelle geschrieben
GELÖST: Addition wird nich in Zelle geschrieben
Zuletzt geändert von Ulrich am Do 16. Jan 2020, 20:06, insgesamt 1-mal geändert.
Re: Addition wird nich in Zelle geschrieben
Hallo Ulrich,
der NumberFormat wird nicht korrekt zugewiesen.
Ausserdem findet keine Prüfung statt, ob der betreffende
NumberFormat-Schlüssel bereits existiert.
Das kann zu Problemen z.B. in Form von Laufzeitfehler führen.
Die angegebene Konstante (2) ist also falsch.
Beispiel Code zum zuweisen des NumberFormats und
zum anzeigen des NumberFormat-Schlüssels.
Lese auch die Kommentare im Code.
der NumberFormat wird nicht korrekt zugewiesen.
Ausserdem findet keine Prüfung statt, ob der betreffende
NumberFormat-Schlüssel bereits existiert.
Das kann zu Problemen z.B. in Form von Laufzeitfehler führen.
Code: Alles auswählen
oZelle.numberFormat(2)
Beispiel Code zum zuweisen des NumberFormats und
zum anzeigen des NumberFormat-Schlüssels.
Code: Alles auswählen
Dim oLocalSettings As New com.sun.star.lang.Locale
REM !!!!!!!!!!!!!!!!!!!!!!!!!!!
REM Damit der nachfolgende Code funktioniert, muss diese
REM noch um die Dokument, Sheet und Zellreferenzen erweitert werden!
REM oDoc=ThisComponent
REM oSheet= ...
REM oZelle = ...
REM !!!!!!!!!!!!!!!!!!!!!!
oLocalSettings.language = "de"
oLocalSettings.country = "de"
oNumberFormats = thiscomponent.numberFormats
REM NumberFormat = 3 Nachkommastellen
lKey = oNumberFormats.queryKey("0,000", oLocalSettings , true)
REM Wenn der NumberFormat-Schlüssel nicht existiert = -1,
REM dann NumberFormat-Schlüssel neuanlegen
If lKey = -1 then
lKey = oNumberFormats.addNew("0,000", oLocalSettings)
end if
REM NumberFormat-Schlüssel der Zelle zuweisen
oCell.NumberFormat = lKey
REM Lasse Dir per Print-Anweisung die Format-
REM konstante anzeigen, dann erkennst Du, dass
REM oZelle.numberFormat(2)
REM falsch ist.
Print lKey
Gruß
Craig
Nie die Sicherungskopie vergessen!
════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8
Craig
Nie die Sicherungskopie vergessen!
════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8
Re: Addition wird nich in Zelle geschrieben
Hi Craig,
bisher habe ich mich an die Info über die Formateinstellung an die ausführliche
Beschreibung von Dannenhoefer orientiert.
Nun habe ich deine Empfehlung eingebaut und mit Print überbrüft. Jetzt läuft auch die zusätzliche Spalte rund.
Bei der Überprüfung mit Print wurden unterschiedliche Antworten gegeben. Für "Standard-Dezimalzahl "20002", für die festgelegten nachkommastellen "20107".
Wo finde ich Info über die Formstierungswerte mit Angaben wie die zu verwenden sind.
Grüße Ulrich
bisher habe ich mich an die Info über die Formateinstellung an die ausführliche
Beschreibung von Dannenhoefer orientiert.
Nun habe ich deine Empfehlung eingebaut und mit Print überbrüft. Jetzt läuft auch die zusätzliche Spalte rund.
Bei der Überprüfung mit Print wurden unterschiedliche Antworten gegeben. Für "Standard-Dezimalzahl "20002", für die festgelegten nachkommastellen "20107".
Wo finde ich Info über die Formstierungswerte mit Angaben wie die zu verwenden sind.
Grüße Ulrich
Re: GELÖST: Addition wird nich in Zelle geschrieben
Hallo Ulrich,
Ulrich hat geschrieben:bisher habe ich mich an die Info über die Formateinstellung an die ausführliche
Beschreibung von Dannenhoefer orientiert.
- Dazu merke ich als erstes an, dass die Seite sehr gut ist.
Aber auch etwas betagt, besonders wenn es um LibreOffice geht.
Die API von OpenOffice und LibreOffice bewegen sich langsam, aber sicher
auseinander. Dies fürht dazu, dass eigene Programme unter LibreOffice
einwandfrei laufen, aber in OpenOffice nicht und umgekehrt. - Wenn Du den Code vo Dannenhöfer nutzt, dann musst Du diesen auch
genauso verwenden.
In Deinem Code:Bei Dannenhöfer so:Code: Alles auswählen
oZelle.numberFormat(2)
Damit meine ich nicht den Namen der Variablen (myCell oder oZelle),Code: Alles auswählen
mycell.NumberFormat=0
sondern die Anweisung ".NumberFormat=0", oder auch ".NumberFormat=2",
Auf der Seite wo dieses steht, sind auch einige CellFlags (NumberFormat Konstanten")aufgelistet.
Wenn nun ein eigenes Format (z.B. 3 Nachkommastellen) generiert werden soll,
dann muss dieses erst im Code vorbereitet werden.
Ebenso, wie ich es in meinem Beispielcode beschrieben habe. - Daraufhin wird eine neue Konstante angelegt.
Bei Dir war es: 20107
Wenn ich den Code ausführe, dann ist es die Konstante: 10107
Wie hier die Zusammenhänge sind, kann ich nicht genau sagen.
Ich vermute, dass die nächstfreie Konstante genommen wird,
um neue Zahlenformate zu zuweisen.
Bei der zuvor verlinkten Dannenhöfer-Seite, siehst Du unter "Währung"
die Schlüssel/ Konstanten 106 | 108 | 109 | 110
107 fehlt.
Gruß
Craig
Nie die Sicherungskopie vergessen!
════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8
Craig
Nie die Sicherungskopie vergessen!
════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8
An alle, die das LibreOffice-Forum nutzen:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.
❤️ Vielen lieben Dank für Ihre Unterstützung ❤️