🙏 Helfen Sie mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Macro bei Auswahl (anklicken) einer Zelle starten.

Alles zur Programmierung im LibreOffice.
Berndkunz2000
Beiträge: 5
Registriert: Mo 16. Dez 2024, 16:57

Macro bei Auswahl (anklicken) einer Zelle starten.

Beitrag von Berndkunz2000 » Mo 16. Dez 2024, 18:13

Hallo
Versuche gerade erste Schritte in Libre Office Basic.
Ich habe ein Dialogfeld erstellt, dass ich mit einem Button auf der Tabellenseite starten kann.

In Excel kann ich ein Makro mit der Auswahl einer Zelle in einer definierten Spalte starten.
Im Beispiel kann ich bei einer leeren Zelle das Datum aus dem Dialog setzen.

Geht das auch in Libre Office?

Excel Beispiel im Bild.
Bild
Danke
Bernd
Dateianhänge
Datumsdialog.jpg
Datumsdialog.jpg (55.29 KiB) 1912 mal betrachtet

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Macro bei Auswahl (anklicken) einer Zelle starten.

Beitrag von F3K Total » Mi 18. Dez 2024, 14:16

Moin,
na klar geht das, Beispieldatei mit Makro anbei.
SETDATE.png
SETDATE.png (19.04 KiB) 1805 mal betrachtet
Gruß R
Dateianhänge
SET_DATE.ods
(18.51 KiB) 190-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO

Berndkunz2000
Beiträge: 5
Registriert: Mo 16. Dez 2024, 16:57

Re: Macro bei Auswahl (anklicken) einer Zelle starten.

Beitrag von Berndkunz2000 » So 22. Dez 2024, 05:35

Danke :)
Ich dachte eher an so was:
"
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rngBereich As Range
Set rngBereich = Range("A1:A120")
If Not Intersect(Target, rngBereich) Is Nothing Then
Kalender.Show
End If

Dim EingabeBereich As Range
Set EingabeBereich = Range("B3:P120")
If Not Intersect(Target, EingabeBereich) Is Nothing Then
Eingabe.Show
End If
End Sub
"
Habe mich in verschiedenen Quellen umgesehen aber keine Lösung gefunden.
Dann versuch ich es mit dem Doppelklick und dann einem Auswahlmenü für verschiedene Makros(Formulare)
Schade, aber MS fährt die Unterstützung für VBA auch immer weiter zurück.
Neue Zeit, neue Wege.
Friedliche Festtage

mikele
* LO-Experte *
Beiträge: 1929
Registriert: Mo 1. Aug 2011, 20:51

Re: Macro bei Auswahl (anklicken) einer Zelle starten.

Beitrag von mikele » So 22. Dez 2024, 13:25

Hallo,
es gibt in Calc auch das Ereignis "Auswahl geändert". Leider ist die Auswertung dieses Ereignisses verzwickt, da je nachdem wie die Auswahlk geändert wird (per Tastatur, per Maus, einfache oder Mehrfachauswahl, ...) das Ereignis mehrfach ausgelöst wird.
Gerade in deinem Fall, wo du eine Dialog aufrufen wollst, würde das zu ganz schöner Verwirrung führen.
Der Weg über das Ereignis "Doppelklick" (oder auch "Rechtsklick") ist das erfolgreicher.
Für die EInschränkung auf einen Zellbereich würde ich F3KTotal's Makro etwas abwandeln:

Code: Alles auswählen

Sub Open_Dialog(oEvent) as boolean
    DialogLibraries.loadLibrary("Standard")
    osheet = thisComponent.CurrentController.activeSheet
    if oevent.supportsservice("com.sun.star.sheet.SheetCell") then
    	
        if osheet.getCellRangeByName("A2:A120").queryIntersection(oevent.RangeAddress).Count>0 then  'Bereich A2:A120
            oCell = oEvent
            odlgdate = CreateUnoDialog(DialogLibraries.Standard.dlgdate)
            odlgdate.execute
        endif
    endif
    Open_Dialog=true	'wichtig, um die Systemwirkung des Doppelklicks zu umgehen
End Sub
Das kannst du dann auch auf weitere Bereiche erweitern, in denen du verschiedene verschiedene Sub startest.
Allseits schöne Feiertage!
Gruß,
mikele

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Macro bei Auswahl (anklicken) einer Zelle starten.

Beitrag von F3K Total » Mo 23. Dez 2024, 15:20

