AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Excel Zahlen werden als Zahl formatiert müssen aber angeklickt werden

Excel Zahlen werden als Zahl formatiert müssen aber angeklickt werden

Ein Thema von oakley · begonnen am 19. Mai 2020 · letzter Beitrag vom 25. Mai 2020
Antwort Antwort
Seite 1 von 3  1 23   
oakley

Registriert seit: 15. Aug 2005
148 Beiträge
 
#1

Excel Zahlen werden als Zahl formatiert müssen aber angeklickt werden

  Alt 19. Mai 2020, 13:49
Hallo zusammen,

ich speichere ein TAdvStringgrid als Excel ab und erhalte durch nachträgliches Anpassen auch ein ordentlich formatiertes Excel Sheet.
Ich habe allerdings noch das Problem mit den Zahlen.Ich verwende:
Code:
ExcelApp := CreateOleObject('Excel.Application');
Workbook := ExcelApp.WorkBooks.Open(excelfilename);
ExcelApp.Range['A1','A1'].EntireColumn.Numberformat := '0,00';
Und die Zahl wird in der Spalte linksbündig
und mit einem kleinen grünen Dreieck angezeigt. Klicke ich darauf wird die Zahl sauber formatiert.

Ich habe hier schon das ein oder andere gefunden aber irgendwie scheint das formatieren nicht zu funktionieren oder Excel erkennt

Ich verwende Excel 365.

Viele Grüße

Mirko
  Mit Zitat antworten Zitat
Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
184 Beiträge
 
Delphi XE5 Professional
 
#2

AW: Excel Zahlen werden als Zahl formatiert müssen aber angeklickt werden

  Alt 19. Mai 2020, 14:05
... Und die Zahl wird in der Spalte linksbündig
Es scheint mir eher ein String zu sein. Zahlenwerte werden von Excel automatisch rechtsbündig formatiert.
Gruß, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher.
John C. Cornelius
  Mit Zitat antworten Zitat
oakley

Registriert seit: 15. Aug 2005
148 Beiträge
 
#3

AW: Excel Zahlen werden als Zahl formatiert müssen aber angeklickt werden

  Alt 19. Mai 2020, 14:27
Hallo Andreas,

wenn ich mit der rechten Maustaste auf die Zahl klicke und nachschaue, sehe ich, das sie als Zahl formatiert ist und oben links die Markierung für den Ablaufverfolgungsfehler angezeigt. Also das grüne Dreieck. Ich habe noch die Zeile:

Code:
ExcelApp.Range['A1','A1'].EntireColumn.Numberformat := '0,00';
nach

Code:
ExcelApp.Range['A1','A1'].EntireColumn.Numberformat := '#.##0,00';
geändert. Aber das Ergebnis ist das gleiche.

LG

Mirko
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.615 Beiträge
 
Delphi 6 Enterprise
 
#4

AW: Excel Zahlen werden als Zahl formatiert müssen aber angeklickt werden

  Alt 19. Mai 2020, 15:12
Das Problem ist, dass man Excel zur Neuberechnung/Evaluierung der Zelle zwingen muss. Das passiert z.B. in dem du da rein klickst. Wie man das jetzt schlau programmatisch machen kann, weiß ich auch nicht. Du könntest jetzt das rechtsbündig noch selber setzen, aber dann ist grüne Dreieck immer noch nicht weg.

https://docs.microsoft.com/de-de/off...-recalculation
Ralph

Geändert von Jumpy (19. Mai 2020 um 15:18 Uhr)
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
1.237 Beiträge
 
Delphi 7 Professional
 
#5

AW: Excel Zahlen werden als Zahl formatiert müssen aber angeklickt werden

  Alt 19. Mai 2020, 16:01
Mir stellt sich gerade die Frage: Ist das, was in A1 steht (aus Excelsicht) überhaupt eine Zahl?

Wie kommt der Wert in die Exceltabelle? Hast Du da mal etwas Code zu?

Oder mal mit ExcelApp.Range['A1','A1'].EntireColumn.Numberformat := 'Standard'; versucht?

