Excel Benutzerdefiniertes Format

Einbindung von Office-Komponenten wie Word, Excel usw.

Moderator: Moderatoren

Antworten
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Excel Benutzerdefiniertes Format

Beitrag von Koverhage »

Ich muss eine Excel Tabelle verarbeiten die ein Benutzerdefiniertes Feld in der Form 00001
enthält. Die Zellen haben den Inhalt 0, werden aber durch das Formatieren als 00001
angezeigt.
Ich übernehme die Daten so:
aValues := oExcel:Application:Range(oSheet:Cells(4,1),oSheet:Cells(nRow,5)):value
Als Ergebnis bekomme ich die Spalte(Zelle) 1 mit einem Wert 0

Speichere ich die Tabelle allerdings als CSV oder TXT Datei bekomme ich wie gewünscht den
Wert 00001.

Muss ich jetzt für jeden Wert die Formatierung auslesen (falls das überhaupt möglich ist)
und das Ergebnis entsprechend aufbereiten ?
Gruß
Klaus
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2821
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 94 Mal
Danksagung erhalten: 13 Mal

Re: Excel Benutzerdefiniertes Format

Beitrag von georg »

Ja.

OK, das wäre gemein als Antwort. Was mich interessiert, ist die benutzerdefinierte Formatierung, die einen Wert Val("0") als "0001" anzeigt. Du wirst die Formatierung zumindest einmal auslesen und übertragen müssen. Persönlich würde ich ein Makro aufzeichen, in dem ich auf das Feld klicke, dann das Pinsel-Icon anklicke und eine andere Zelle anklicke (übertragen einer individuellen Formatierung) und mir dann anschauen, was der Makro-Recorder festgehalten hat.

Analog kannst Du dann diese Formatierung auch auf einen Bereich übertragen.


Gruss,

Georg
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Excel Benutzerdefiniertes Format

Beitrag von brandelh »

Wenn du führende Blanks verschmerzen kannst, so erzwinge ich die führende 0 ;-)
Gruß
Hubert
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Excel Benutzerdefiniertes Format

Beitrag von Koverhage »

@Georg,

ich habe es ja nicht gewusst das da ein benutzerdefiniertes Format eingetragen ist.
Habe mich nur gewundert, das in dem Feld 0 steht obwohl mit Excel 00001 angezeigt wird.
D.h. ich muss alle benötigten Felder prüfen, da ich das vorher ja nicht weiß.

@Hubert,
die Antwort verstehe ich jetzt nicht.
ich benötige die 0001 und zwar als String. Das Problem die 1 ist ja nicht wirklich da
(so kann man sich Eingaben in Excel sparen, aber mit dem kann man nicht arbeiten)
Gruß
Klaus
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Excel Benutzerdefiniertes Format

Beitrag von brandelh »

Excel unterdrückt führende '0' Zeichen, schließlich ist es ein Rechenprogramm ;-)
Nun kann man das Format auf Text setzen:

Code: Alles auswählen

   oSheet:Columns("A:E"):NumberFormat        := "@"
was leider nicht immer richtig funktioniert, oder aber statt "0000" " 0000" zuweisen.
Das zeigt er dann mit führenden Nullen an. Was du mit der 1 die es eigentlich nicht gibt meinst, verstehe ich jetzt nicht.
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16488
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Excel Benutzerdefiniertes Format

Beitrag von Martin Altmann »

brandelh hat geschrieben:Was du mit der 1 die es eigentlich nicht gibt meinst, verstehe ich jetzt nicht.
Moin Hubert,
ganz einfach: Bedingte Formatierung!
Wenn die Zelle leer ist, dann formatiere sie mit 00001 - es wird also ein leeres Feld als 00001 angezeigt.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Excel Benutzerdefiniertes Format

Beitrag von UliTs »

brandelh hat geschrieben:Excel unterdrückt führende '0' Zeichen, schließlich ist es ein Rechenprogramm ;-)
Hubert, da verwechselst Du was ;-) .
Beim Rechnen sind führende Nullen ohne Bedeutung. Es geht nur um die Information über die Formatierung :razz:
Aber das weißt du ja inzwischen :book:
Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Antworten