Werte in eine Zelle eingeben und automatisch addieren

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

malo
Beiträge: 5
Registriert: Sa, 23.08.2008 15:39

Werte in eine Zelle eingeben und automatisch addieren

Beitrag 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
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Werte in eine Zelle eingeben und automatisch addieren

Beitrag 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
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
malo
Beiträge: 5
Registriert: Sa, 23.08.2008 15:39

Re: Werte in eine Zelle eingeben und automatisch addieren

Beitrag 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
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Werte in eine Zelle eingeben und automatisch addieren

Beitrag 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
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
malo
Beiträge: 5
Registriert: Sa, 23.08.2008 15:39

Re: Werte in eine Zelle eingeben und automatisch addieren

Beitrag 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
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Werte in eine Zelle eingeben und automatisch addieren

Beitrag von Karolus »

Hallo
Ja, den Tabellenindex in der Klammer:

Code: Alles auswählen

osheet = odoc.sheets(1) 'zweites Tabellenblatt
...hinter dem 'Hochkomma steht nur Kommentar zur Erklärung.

Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
malo
Beiträge: 5
Registriert: Sa, 23.08.2008 15:39

Re: Werte in eine Zelle eingeben und automatisch addieren

Beitrag von malo »

Hallo Karo,

super das klappt. :D Herzlichen Dank für Deine Hilfe!

viele Grüße malo
Henning J.
Beiträge: 7
Registriert: Do, 28.08.2008 00:40

Re: Werte in eine Zelle eingeben und automatisch addieren

Beitrag 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?
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Werte in eine Zelle eingeben und automatisch addieren

Beitrag 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
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Henning J.
Beiträge: 7
Registriert: Do, 28.08.2008 00:40

Re: Werte in eine Zelle eingeben und automatisch addieren

Beitrag von Henning J. »

Hey danke. Ich werde es mal Versuchen.
Henning J.
Beiträge: 7
Registriert: Do, 28.08.2008 00:40

Re: Werte in eine Zelle eingeben und automatisch addieren

Beitrag 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
Antworten