Ein / Aus Schaltfläche

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

tsw68
***
Beiträge: 81
Registriert: Mo, 21.03.2016 07:50

Ein / Aus Schaltfläche

Beitrag von tsw68 »

Hallo

Ich möchte gerne eine Schaltfläche mit zwei Makros .
Ein mal geklickt Makro1 noch einmal geklickt makro2
Beim ersten mal Klicken der Schaltfläche sollte der Title der Schaltfläche = Ein sein und Aus beim zweiten Klick.

Ich hoffe auf eure hilfe
Bedanke mich jetzt schon 1000 mal Danke !

MFG tsw68
TrueColor
******
Beiträge: 542
Registriert: Do, 11.03.2010 11:23

Re: Ein / Aus Schaltfläche

Beitrag von TrueColor »

Nützt dir das etwas (siehe Anhang)?

Im Prinzip ist das eine Mehrfach_Fallunterscheidung (select case) anhand der Eigenschaften des Buttons (.tag, das ist das, was in Eigenschaften: Kontrollfeld > Allgemein > Zusatzinformation drinsteht).

Pro Fall werden die Eigenschaften des Buttons (Beschriftung und Tag) geändert und entsprechende Macros ausgeführt.
Dateianhänge
Demo_MultiStateToggleButton_v01_20130730.ods
(10.21 KiB) 131-mal heruntergeladen
System:
Arbeit: Windows 7 (64 bit) + Apache OpenOffice 4.1.2 (AOO412m3), LibreOffice 4.1.4.2
Home: Windows 10 (64 bit) + Apache OpenOffice 4.1.2 (AOO412m3)
tsw68
***
Beiträge: 81
Registriert: Mo, 21.03.2016 07:50

Re: Ein / Aus Schaltfläche

Beitrag von tsw68 »

hi !

Du hast den Nagel auf den Kopf getroffen.
Das ist was ich wollte, versuch aber schon die ganze zeit nur zwei Makros zum laufen zu bekommen.
Krige es aber nicht hin.
Meine Makross (Weiss u. Blau)
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Ein / Aus Schaltfläche

Beitrag von F3K Total »

Hi,
wenn du nur Ein/Aus und blau/weiß brauchst, reicht dieses einfachere Makro:

Code: Alles auswählen

Sub S_switch_button (oEv)
    oCell = ThisComponent.Sheets.getbyName("Tabelle1").getCellrangebyName("A1")
    oButton = oEv.source.model
    if oButton.Label = "Ein" then
        oButton.Label = "Aus"
        oButton.BackgroundColor = 255
        oButton.TextColor = 16777215
        oCell.Cellbackcolor = -1
        oCell.String = "Ein"
    else
       oButton.Label = "Ein"
       oButton.BackgroundColor = 16777215
       oButton.TextColor = empty
       oCell.Cellbackcolor = 255
       oCell.String = "Aus"
    endif
End Sub
Schreibe Ein oder Aus auf die Schaltfläche und binde das Makro an das Ereignis "Aktion ausführen".
Gruß R
Dateianhänge
EIN_AUS.ods
(10.27 KiB) 137-mal heruntergeladen
tsw68
***
Beiträge: 81
Registriert: Mo, 21.03.2016 07:50

Re: Ein / Aus Schaltfläche

Beitrag von tsw68 »

Super so möchte ich es haben.

möchte das aber gerne auf verschiedenen Tabellen nutzen ohne das ich den Tabellenname immer ändern muss.

Bei ( Ein ) soll ein Makro gestartet werden und bei ( Aus ) auch.
Karolus
********
Beiträge: 7440
Registriert: Mo, 02.01.2006 19:48

Re: Ein / Aus Schaltfläche

Beitrag von Karolus »

Hallo

Code: Alles auswählen

oCell = ThisComponent.CurrentController.ActiveSheet.getCellrangebyName("A1")
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
tsw68
***
Beiträge: 81
Registriert: Mo, 21.03.2016 07:50

Re: Ein / Aus Schaltfläche

Beitrag von tsw68 »

Bei ( Ein ) soll ein Makro gestartet werden und bei ( Aus ) auch.

und wo kann ich meine zwei Makros eintragen ?
Karolus
********
Beiträge: 7440
Registriert: Mo, 02.01.2006 19:48

Re: Ein / Aus Schaltfläche

Beitrag von Karolus »

Da wo du möchtest das sie ausgeführt werden schreibst du <deinMakroName> hin.

WTF: das sollte selbst einem blutigen Anfänger aus den hier im Thread gegebenen Beispielen sonnenklar sein.
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
tsw68
***
Beiträge: 81
Registriert: Mo, 21.03.2016 07:50

Re: Ein / Aus Schaltfläche

Beitrag von tsw68 »

Hi

Jetzt ist alles Klar, und ich habe alles so hinbekommen wie ich es wollte.

Alles Super gut !!!!!

Vielen Dank für die hilfe

Thema gelöst !!
TrueColor
******
Beiträge: 542
Registriert: Do, 11.03.2010 11:23

Re: Ein / Aus Schaltfläche

Beitrag von TrueColor »

tsw68 hat geschrieben: Di, 07.03.2017 12:41 Bei ( Ein ) soll ein Makro gestartet werden und bei ( Aus ) auch.

und wo kann ich meine zwei Makros eintragen ?
Deshalb hatte ich dir genau diese Datei angehängt, weil man da gut sieht, wo welche Macros aufgerufen werden (--> Call MacroName).
Und das ganze von 4 (rot, gelb, grün, off) auf 2 (ein, aus) Fälle/Schaltpositionen zu kürzen, sollte kein Akt sein. An welcher Stelle hast du ein Problem?

