Seite 1 von 1

Schaltfläche um Werte zu erhöhen +1

Verfasst: Mo, 22.05.2017 20:57
von FallenAngel
Hallo miteinander,

ich möchte für eine Kundenzählung in einer Tablle mit Schaltflächen arbeiten. Wie ich die Schaltfläche Programmiere damit Sie mir eine bestimmte Zelle den Wert erhöht bekomme ich ja noch hin. Problem ist folgendes, der Wert in der Tabelle am richtigen Datum zur richtigen Uhrzeit eingetragen werden. Kann mir hier jemand helfen?

Re: Schaltfläche um Werte zu erhöhen +1

Verfasst: Mo, 22.05.2017 22:54
von komma4
FallenAngel hat geschrieben: Mo, 22.05.2017 20:57in der Tabelle am richtigen Datum zur richtigen Uhrzeit eingetragen werden.

Willkommen im Forum!

Du möchtest wissen, wie man die gewählte Zelle bekommt?

Code: Alles auswählen

sel = ThisComponent.getCurrentSelection()
Damit hast Du die ausgewählte Zelle.
Wenn Du die Schaltfläche operabel machen willst, ohne eine Zelle gewählt zu haben, musst Du Datum und Uhrzeit ebenfalls mitgeben (also: ein Formular entsprechend programmieren).
Dann wird daa Auffinden der "richtigen" Zelle allerdings nicht trivial.

Hilft Dir das weiter?

Re: Schaltfläche um Werte zu erhöhen +1

Verfasst: Di, 23.05.2017 13:07
von F3K Total
Hallo FallenAngel,
du hast Glück, ich wollte wissen ob ich es hinbekomme. Habe deine Datei um die "schmalen" Spalten reduziert und dann dieses Makro geschrieben:

Code: Alles auswählen

Sub S_countUp(event)
    dim lTime as double
    lTime = timevalue(time())
    if lTime < 1/4 then
        msgbox "Es ist vor 6 Uhr, keine Zählung möglich"
        exit sub
    endif
    if left(event.source.model.label,1) = "M" then
        ncolumn = int(lTime * 12) + 1
    else
        ncolumn = int(lTime * 12) + 2
    endif
    oSheet = ThisComponent.Sheets.getbyname("Kundenzählung")
    aDates = oSheet.getcellrangebyposition(0,2,0,32).data
    for i = 0 to ubound(aDates)
        if aDates(i)(0) = Date() then
            nRow = i+2
        endif
    next i
    oCell = oSheet.getcellbyposition(nColumn,nRow)
    oCell.Value = oCell.value + 1
End Sub
Scheint zu funktionieren.
Gruß R

Re: Schaltfläche um Werte zu erhöhen +1

Verfasst: Di, 23.05.2017 14:53
von F3K Total
Hallo,
es war leider ein Fehler im Makro, es wurde die falsche Zeit-Spalte berechnet, dies sollte funzen:

Code: Alles auswählen

Sub S_countUp(event)
    dim lTime as double
    lTime = timevalue(time())
    if lTime < 1/4 then
        msgbox "Es ist vor 6 Uhr, keine Zählung möglich"
        exit sub
    endif
    if left(event.source.model.label,1) = "M" then
        ncolumn = (int(lTime * 12)*2) - 5
    else
        ncolumn = (int(lTime * 12)*2) - 4
    endif
    oSheet = ThisComponent.Sheets.getbyname("Kundenzählung")
    aDates = oSheet.getcellrangebyposition(0,2,0,32).data
    for i = 0 to ubound(aDates)
        if aDates(i)(0) = Date() then
            nRow = i+2
        endif
    next i
    oCell = oSheet.getcellbyposition(nColumn,nRow)
    oCell.Value = oCell.value + 1
End Sub
Gruß R

Re: Schaltfläche um Werte zu erhöhen +1

Verfasst: Di, 23.05.2017 15:22
von FallenAngel
Danke R, genau so wie ich es meinte !

Vielen Dank :)