Rechnen

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: Rechnen

Re: Rechnen

von turtle47 » Di, 15.07.2008 09:57

Hallo sirialzz,
sirialzz hat geschrieben:Oder das tausender Zeichen auszufiltern.
Folgender Code erledigt das:

Code: Alles auswählen

Sub Zelle_Berechnen_Short_Cut
	GlobalScope.BasicLibraries.loadLibrary("Tools")
	document   = ThisComponent.CurrentController.Frame
	dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
	dim args1(1) as new com.sun.star.beans.PropertyValue
	args1(0).Name = "By"
	args1(0).Value = 1
	args1(1).Name = "Sel"
	args1(1).Value = false
	dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args1())
	dispatcher.executeDispatch(document, ".uno:GoUp", "", 0, args1())
	odoc = thiscomponent
	MyCell = oDoc.getCurrentSelection()
	myString = MyCell.string
	if  myString =  "" then
	exit Sub
	end if	
	newString = ReplaceString(myString, "",".")
	dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, args1())   
	oDoc.CurrentSelection().formulalocal = "=" & newString
End Sub
Schöne Grüsse

Jürgen

Re: Rechnen

von Karolus » Mo, 14.07.2008 22:51

Hallo Willnix
Ich hab Jürgens Makro leicht modifiziert, wenn du dieses mit einer Tastenkombi verknüpfst, die du statt Entertaste oder → verwendest hast du das gewünschte Verhalten.

Code: Alles auswählen

Sub Zelle_Berechnen_Short_Cut
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "By"
args1(0).Value = 1
args1(1).Name = "Sel"
args1(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args1())
dispatcher.executeDispatch(document, ".uno:GoUp", "", 0, args1())
	odoc = thiscomponent
	MyCell = oDoc.getCurrentSelection()
	myString = MyCell.string
	if 	myString =  "" then
	exit Sub
	end if
dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, args1())	
	oDoc.CurrentSelection().formulalocal = "=" & myString
End Sub
http://www.ooowiki.de/MakrosMitEinemKlick

Gruß Karo

Re: Rechnen

von Willnix » Mo, 14.07.2008 22:15

Hall sirialzz,
ich suche auch nach einer solchen Lösung. Ich habe hier ein VBA-Makro, dass die Aufgabe in Excel löst:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 1 Then
x = Application.WorksheetFunction.Substitute(Target.Value, ",", ".")
Target.Offset(0, 1).Formula = "=" & x
End If
End Sub

Hier gibt man in einer Zelle der Spalte 1 einen Rechenansatz ein, beim Verlassen der Zelle wird automatisch das Ergebnis in der Zelle rechts daneben angezeigt.
Leider Funktioniert es nicht in openOffice, auch nicht in oxygenoffice.
Ich habe das Makro irgendwo abgeschrieben, da ich selbst weder von VBA, noch von der Skriptsprache in openoffice Ahnung habe, bin ich auch nicht in der Lage das Makro umzuschreiben, vielleicht kann jemand helfen

Die Tabelle von turtle47 habe ich probiert. Es kommt der Sache ja schon ziemlich nahe. Leider muss man die Berechnung immer gesondert starten. Man macht da schnell Fehler, wenn man z.B. den Rechenansatz nachträglich ändert und vergisst die Berechnung erneut zu starten.
VG Willnix

Re: Rechnen

von turtle47 » Mo, 14.07.2008 09:20

Hallo sirialzz ,

auch wenn ich jetzt wieder gehauen werde, aber Du hast ja selber geschrieben:
sirialzz hat geschrieben:Ich suche für Open Office eine Funktion oder ein Makro
In angehängter Tabelle kannst Du in Spalte A die Formel eingeben und mit Enter abschliessen.
Dann in die Zelle klicken und anschliessend die Schaltfläche "Berechnen" drücken. In nebenstehender Zelle wird dann das Ergebnis angezeigt.

Hilft das weiter?

Jürgen
Zellwert_berechnen.ods
(10.53 KiB) 89-mal heruntergeladen

Re: Rechnen

von AhQ » So, 13.07.2008 19:58

Hallo,

ganz klar ist mir zugegebenermßen auch nicht, was Du willst, aber vielleicht geht es ja auch anders herum. Du schreibst in B2 Deine Formel und in A1 =RECHTS(FORMEL(B2);LÄNGE(FORMEL(B2))-1)

Dann hast Du in B2 das Ergebnis stehen und in A1 die verwendete Formel ohne das "="-Zeichen

Viele Grüße
AhQ

Re: Rechnen

von lorbass » So, 13.07.2008 17:37

Sorry, dann hab ich die Aufgabenstellung falsch verstanden.

Gruß
lorbass

Re: Rechnen

von lorbass » So, 13.07.2008 15:01

Feld A1: =3+2*45/(4-2)
Feld B2: =A1

Gruß
lorbass

Nach oben