Moin,
ich hätte da noch eine weitere Variante. In LibreOffice ist es möglich, das Kontextmenü nach eigenen Bedürfnissen anzupassen. Wie ich finde, eine prima Sache.
Die Einstellung läßt sich global, für alle Libreoffice Calc Dokumente, aber auch lokal in einer einzelnen Datei speichern.
So können verschiedenste Makros über das Kontextmenü gestartet, aber z.B. auch Zellformatvorlagen zugewiesen werden.
Ein Beispiel:
KONTEXT.png
KONTEXT.png (62.44 KiB) 1723 mal betrachtet
Über das Kontextmenü kann sowohl der Dialog zum Einfügen des Datums aufgerufen, als auch den gerade selektierten Zellen eine der drei gewünschten Zellvorlagen rot, gelb oder grün zugewiesen werden.
Beispieldatei (Kontextmenü lokal in der Datei gespeichert) anbei.

Gruß R
Dateianhänge
SET_DATE_RIGHTCLICK.ods
(21.05 KiB) 259-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO

Berndkunz2000
Beiträge: 5
Registriert: Mo 16. Dez 2024, 16:57

Re: Macro bei Auswahl (anklicken) einer Zelle starten.

Beitrag von Berndkunz2000 » Do 26. Dez 2024, 10:57

Hallo F3K Total (R)
Hey, Sorry hätte früher Fragen sollen: Habe jetzt den Reiter "Bereich" entdeckt.
Damit habe ich die Befehle gefunden und komme jetzt weiter.
Wollte den Text aber nicht löschen, vielleicht hilft es ja einem andern auch noch.
DANKE


Ich habe jetzt hin und her probiert finde aber den Weg nicht was in das Kontextmenü zu bekommen.
Unter Ziel finde ich nicht das richtige.
Konnte einen Dialog ins obere Menüband einfügen aber zum Kontextmenü find ich keinen Zugang.
Deine Einträge (rot, gelb, grün, Datum Einfügen) find ich nicht in den Einstellungen.
Mit Extras/anpassen/ Kontextmenüs
Kategorie/Makros und Ziel? komme ich nicht weiter.
Kannst Du mich bitte mal Schrittweise zu den Farbtasten ins Kontextmenü einfügen führen?
So richtig weiter komme ich da auch mit dem Handbuch nicht.
Danke
Gruß Bernd

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Macro bei Auswahl (anklicken) einer Zelle starten.

Beitrag von F3K Total » Do 26. Dez 2024, 12:02

Habe eben keiner Rechner, daher aus dem Kopf:
Für die Farben habe ich zunöchst die drei Zellvorlagen rot, gelb und gün angelegt.
Dann über Extras/Anpassen/Kontextmenüs
Links ganz herunterscrollen, da finden sich Makros und Vorlagen.
Rechts das aktuelle Dokument als Speicherort, dann irgendwo "Zelle" als das Kontextmenü, dass angepasst werden soll anklicken, dann hinzufügen...
So etwa, bissel probieren.
Damit die Farben auch als Symbol angezeigt werden, habe ich eine Symbolleiste erzeugt, in der ich die Symbole zuordnen konnte, diese Leiste ist ausgeblendet.

Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO

Berndkunz2000
Beiträge: 5
Registriert: Mo 16. Dez 2024, 16:57

Re: Macro bei Auswahl (anklicken) einer Zelle starten.

Beitrag von Berndkunz2000 » Do 26. Dez 2024, 16:05

:) Danke

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Macro bei Auswahl (anklicken) einer Zelle starten.

Beitrag von F3K Total » Fr 27. Dez 2024, 09:54

Moin,
hier noch zwei erklärende Bilder:
Erstellung des Kontextmenüs innerhalb der Datei SET_DATE_RIGHTCLICK.ods
KM.png
KM.png (33.49 KiB) 1661 mal betrachtet
Damit die Symbole erscheinen, habe ich die Symbolleiste ZELLFARBE angelegt und die Symbole ausgetauscht ...
SA.png
SA.png (32.79 KiB) 1661 mal betrachtet
HTH Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO

Berndkunz2000
Beiträge: 5
Registriert: Mo 16. Dez 2024, 16:57

Re: Macro bei Auswahl (anklicken) einer Zelle starten.

Beitrag von Berndkunz2000 » Fr 27. Dez 2024, 18:43

Hey
Nochmal vielen Dank, für die Mühe, das zu erklären.
Der Umstieg von Excel zu Libre ist doch etwas steinig.
Danke.
VG Bernd :)


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten