Seite 1 von 1
(gelöst) rechnen im Formatcode?
Verfasst: Sa 1. Dez 2012, 19:05
von Reader
Hallo,
ich möchte Zellen so formatieren, dass bei Eingabe einer Zahl automatisch eine feststehende Zahl addiert wird.
Der Hintergrund ist: ich habe sehr lange, immer gleich lange Zahlen einzugeben, bei denen die ersten Stellen konstant sind. Nun möchte ich nur die letzten 5 Ziffern eingeben und die davorstehenden automatisch davorgesetzt bekommen. Ist das irgendwie machbar?
Danke schonmal
Uwe
Re: rechnen im Formatcode?
Verfasst: Sa 1. Dez 2012, 20:00
von karolus
Hallo
Mit einer Zellformatierung kannst du nur das sichtbare Ergebnis der Zelle beeinflussen, der eigentliche Inhalt wird dadurch nicht verändert.
Möglich wäre da zum einen eine Textformatierung mit bsplw. dem Formatcode: "1234"@ oder ganz ähnlich als Wert mit dem Formatcode "1234"0 '1234' steht hier jeweils für die fixen Ziffern.
Wenn du tatsächlich auch die Werte oder den vollständigen Text benötigst, wäre das relativ einfach über ein kleines Makro lösbar das mit dem Ereignis 'Inhalt geändert' des Tabellenblatts verknüpft wird. (→Rechtsklick Tabellenreiter→Tabellenereignisse... )
?
Karolus
Re: rechnen im Formatcode?
Verfasst: So 2. Dez 2012, 09:50
von Reader
Da hast du natürlich Recht: mit der Formatierung ändere ich den Inhalt nicht. Das sollte aber schon passieren, da dieser Inhalt dann ausgewertet wird.
Wäre die Variante mit dem Makro. Das mit dem Aufruf des Makros bei Änderung des Inhalts habe ich verstanden. Aber von der Makroprogrammierung habe ich nun überhaupt keine Ahnung. Kannst du mir auf die Sprünge helfen? Wenn ich den Anfang habe, fitze ich mich dann schon rein.
Danke erstmal
Re: rechnen im Formatcode?
Verfasst: So 2. Dez 2012, 10:25
von Rocko
Reader hat geschrieben:Da hast du natürlich Recht: mit der Formatierung ändere ich den Inhalt nicht. Das sollte aber schon passieren, da dieser Inhalt dann ausgewertet wird.
Abhängig von deiner konkreten Aufgabenstellung ist ein Makro nicht unbedingt die einzige Alternative. Wenn die Eingaben z.B. eine fortlaufende Spalte betreffen, zeigt sich für mich der Weg über die Formatierung als der mit dem wenigsten Aufwand.
Du gibst deine 5-stelligen Zahlen ein und formatierst diese Zellen mit der konstanten Zahl (Zahlencode "1234"0 - Wobei die "1234" die konstante Ziffernfolge ist.). Nach Ende der Eingabe markierst du die Zellen/Spalte/Zeile, schneidest sie mit Strg+x aus und fügst sie gleich als "Unformatierten Text" an derselben Stelle wieder ein.
Bei diesem Vorgang werden nicht nur die angezeigten Ziffern, sondern auch deren Formatierung ausgeschnitten; eingefügt aber werden nur noch die Ziffern ohne Formatierung. Die Zahlenerkennungsfunktion von Calc erkennt dann diese Ziffernfolge als neuen Wert, mit dem du weiterarbeiten kannst.
Re: rechnen im Formatcode?
Verfasst: So 2. Dez 2012, 10:54
von Reader
Das ist auch 'ne Variante. Aber schon ein bisschen umständlich. Makro wäre natürlich eleganter. Ich werde das aber als Übergangslösung nutzen.
Danke
Re: rechnen im Formatcode?
Verfasst: So 2. Dez 2012, 11:27
von karolus
Hallo
Hier noch eine Sub für das Ereignis 'Inhalt geändert'
Code: Alles auswählen
sub prefix_number( event )
fix_val = 123456700000 'anpassen
on error resume next
if isobject( event.Tokens) then
exit sub ' ^echte Formeln ausschliessen
end if
v = event.Value
if len(event.String) = 5 and v >= 10000 and v < 100000 then
event.Value = v + fix_val
end if
end sub
Karolus
Re: rechnen im Formatcode?
Verfasst: So 2. Dez 2012, 12:17
von Reader
Wunderbar, danke.
Das ist genau das, was ich brauche.
Ich werde mich wohl doch mal etwas intensiver mit der Programmierung beschäftigen.
Nochmal danke
Uwe
P.S: Werden gelöste Probleme hier im Forum als solche gekennzeichnet? Und wenn ja, wie?
Re: rechnen im Formatcode?
Verfasst: So 2. Dez 2012, 13:08
von karolus
Hallo
P.S: Werden gelöste Probleme hier im Forum als solche gekennzeichnet? Und wenn ja, wie?
Ja, indem du deinen ersten Beitrag editierst und dem Titel/Betreff
[gelöst] voranstellst.
Karolus