Symbol zu Symbolleiste hinzufügen und Makro zuweisen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Symbol zu Symbolleiste hinzufügen und Makro zuweisen

von Schiri1 » Di, 25.01.2005 19:07

:roll:
Welche Version OpenOffice verwendest Du? Bei mir gibt es dieses Ereignis nicht.
OpenOffice 1.1.4, die Vorlage soll aber mal unter StarOffice 7.0 laufen
Ich meine natürlich das Ereignis "Dokument drucken".
Warum so umständlich?
Ganz einfach, die Vorlage ist für einen DAU, und ich ich habe keine Lust diesem Benutzer fünf mal am Tag zu erklären, wie Makros gestartet werden. Wie gesagt, ich bin ein Excel-Umsteiger und bei VBA für M$-Excel gibt es das Objekt "Application.CommandBars("Name")". Ich habe damit eigentlich - was die Benutzer angeht - gut Erfahrung gemacht und hatte die Hoffnung, das es so was auch unter OOo-Basic gibt.

von Stephan » Di, 25.01.2005 16:39

Wenn ich dieses Makro dem Ereignis "Dokument wird gedruckt" zuweise


welche Version OpenOffice verwendest Du? Bei mir gibt es dieses Ereignis nicht.
wird es zwar ausgeführt, es wird aber trotzdem die komplette Tabelle gedruckt
es wird nur einmal oder zweimal gedruckt?

Es gibt bei mir SO7 PP4 das Ereignis "Dokument drucken", ein disem zugeordnetes Makro wird nach dem Verlassen des Drucken-Dialogs aber noch vor dem Eigentlichen Drucken ausgeführt. Ich denke das nach Verlassen des Druckdialogs die Druckbereiche bereits feststehen und würde erwarten das zweimal gedruckt wird, andererseits druckt ja das Makro selber so das es das Ereignis nochmals auslöst und eine unendliche Schleife entstehen würde ... vielleicht führt das zu den Problemen
Ich suche jetzt eine Möglichkeit, über ein weiteres Makro ein neues Symbol in die Symbolleiste (Funktionsleiste) hinzufügen und das Makro dieser zu zuweisen.
Macht keinen Sinn, weil:
Hinzufügen von Schaltflächen ist prinzipiell möglich aber erfordert zur Übernahme der Einstellungen ein Beenden und Neuöffnen von OpenOffice, was für _ein_ bestimmtes Dokument nicht sinnvoll ist.
Deshalb ist das ohne Makro möglich nur über die Anpassung der Symbolleisten. Die Konfiguration der Leisten/Menüs wird mit dem speziellen Dokument gespeichert und steht sofort zur Verfügung wenn das Dokument geöffnet wird. Leider gibt es einen Fehler in den 1.1.x-Versionen, in den 1.0.x-Versionen funktioniert das. Und es geht mit allen Versionen wenn das Dokument einmalig mit einer Version 1.0.x erstellt wurde. Deine Version ???
Lösung:
mach eine Schaltfläche direkt in eine Tabelle und ordne dieser das Makro zu. Die Schaltfläche wird nicht mitgedruckt, wenn Du das bei den Eigenschaften der Schaltfläche so festlegst.


Gruß
Stephan

von Toxitom » Di, 25.01.2005 15:53

Hey Schiri1,
Ich suche jetzt eine Möglichkeit, über ein weiteres Makro ein neues Symbol in die Symbolleiste (Funktionsleiste) hinzufügen und das Makro dieser zu zuweisen.
Warum so umständlich? Einfach eine Button ins Dokument setzen (aus den Formular-Möglichkeiten), entsprechend Beschriften, das Makro zuweisen -> fertig. Stell bei den Button-Eigenschaften "Nicht Drucken" ein, dassn wird der Knopf auch nciht gedruckt.

Das Makro dem Event "Drucken" zuzuweisen, nützt natürlich nichts. Dann wird das Makro ausgeführ, wenn du den Druckbutton drückst, die ursprüngliche Funktionalität des Buttons bleibt aber zusätzlich erhalten -> daher funktionierte deien Idee nicht.

Gruß
Thomas

Symbol zu Symbolleiste hinzufügen und Makro zuweisen

von Schiri1 » Di, 25.01.2005 15:21

:roll:
Ein Umsteiger von Excel sucht Hilfe.

Für eine Tabellenvorlage habe ich ein Makro (Drucken_ohne_Leer()) erstellt, mit welchem Leerzeilen ausgeblendet werden und der Druckbereich festgelegt wird.

Code: Alles auswählen

Sub Drucken_ohne_Leer()
	Dim Blatt As Object, Zeile As Integer
	Dim PrintArea(2) As New com.sun.star.table.CellRangeAddress
	Dim PrintProperties(0) As New com.sun.star.beans.PropertyValue
	Blatt = ThisComponent.CurrentController.ActiveSheet
	If Blatt.Name = "Abrechnung" Then
		ThisComponent.enableAutomaticCalculation(False)
		' Leere Zeilen ausblenden
		For Zeile = 5 To 88
			If Blatt.getCellByPosition(80, Zeile).String = "" Then Blatt.Rows(Zeile).IsVisible = False
		Next Zeile
		' Druckbereich festlegen -> zu druckende Seiten festlegen -> drucken
		PrintArea(1).Sheet = 1 : PrintArea(0).StartRow = 0 : PrintArea(0).StartColumn = 79
		                         PrintArea(0).EndRow = 90  : PrintArea(0).EndColumn = 88
		PrintArea(2).Sheet = 1 : PrintArea(1).StartRow = 0 : PrintArea(1).StartColumn = 94
		                         PrintArea(1).EndRow = 90  : PrintArea(1).EndColumn = 105
		Blatt.PrintAreas = PrintArea()
		PrintProperties(0).Name="Pages"
		PrintProperties(0).Value="1-2"
		ThisComponent.Print(PrintProperties())
		' Alle Zeilen wieder einblenden
		Blatt.Rows().IsVisible = True
		Blatt.PrintAreas = PrintArea(0)
		ThisComponent.enableAutomaticCalculation(True)
	Else
		ThisComponent.Print(PrintProperties())
	End If
End Sub
Wenn ich dieses Makro dem Ereignis "Dokument wird gedruckt" zuweise wird es zwar ausgeführt, es wird aber trotzdem die komplette Tabelle gedruckt; wenn das Makro direkt ausgeführt wird funktioniert es.
Ich suche jetzt eine Möglichkeit, über ein weiteres Makro ein neues Symbol in die Symbolleiste (Funktionsleiste) hinzufügen und das Makro dieser zu zuweisen.

Nach oben