Englisches Excel oder Deutsches?
Wie sieht es mit Tausenderpunkt und Dezimalkomma aus? Ja nach Einstellung könnte es eventuell mit ExcelApp.Range['A1','A1'].EntireColumn.Numberformat := '0.00'; bzw. ExcelApp.Range['A1','A1'].EntireColumn.Numberformat := '#,##0.00'; funktionieren.

In Excel gibt es oben, über dem Sheet doch auch die Eingabezeile, in der man (statt in 'ner Zelle) auch seine Werte, Zeichenfolgen, Zahlen, Formeln, ... eingeben kann. Wenn es sich bei Zahlen aus Excelsicht um einen String handelt, dann ist dort (in der Regel) vor der Zahl ein einzelnes Hochkomma zu finden.

In der Zelle steht die Zahl linksbündig und ist mit 'nem grünen Dreieck gekennzeichnet. In der Eingabezeile müsste dann statt 0 ein '0,00 stehen. Dort werden Zahlen auch nicht mit Nachkommastellen angezeigt, wenn sie keine enthalten. Soll also in der Zelle eine 0 stehen und nur die Darstellung mit zwei Nachkommastellen erfolgen, so darf in der Eingabezeile auch nur eine 0 stehen. Steht dort 0,00 bin ich mit (fast) sicher, dass Excel meint hier eine Zeichenfolge vorliegen zu haben. Prüf' das doch bitte mal zuerst. Solange Excel denkt, es sei eine Zeichenfolge, kannst Du Numberformat beliebig verändern, es wird sich nix wesentliches ändern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
35.822 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Excel Zahlen werden als Zahl formatiert müssen aber angeklickt werden

  Alt 19. Mai 2020, 16:49
Zitat:
Mir stellt sich gerade die Frage: Ist das, was in A1 steht (aus Excelsicht) überhaupt eine Zahl?
Nein, das sind zwei Zahlen.

Spalte A, Zeile 1


[Edit]
Ups, du meinstest den Wert in dem Feld und nicht diese Angabe "A1".
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
oakley

Registriert seit: 15. Aug 2005
148 Beiträge
 
#7

AW: Excel Zahlen werden als Zahl formatiert müssen aber angeklickt werden

  Alt 19. Mai 2020, 17:10
In A1 steht die Überschrift also ein Text.
Und es ist ein deutsches Excel.

LG

Mirko
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
1.237 Beiträge
 
Delphi 7 Professional
 
#8

AW: Excel Zahlen werden als Zahl formatiert müssen aber angeklickt werden

  Alt 19. Mai 2020, 17:15
Wenn in A1 Text steht, kann das mit dem Numberformat auch nicht gehen, das ist nunmal nur für Zahlen und nicht für Text.

ExcelApp.Range['A1','A1'].EntireColumn.Numberformat heißt: Setze das Zahlenformat für alle Zeilen im Bereich von A1 bis A1. Und der Bereich umfasst halt genau nur eine Zelle. Und wenn da Text drinne steht, ist das Numberformat vollkommen überflüssig, da absolut wertlos.
  Mit Zitat antworten Zitat
mmw

Registriert seit: 10. Sep 2019
Ort: OWL
36 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#9

AW: Excel Zahlen werden als Zahl formatiert müssen aber angeklickt werden

  Alt 19. Mai 2020, 17:33
Hallo,
villeicht bringt das was

Application.ErrorCheckingOptions.BackgroundCheckin g = false

siehe

https://docs.microsoft.com/de-de/off...groundchecking

Gruß
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
216 Beiträge
 
Delphi 10.3 Rio
 
#10

AW: Excel Zahlen werden als Zahl formatiert müssen aber angeklickt werden

  Alt 19. Mai 2020, 18:08
Das Problem ist sicher das NumberFormat. Das muss im ANSI Format angeben werden, also im Prinzip gleich wie in Delphi. Du gibst es aber im deutschen Format an. Deine Code würde hier in der Schweiz so nicht funktionieren, da wir hier ein anderes Zahlenformat haben, sprich Tausender- und Komma-Zeichen genau umgekehrt. Das ANSI Zeichen für den Tausender ist "," und für das Komma wäre es der Punkt ".". NumberFormat='#,##0.00' müsste eigentlich so funktionieren.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf