Eingabe aufaddieren und wieder löschen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

HanDie
Beiträge: 2
Registriert: So, 10.12.2017 10:26

Eingabe aufaddieren und wieder löschen

Beitrag von HanDie » Di, 12.12.2017 09:31

Hallo Profis!
Als Neuling in OO-Calc möchte ich folgendes Problem lösen:
Bei einer 2-tägigen Veranstaltung will ich in C2 die Anzahl der nach und nach eintreffenden Gäste eingeben, die dann am 1. Tag in D2 und am 2. Tag in E2 aufaddiert werden sollen. Nach dem Aufaddieren muss C2 für die nächste Eingabe wieder gelöscht werden.
Wäre schön wenn mir dabei jemand helfen könnte, der sich besser auskennt als ich. :shock:
Im Voraus schon mal vielen Dank!
Euer HanDie :roll:

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

Re: Eingabe aufaddieren und wieder löschen

Beitrag von Stephan » Di, 12.12.2017 09:49

ordne dem Tabellenereignis "Inhalt geändert" (unter "Tabellenereignisse" im Kontextmenü des Tabellenreiters) folgendes Makro zu:

Code: Alles auswählen

Sub Main
With ThisComponent.CurrentController.ActiveSheet
	.getCellRangeByName("D2").Value = .getCellRangeByName("D2").Value + .getCellRangeByName("C2").Value
	.getCellRangeByName("C2").FormulaLocal = ""
End With
End Sub
oder für Tag 2:

Code: Alles auswählen

Sub Main
With ThisComponent.CurrentController.ActiveSheet
	.getCellRangeByName("E2").Value = .getCellRangeByName("E2").Value + .getCellRangeByName("C2").Value
	.getCellRangeByName("C2").FormulaLocal = ""
End With
End Sub

Gruß
Stephan

HanDie
Beiträge: 2
Registriert: So, 10.12.2017 10:26

Re: Eingabe aufaddieren und wieder löschen

Beitrag von HanDie » Sa, 16.12.2017 11:52

Hallo Stephan,
erst mal herzlichen Dank für deine schnelle Antwort.
Leider brauche ich das ganze doch etwas komplexer. Ich dachte ich bekäme das selbst hin, aber dem ist nicht so.
Also wenn das Datum in B11 im Tabebellenblatt "Start" = das aktuelle Datum (Heute()) ist, dann soll die Eingabe im Tabellenblatt "A" aus C2 in D2 übernommen werden und wenn das Datum in D11 im Tabebellenblatt "Start" = das aktuelle Datum (Heute()) ist, dann soll die Eingabe im Tabellenblatt "A" aus C2 in E2 übernommen werden, sowie jeweils die Eingabe in C2 gelöscht werden.
Das Ganze soll dann noch für C3 bis C51 wiederholt werden.
Schon mal vielen Dank im Voraus.
Gruß HanDie

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

Re: Eingabe aufaddieren und wieder löschen

Beitrag von Stephan » Sa, 16.12.2017 13:01

z.B.:

Code: Alles auswählen

Sub Main
 With ThisComponent.Sheets
  IF FORMAT(.getByName("Start").getCellRangeByName("B11").Value, "DD.MM.YYYY") = FORMAT(DATE(), "DD.MM.YYYY") Then
   For i = 2 To 51
    With .getByName("A")
     .getCellRangeByName("D"&i).Value = .getCellRangeByName("C"&i).Value
     .getCellRangeByName("C"&i).FormulaLocal = ""
    End With
   Next i
  End If
  IF FORMAT(.getByName("Start").getCellRangeByName("D11").Value, "DD.MM.YYYY") = FORMAT(DATE(), "DD.MM.YYYY") Then
   For i = 2 To 51
    With .getByName("A")
     .getCellRangeByName("E"&i).Value = .getCellRangeByName("C"&i).Value
     .getCellRangeByName("C"&i).FormulaLocal = ""
    End With
   Next i
  End If
 End With
End Sub
Gruß
Stephan

Antworten