In F3K's Code muss du deine Calls im IF- und ELSE-Bereich eintragen (Du musst auch nicht zwingend deinen Knopf bunt machen ;-))
F3K Total hat geschrieben: Di, 07.03.2017 11:41 [Ergänzungen von TrueColor]

Code: Alles auswählen

Sub S_switch_button (oEv)
    oCell = ThisComponent.Sheets.getbyName("Tabelle1").getCellrangebyName("A1")
    oButton = oEv.source.model
    if oButton.Label = "Ein" then
        oButton.Label = "Aus"
        oButton.BackgroundColor = 255
        oButton.TextColor = 16777215
        oCell.Cellbackcolor = -1
        oCell.String = "Ein"
        Call DeinMacro1 '<-- Der Aufruf deines ersten Macros (Ergänzung TrueColor)
    else
       oButton.Label = "Ein"
       oButton.BackgroundColor = 16777215
       oButton.TextColor = empty
       oCell.Cellbackcolor = 255
       oCell.String = "Aus"
       Call DeinMacro2 '<-- Der Aufruf deines zweiten Macros (Ergänzung TrueColor)
    endif
End Sub

Sub DeinMacro1 '<-- Dein erstes Macro (Ergänzung TrueColor)
	[Dein Macro-Code]
End Sub


Sub DeinMacro2 '<-- Dein zweites Macro (Ergänzung TrueColor)
	[Dein Macro-Code]
End Sub
System:
Arbeit: Windows 7 (64 bit) + Apache OpenOffice 4.1.2 (AOO412m3), LibreOffice 4.1.4.2
Home: Windows 10 (64 bit) + Apache OpenOffice 4.1.2 (AOO412m3)
Jörg
*****
Beiträge: 392
Registriert: Mo, 21.10.2013 12:05

Re: Ein / Aus Schaltfläche

Beitrag von Jörg »

hallo Fachleute,
vielen Dank für Eure Anregungen. So erspart man sich eine Reihe von Schaltfläche. (bei mir jedenfalls :lol: )

Code: Alles auswählen

Sub Wechsel_Preislisten (oEv)
    oCell = ThisComponent.Sheets.getbyName("Eingabemaske Abr_Rechnung").getCellrangebyName("I13")
    oButton = cmd
   cmd= oEv.source.model
    if cmd.Label = "Neue Preisliste aktivieren" then
        cmd.Label = "Alte Preisliste aktivieren"
       ' oButton.BackgroundColor = 255
        'oButton.TextColor = 16777215
        'oCell.Cellbackcolor = -1
        oCell.String = "Achtung! Neue Preisliste aktiv"
        neue_Preisliste ' Makro 
    else
       cmd.Label = "Neue Preisliste aktivieren"
       'oButton.BackgroundColor = 16777215
       'cmd.TextColor = empty
       'oCell.Cellbackcolor = 255
       oCell.String = "Achtung! Alte Preisliste aktiv"
       alte_preisliste ' Makro
    endif
End Sub
Gruß Jörg

Win 10 Pro AOO 4.1.15
TrueColor
******
Beiträge: 542
Registriert: Do, 11.03.2010 11:23

Re: Ein / Aus Schaltfläche

Beitrag von TrueColor »

Jörg hat geschrieben: Mi, 08.03.2017 09:43 So erspart man sich eine Reihe von Schaltfläche. (bei mir jedenfalls :lol: )
.. wenn du deine Macros in einer bestimmten Reihenfolge durchgehen willst/musst, oder wenn's egal ist, ob du ein Macro "umsonst" ausführst, weil's kaum Performance kostet. Andernfalls kannst du auch ein Listenfeld/Kombinationsfeld (die Pulldowns) verwenden. Vom Code ist das im Prinzip das gleiche:

Code: Alles auswählen

Sub AuswahlSortieren (oEvent)
    Dim oSheet As Object
    Dim oBereich As Object
    Dim sName As String
    
    oSheet = ThisComponent.CurrentController.ActiveSheet
    oBereich = oSheet.getCellRangeByPosition(0,0,GetLastUsedCol(oSheet),GetLastUsedRow(oSheet))

    'sName = oEvent.Source.SelectedText 'Verwendung bei KomboBox
    sName = oEvent.Source.SelectedItem 'Verwendung bei Listenfeld
    
    Select Case sName
      Case "Sortierung: Termin Kunde"
        SortBy_TKunde (oBereich)
      Case "Sortierung: Termin Prod."
        SortBy_TProd (oBereich)
      Case "Sortierung: Fertigstellung"
        SortBy_Fertig (oBereich)
      Case "Sortierung: Status"
        SortBy_Status (oBereich)
      Case "Sortierung: Bauvorhaben"
        SortBy_BV (oBereich)
    End Select
End Sub
System:
Arbeit: Windows 7 (64 bit) + Apache OpenOffice 4.1.2 (AOO412m3), LibreOffice 4.1.4.2
Home: Windows 10 (64 bit) + Apache OpenOffice 4.1.2 (AOO412m3)
tsw68
***
Beiträge: 81
Registriert: Mo, 21.03.2016 07:50

Re: Ein / Aus Schaltfläche

Beitrag von tsw68 »

Hallo !

habe es geschaft.
Super gut

vielen Dank !

MFG tsw68
Antworten