Eingabefeld in Kommazahlen umwandeln

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Eingabefeld in Kommazahlen umwandeln

Re: Eingabefeld in Kommazahlen umwandeln

von Miki W » Sa, 07.03.2015 20:38

Erstmal danke Ihr Lieben,

Ich habe das ausprobiert und dabei festgestellt, dass wenn ich eine Punktzahl eingebe, dann bekomme ich bei

Code: Alles auswählen

.....value = VAL(anzahl)
eine Kommazahl heraus.
Dann habe ich die Reihenfolge geändert und siehe da: freu geht :D
Bildschirmfoto-2.png
Bildschirmfoto-2.png (188.67 KiB) 3686 mal betrachtet
PS. Da die Anzahl teilweise Stunden sind will ich diese in der Form 7,5 oder 7,75 eingeben.

LG Miki

Re: Eingabefeld in Kommazahlen umwandeln

von mikeleb » Sa, 07.03.2015 11:18

Hallo,

@clag: mein LO beugt sich dem val() auch nur, wenn die Eingabe englisch (Dezimaltrenner .) erfolgt. Also erst Komma durch Punkt ersetzen (soweit war das Makro ja schon) und dann val().
Bei cdbl() ist es mit Punkt und Komma gerade umgekehrt bzw. die Reaktion auf den aktuelle Spracheinstellung.

Re: Eingabefeld in Kommazahlen umwandeln

von clag » Sa, 07.03.2015 08:07

Hallo

@ R
"cDbl" tut eindeutig besser oder gleich gut wie "replace"
wobei mir noch nicht einleuchtet wieso das bei Miki W nicht funktioniert

@ Karolus
das lag mir auch schon mal kurz auf den Fingerspitzen ...
deine Tastatur scheint da sensitiver zu reagieren ;)

Re: Eingabefeld in Kommazahlen umwandeln

von Karolus » Sa, 07.03.2015 07:56

Hallo
Nur so am Rand:
Wenn "unser" Eingabewert tatsächlich eine Stückzahl oder allgemeiner eine Anzahl representiert, ist es semantisch eine ganze Zahl und keine Kommazahl.

Karolus

Re: Eingabefeld in Kommazahlen umwandeln

von F3K Total » Sa, 07.03.2015 06:34

... einer geht noch ...

Code: Alles auswählen

Cell.value = cDbl(anzahl)
Gruß R

Re: Eingabefeld in Kommazahlen umwandeln

von clag » Sa, 07.03.2015 01:56

moin zusammen,

vielleicht liegt es an der OO Version

@ mikeleb
mein AOO4.1.1 will sich nicht dem val() nicht beugen ;) (das war auch mein erster Gedanke aber ..)

Code: Alles auswählen

Sub InputTest
	odoc=thisComponent
	oSheet = oDoc.sheets(0)
	oZelle = oDoc.getCurrentSelection()
	iStartCol = oZelle.RangeAddress.StartColumn
	iStartRow = oZelle.RangeAddress.StartRow

	anzahl=inputbox ("wieviel Stück?")

	msgbox	"blank     " & anzahl & chr(10)& _
			"VAL()     " & val(anzahl)  & chr(10)& _
			"replace  " &join(split(anzahl,","),".")
	
	osheet.getCellByPosition(iStartCol,iStartRow+0).value = anzahl 
	osheet.getCellByPosition(iStartCol,iStartRow+1).value = VAL(anzahl)
	osheet.getCellByPosition(iStartCol,iStartRow+2).value = join(split(anzahl,","),".") 

end sub
check_input_01.png
check_input_01.png (2.53 KiB) 3798 mal betrachtet
check_input_02.png
check_input_02.png (2.96 KiB) 3798 mal betrachtet
check_input_03.png
check_input_03.png (1.69 KiB) 3798 mal betrachtet
???

Re: Eingabefeld in Kommazahlen umwandeln

von mikeleb » Fr, 06.03.2015 23:42

Hallo,

korrigiere den Code zu

Code: Alles auswählen

Cell.value = val(anzahl)

Re: Eingabefeld in Kommazahlen umwandeln

von Miki W » Fr, 06.03.2015 20:45

hallo clag,

hab ich eingefügt, aber leider bekomme ich immer noch eine Ganzzahl ohne Komma oder Punkt als wert raus.
Der String ändert sich von der Kommazahl in eine PunktZahl(string) aber in der Zelle steht die ganze Zahl.
LG Micha

Re: Eingabefeld in Kommazahlen umwandeln

von clag » Fr, 06.03.2015 20:15

Hallo Miki W,

das liegt an dem internen amerikanischen Zahlenformat und der Tatsache das die Inputbox einen String übergibt
wandle nach der Inputbox den String in einen Wert durch Austausch Komma gegen Punkt
oder gib gleich im amerikanischen Format in die Inputbox ein also Punkt statt Komma

Code: Alles auswählen

anzahl=inputbox ("wieviel Stück?")
anzahl = join(split(anzahl,","),".")

und gut ist

Eingabefeld in Kommazahlen umwandeln

von Miki W » Fr, 06.03.2015 19:31

Hallo Ihr Lieben,
ich klicke die Artikelzeile an und über eine Schaltfläche aktiviere ich das basic script
ich möchte über ein Eingabefeld den Wert mit einer Kommazahl eingeben und danach auch damit rechnen.
in der Übergabezelle steht jetzt die Ganzzahl ohne die Nachkommastellen.
Hat Jemand da einen Rat?

LG Micha

Code: Alles auswählen

sub ARTIKEL
dim document   as object  
oDoc=thisComponent
Sheet = odoc.sheets(2)
oCellCursor = Sheet.createCursor
oCellCursor.GotoEndOfUsedArea(False)
oCelle=oDoc.getCurrentSelection().getCellAddress()
' aktuelle Zeile, Index
oRow=oCelle.Row
Cell = Sheet.getCellByPosition(0, oRow)
Wert = Cell.string 
Cell = Sheet.getCellByPosition(1, oRow)
Wert1 = Cell.string
Cell = Sheet.getCellByPosition(3, oRow)
Wert2 = Cell.Value 

 anzahl=inputbox ("wieviel Stück?") ' hier ist mein Problem



Cell = Sheet.getCellByPosition(2, oRow) 
Cell.value = anzahl
Cell = Sheet.getCellByPosition(4, oRow) 
Cell.string = "ausgewählt"
Sheet = odoc.sheets(1) '[erstes Arbeitsblatt]
Cell = Sheet.getCellByPosition(3, 7) 
i=cell.value 

cell.value = i+1
i= i+14
Cell = Sheet.getCellByPosition(0, i)   
Cell.String = Wert 
Cell = Sheet.getCellByPosition(1, i)
Cell.String = Wert1
Cell = Sheet.getCellByPosition(2, i)
Cell.Value = anzahl
Cell = Sheet.getCellByPosition(3, i)
Cell.Value = Wert2
 
end Sub

Nach oben