Seite 1 von 1
Werte in eine Zelle eingeben und automatisch addieren
Verfasst: Sa, 23.08.2008 20:48
von malo
Hallo,
ich möchte gerne Zahlen in eine bestimmte Zelle eintragen, die mit der Zahl die bereits drin enthalten ist addiert wird. Ich könnte mir vorstellen, dass das evtl. nicht möglich ist. Alternativ würde ich dann die Zahlen in eine andere Zelle eingeben, die dann zu dem Wert der ersten Zelle addiert wird. Sozusagen eine Zelle als Eingabezelle die andere als Ergebniszelle.
Viele Grüße Malo
Re: Werte in eine Zelle eingeben und automatisch addieren
Verfasst: Sa, 23.08.2008 21:12
von Karolus
Hallo
malo hat geschrieben:.....Alterrnativ würde ich dann die Zahlen in eine andere Zelle eingeben, die dann zu dem Wert der ersten Zelle addiert wird. Sozusagen eine Zelle als Eingabezelle die andere als Ergebniszelle.
Das lässt sich per Makro realisieren.
Folgendes addiert bei jedem Durchlauf den Wert aus A1 zum bisherigen Wert von B1 hinzu.
Code: Alles auswählen
Sub A1_zu_B1_addieren
odoc = thisComponent
osheet = odoc.sheets(0) 'erstes Tabellenblatt
eingabe = osheet.getcellrangebyname("A1").value
ausgabe = osheet.getcellrangebyname("B1").value
osheet.getcellrangebyname("B1").value = eingabe + ausgabe
End Sub
Gruß Karo
Re: Werte in eine Zelle eingeben und automatisch addieren
Verfasst: Sa, 23.08.2008 22:12
von malo
Hallo Karo,
danke für deine Antwort. Ich habe leider noch wenig Ahnung von sowas. Wie muss ich das Makro in die Tabelle einbinden?
Viele Grüße Malo
Re: Werte in eine Zelle eingeben und automatisch addieren
Verfasst: So, 24.08.2008 11:34
von Karolus
Hallo
Ich hab das etwas erweitert, in der Form kannst du es mit einer Tastenkombination verknüpfen 2 , die du anstelle der enter-Taste zur Eingabebestätigung benutzt.
1 Quelltext übernehmen
2 Tastenkombi
Code: Alles auswählen
sub enter_simulieren_und_A1_zu_B1_addieren
rem Anfang aufgezeichneter Code
rem define variables
dim document as object
dim dispatcher as object
rem get access to the document
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())
'Ende aufgezeichneter Code
odoc = thisComponent
osheet = odoc.sheets(0) 'erstes Tabellenblatt
eingabe = osheet.getcellrangebyname("A1").value
ausgabe = osheet.getcellrangebyname("B1").value
osheet.getcellrangebyname("B1").value = eingabe + ausgabe
end sub
Gruß Karo
Re: Werte in eine Zelle eingeben und automatisch addieren
Verfasst: So, 24.08.2008 15:43
von malo
Hallo Karo,
super das funktioniert erstmal. jetzt wollte ich das Makro noch auf meine Bedürfnisse anpassen. Dann funktioniert aber das Makro nicht mehr. Ich wollte die Berechnung auf dem zweiten Tabellenblatt mit den Zellen C25 als Eingabefeld und C27 zur Ausgabe.
Code: Alles auswählen
osheet = odoc.sheets(0) 'zweites Tabellenblatt
eingabe = osheet.getcellrangebyname("C25").value
ausgabe = osheet.getcellrangebyname("C27").value
osheet.getcellrangebyname("C27").value = eingabe + ausgabe
Dafür habe ich das Makro wie oben verändert. Muss ich noch mehr anpassen?
Viele Grüße Malo
Re: Werte in eine Zelle eingeben und automatisch addieren
Verfasst: So, 24.08.2008 16:17
von Karolus
Hallo
Ja, den Tabellenindex in der Klammer:
...hinter dem 'Hochkomma steht nur Kommentar zur Erklärung.
Gruß Karo
Re: Werte in eine Zelle eingeben und automatisch addieren
Verfasst: So, 24.08.2008 16:41
von malo
Hallo Karo,
super das klappt.

Herzlichen Dank für Deine Hilfe!
viele Grüße malo
Re: Werte in eine Zelle eingeben und automatisch addieren
Verfasst: Do, 28.08.2008 18:51
von Henning J.
Ich habe das noch nicht ganz verstanden. (tut mir leid)
Ich zitiere mal meinen Thread
Henning J. hat geschrieben:Hey,
ich würde gerne eine Tabelle erstellen die mir sozusagen ein Feld speichert.
Also ich gebe in C1 den Wert 5 ein. Dieser Wert soll nun in C2 gespeichert werden und von C3 Aufgenommen werden.
Wenn ich nun C1 den Wert 6 zuweise soll dieser in C2 wieder gespeichert werden aber nun von C3 addiert werden und asugegeben, sodas am ende bei C1 6 steht bei C2 6 steht aber bei C3 11 steht.
Falls das einer nicht versteht versuche ich das Verständlicher auszudrücken. (kanns grade aber nciht sonst würde ich es machen xD )
Nun meine Frage:
Welchen Befehl brauche ich dafür? Und wie soll ich den nutzen?
Danke schonmal im Vorraus.
Gruß Henning
geht das auch mit dem Makro?
Re: Werte in eine Zelle eingeben und automatisch addieren
Verfasst: Do, 28.08.2008 19:10
von Karolus
Hallo
Ja es geht, wenns auf deine Zelladressen umgeschrieben wird:
Code: Alles auswählen
sub enter_simulieren_und_C1_zu_C3_addieren
rem Anfang aufgezeichneter Code
rem define variables
dim document as object
dim dispatcher as object
rem get access to the document
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())
'Ende aufgezeichneter Code
odoc = thisComponent
osheet = odoc.sheets(0) 'erstes Tabellenblatt
eingabe = osheet.getcellrangebyname("C1").value
osheet.getcellrangebyname("C2").formula = "=C1"
ausgabe = osheet.getcellrangebyname("C3").value
osheet.getcellrangebyname("C3").value = eingabe + ausgabe
end sub
siehe meine Antwort vom 24.8 11:34 Uhr
Gruß Karo
Re: Werte in eine Zelle eingeben und automatisch addieren
Verfasst: Do, 28.08.2008 19:45
von Henning J.
Hey danke. Ich werde es mal Versuchen.
Re: Werte in eine Zelle eingeben und automatisch addieren
Verfasst: Do, 28.08.2008 19:59
von Henning J.
Also es Funktioniert zwar, aber eigentlich möchte ich, dass es sofort berechnet wird. Also ich gebe die zahl ein drücke enter und es wird berechnet. Da ich eine Tabelle habe mit 25 Zeilen und ich nicht für jede ne andere Taste drücken möchte. Und wenn ich das mit allen gleichzeitig machen würde würde er ja die alten werte auch hoch addieren.
Danke
Gruß Henning