Guten Morgen,
ich versuche jetzt schon seit gefühlten Ewigkeiten in Calc Formularfelder per Makro unsichtbar, bzw. sichtbar zu machen.
Ich habe mehrere Tabellenblätter, die jeweils die vier gleichen Datums- und Uhrzeit-Felder haben. In jedem Sheet heißen die Felder immer gleich. Das Formular heißt auch in allen Sheets immer gleich: "Formular".
Das Makro darf immer nur im gerade aktiven Sheet die diese 4 bestimmten Felder sichtbar/unsichtbar schalten. Auf allen anderen Sheets muss es bleiben wie es ist.
Ich habe es aber bisher nicht einmal auf einem einzigen Sheet auch nur ein Feld sichtbar, bew. unsichtbar zu machen. Alles was ich im Netz gefunden habe, scheint sich auf Makros für Base zu beziehen.
Versucht habe ich bisher solche Sachen wie:
Sub Visible
oDoc = thisComponent
oController = oDoc.getCurrentController()
oform=odoc.drawpage.forms.getbyname("Formular")
oKontroll = oForm.getByName("Schaltfläche 1")
oKView = oController.getControl(oKontroll)
oKView.visible = false
end sub
Als Fehlermeldung bekomme ich dann "Eigenschaft oder Methode nicht gefunden: drawpage."
Wer weiß wie so was geht? Bin da für jede Hilfe sehr dankbar
Beste Grüße
Rupp
[gelöst] Formularfeld in Calc mit Makro sichtbar/unsichtbar schalten
Moderator: Moderatoren
[gelöst] Formularfeld in Calc mit Makro sichtbar/unsichtbar schalten
Zuletzt geändert von Rupp am Do, 01.04.2021 09:50, insgesamt 4-mal geändert.
Re: Formularfeld mit Makro sichtbar/unsichtbar schalten
schaust Du z.B. hier:
viewtopic.php?f=18&t=66049&p=257347#p257347
und wendest das sinngemäß an, dann müsste, für die Tabelle mit Index 0, das hier rauskommen (nicht getestet):
Warum ist das so?
Im Unterschied zu anderen Dokumenttypen haben Tabellendokumente in OO/LO immer genau eine drawpage pro Tabellenblatt. Objektbezug ist also nicht das Dokumentobjekt, sondern das jeweilige Tabellenblatt.
Gruß
Stephan
viewtopic.php?f=18&t=66049&p=257347#p257347
und wendest das sinngemäß an, dann müsste, für die Tabelle mit Index 0, das hier rauskommen (nicht getestet):
Code: Alles auswählen
Sub Visible()
tc0 = ThisComponent.Sheets(0)
oKontroll = tc0.Drawpage.Forms.getByName("Formular").getByName("Schaltfläche 1")
oKontroll.enableVisible = False
End Sub
Warum ist das so?
Im Unterschied zu anderen Dokumenttypen haben Tabellendokumente in OO/LO immer genau eine drawpage pro Tabellenblatt. Objektbezug ist also nicht das Dokumentobjekt, sondern das jeweilige Tabellenblatt.
Gruß
Stephan
Re: Formularfeld mit Makro sichtbar/unsichtbar schalten
Dankeschön Stephan,
das war jetzt aber wirklich eine schnelle und sofort hilfreiche Antwort - wenn man weiß "wie", ist es also ganz einfach!
Habe das jetzt so abgewandelt, dass es immer auf das gerade aktive Sheet angewandt wird:
Beste Grüße
Rupprecht
das war jetzt aber wirklich eine schnelle und sofort hilfreiche Antwort - wenn man weiß "wie", ist es also ganz einfach!
Habe das jetzt so abgewandelt, dass es immer auf das gerade aktive Sheet angewandt wird:
Code: Alles auswählen
Sub Visible()
oDoc = ThisComponent
oActiveSheet = oDoc.currentController.ActiveSheet
oKontroll = oActiveSheet.Drawpage.Forms.getByName("Formular").getByName("Datumsfeld 1")
oKontroll.enableVisible = False
End Sub
Rupprecht