HILFE!!! Zirkelbezug, Makro & VBA ?????

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

calc-greenhorn
Beiträge: 2
Registriert: Fr, 01.02.2013 16:46

HILFE!!! Zirkelbezug, Makro & VBA ?????

Beitrag von calc-greenhorn »

Hallo und vielen Dank das es nette Leute gibt, die anderen hier im Forum helfen.
Ich brauche auch Hilfe.

In einer Zabelle möchte ich Zelle B2 mit C2 addieren. Das Ergebnis soll jedoch in C2 stehen.
Bei einer neuen Eingabe einer Zahl in B2, soll diese neue Zahl zu C2 (vorheriges Ergebnis)addiert werden.
Das neue Ergebnis soll wieder in C2 stehen.

Ein Beispiel:

In B2 schreibe ich 12 in C2 ist noch null. Dann soll in C2 jetzt 12 stehen.
Wenn ich dann einen neuen Wert in B2 eintrage, z.B. 4, dann soll in C2 jetzt 16 stehen.
Gebe ich dann in B2 z.B. 80 ein, soll in C2 96 stehen.

Kann mir damit jemand helfen bitte? Falls es sowas wie ein Makro oder VBA etc. wird...bitte mir auch
(für den absoluten Laien) den genauen Weg wo alles eingetragen und eingestellt wird erklären.

Ich wäre für eine Hilfe wirklich sehr dankbar.

Im übrigen: Ich brauche das jeden Monat in einer anderen Spalte. Januar ist C2, Februar ist D2 etc. Nur B2 bleibt gleich.
Aber das kann ich ja sicher dann individuell ändern?

Vielen Dank!

Mathias
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: HILFE!!! Zirkelbezug, Makro & VBA ?????

Beitrag von Stephan »

Erstelle folgende Funktion:

Code: Alles auswählen

Function Eintrag(x)
  With ThisComponent.Sheets().GetByName("Tabelle1")
    tmp = .getCellRangeByName("C2").Value
    .getCellRangeByName("C2").Value = tmp + VAL(x)
  End With
End Function
Ordne der Zelle B2 folgenden Daten-Gültigkeitseintrag zu:

Krierien:
Zulassen: Textlänge
Daten: gleich
Wert: 12

(DIe genauen Einträge sind egal, es muß nur etwas sein was garantiert nie eingegeben werden soll wie hier ein Text mit 12 Zeichen)

Fehlermeldung:
ordne hier obige Funktion zu als auszuführendes Makro



Gruß
Stephan
Dateianhänge
Eingabe-Summe.ods
(8.68 KiB) 59-mal heruntergeladen
F3K Total
********
Beiträge: 3723
Registriert: Mo, 28.02.2011 17:49

Re: HILFE!!! Zirkelbezug, Makro & VBA ?????

Beitrag von F3K Total »

Hallo,
eigentlich arbeitet man mit einem Tabellenkalkulationsprogramm anders.
Man trägt die Werte in Zellen ein und berechnet die Summe per Formel.
Anbei trotzdem eine Lösung für deine Arbeitsweise.
Wähle im Feld B1 den aktuellen Monat und trage in B2 den zu addierenden Wert ein. Verläßt Du B2 oder drückst du die Enter-Taste, wird der Wert per Makro zum gewählten Monat addiert.
Das Makro S_add_value wird über das Tabellenereignis "Inhalt geändert" ausgelöst (rechte Maustaste auf Tabellenreiter, Tabellenereignisse ...) Es liest den aktuellen Monatsnamen aus Zelle B1 aus, berechnet die Monatszahl (Januar = 1, Februar =2 usw.) mit der function get_nMonth und legt über diese Zahl die Zelle fest, zu der der Wert aus B2 addiert werden soll.
Das der aktuelle Monat grün hinterlegt wird, passiert über "Extras/Format/bedingte Formatierung"

Viel Spaß damit
Gruß R
Edit: Da war Stephan wohl 2 Min schneller als ich, nun hast Du also zwei Lösungsmöglichkeiten
Dateianhänge
Addieren.ods
(10.17 KiB) 70-mal heruntergeladen
F3K Total
********
Beiträge: 3723
Registriert: Mo, 28.02.2011 17:49

Re: HILFE!!! Zirkelbezug, Makro & VBA ?????

Beitrag von F3K Total »

Hi,
folgende Vorgehensweise für meine Datei, Stephans wird ähnlich sein
  • Datei Addieren.ods hier anklicken, Downloadfenster öffnet sich, Datei lokal auf deinem Recher speichern
  • OpenOffice starten -> Menü Extras/Optionen/OpenOffice.org/Sicherheit/Makrosicherheit-> auf "Mittel" stellen, dann wirst Du beim Öffnen einer Datei, die Makros enthält, gefragt ob sie ausgeführt werden sollen.
  • Menü Datei -> Öffnen..., heruntergeladene Datei Addieren.ods suchen und öffnen.
  • Sicherheiswarnung: Makros aktivieren anklicken, sonst läuft das Makro eben nicht, und dann passiert natürlich auch nichts.
  • Zahl in Feld B2 eingeben
  • Eingabetaste drücken oder B2 per Mausklick verlassen
Gruß R
Zuletzt geändert von F3K Total am Sa, 02.02.2013 14:56, insgesamt 3-mal geändert.
paljass
******
Beiträge: 803
Registriert: Do, 25.10.2012 07:25

Re: HILFE!!! Zirkelbezug, Makro & VBA ?????

Beitrag von paljass »

Hallo Mathias,
was glaubst du, warum die beiden bestimmte Zellen in ihren Tabellen eingefärbt haben? Doch wahrscheinlich nicht, weil es die Farbe gerade im Baumarkt in SOnderangebot gab :lol:

Stephan: Eingabe in B2, Ausgabe in C2
F3K: Eingabe in B2, Ausgabe in C2


Gruß
paljass
EDV ist wie U-Boot fahren - machst du ein Fenster auf, fangen die Probleme an.
F3K Total
********
Beiträge: 3723
Registriert: Mo, 28.02.2011 17:49

Re: HILFE!!! Zirkelbezug, Makro & VBA ?????

Beitrag von F3K Total »

paljass hat geschrieben:F3K: Eingabe in B2, Ausgabe in C2
kleiner Zusatz: Auswahl des aktuellen Monats in B1
Gruß R
F3K Total
********
Beiträge: 3723
Registriert: Mo, 28.02.2011 17:49

Re: HILFE!!! Zirkelbezug, Makro & VBA ?????

Beitrag von F3K Total »

Hallo,
per PN habe ich noch diese Fragen bekommen.
calc-greenhorn hat geschrieben:1. Kannst Du mir noch erklären wie Du das Makro erstellt hast und wie der
Code (?) ist
und wie und wo man es in Calc installiert?
Dann lerne ich was für die Zukunft. Aber bitte wieder für Dummies erklären
lol.

2. Falls ich mal irgendwann so etwas (gleiches Makro) irgenwo benötige, und
die Zeilen
oder Spalten wären andere. Kann man dann dieses Makro irgendwie ändern?
Falls ja, wie und was.
Zu
  1. Schau mal bei geöffneter Datei unter Extras/Makros/Makros verwalten/OpenOffice.org Basic... und navigiere links zu Addieren.ods/Standard/Addieren -> Dann siehst Du rechts "S_add_value" und "get_nMonth". Klicke auf "Bearbeiten" dann siehst du die beiden Routinen.

    Code: Alles auswählen

    Sub S_add_value(event)
        if event.AbsoluteName = "$Tabelle1.$B$2" then 'wenn die Zelle B2 geändert wurde (event = B2)
            osheet = thiscomponent.sheets.getbyname("Tabelle1")
            omonthcell = osheet.getcellbyposition(1,0)'B1
            sMonth = omonthcell.String 'aktuellen Monatsnamen aus B1 auslesen
            nMonth = get_nMonth(sMonth)'mit function get_nMonth in Zahl umwandeln
            otargetcell = osheet.getcellbyposition(1 + nMonth,1)'Zielzelle bestimmen
            otargetcell.value = otargetcell.value + event.Value 'Wert aus B2 zu Zielzellenwert addieren
            if otargetcell.value = 0 then otargetcell.formula = ""
        endif
        
    end sub
    
    function get_nMonth(sMonth) as integer
        aMonth = Array("Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember")
        for i = 0 to 11
            if sMonth = aMonth(i) then
                get_nMonth = i+1
                exit for
            endif 
        next i
    end function
  2. Klar, wenn man weiß was man tut, kann man die Routinen auch entsprechend anpassen. Einen Basic-Kurs kann ich Dir hier aber nicht geben, in der Hilfe (F1) findest Du einiges über Starbasic und auch hier im Forum
Gruß R
calc-greenhorn
Beiträge: 2
Registriert: Fr, 01.02.2013 16:46

Re: HILFE!!! Zirkelbezug, Makro & VBA ?????

Beitrag von calc-greenhorn »

Nochmals...vielen Dank!

Es ist wirklich toll wie hilfreich man hier im Forum ist.

Dir persönlich ein besonderes Dankeschön für die Mühe und die Hilfe.
Klappt super!

Liebe Grüsse,

Mathias
Antworten