Drucken erst nach Befüllung bestimmter Zellen

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: Drucken erst nach Befüllung bestimmter Zellen

Re: Drucken erst nach Befüllung bestimmter Zellen

von Jörg » Fr, 16.01.2015 11:45

Hallo,
so funktioniert es.

Code: Alles auswählen

Sub HauptTeil
	Dim oSheet as Object
	Dim sPflichtName as String, sPflichtOrt as String
	oSheet = thisComponent.Sheets.getbyname("Eingabemaske Abr_Rechnung")
	sPflichtName = oSheet.getCellRangeByName("B23").String
	sPflichtOrt = oSheet.getCellRangeByName("C23").string
	
'B23 usw. als Text formatiert	
	
	if sPflichtName <>"" and sPflichtOrt <>"" then
'dann sub Abrechnung
  Abrechnung	 
   			
				
	else
		print "Vor- und Nachname UND Ort müssen ausgefüllt sein. Sie sind Pflichtfelder!"
	end if
	
End Sub
Muss ich noch etwas anpassen Pflichtort ist bei mir Rechnungsnummer etc.
Gruß Jörg

Re: Drucken erst nach Befüllung bestimmter Zellen

von Jörg » Fr, 16.01.2015 11:00

Hallo Fachleute,
wie mach ich aus dem Code eine Fehlermeldung?
Zellbereich: "B23:C23,E23:F23"
Format: Datum TT.MM.JJJJ
Bedingung: Zellen dürfen nicht leer sein.

Danke schon mal.
Gruß Jörg

Re: Drucken erst nach Befüllung bestimmter Zellen

von F3K Total » Mo, 07.01.2013 22:52

Moin,
habe es ausprobiert. Geht. Klicke in die verbundene Zelle und schaue was oben links für eine Zelladresse angezeigt wird, die nimmst du im Code.
Gruß R

Re: Drucken erst nach Befüllung bestimmter Zellen

von tobago » Mo, 07.01.2013 22:42

Hallo,
weiss jemand, wie man bei verbunden Zellen u.g. Funktionalität herstellen kann.
Also, wenn z.B. A108 von A108-D107 gehen würde?
Vielen Dank und Grüße
Tobago

Sub S_enable_Print
Dim SCellnames(2)
SCellnames(0) = "A109"
SCellnames(1) = "J108"
SCellnames(2) = "J33"
osheet = Thiscomponent.sheets.getbyname("Tabelle1")
nCounter = 0

for i = 0 to 2
ocell = osheet.getcellrangebyname(SCellnames(i))
if ocell.formula >"" then nCounter = nCounter + 1
next i
ocmdprint = osheet.drawpage.forms.Formular.cmdprint
if nCounter = 3 then ocmdprint.Enabled = true else ocmdprint.Enabled = false
End Sub

Re: Drucken erst nach Befüllung bestimmter Zellen

von tobago » Di, 25.12.2012 23:33

Vielen Dank - so kann man arbeiten. :D

Re: Drucken erst nach Befüllung bestimmter Zellen

von F3K Total » Di, 25.12.2012 17:58

Hi,
zum Verschieben des Buttons mußt du in den Formular-Entwurfmodus wechseln. Vorher den Blattschutz herausnehmen. Dann verschieben.
Jetzt rechte Maustaste auf den Button, Kontrollfeld ... Reiter Allgemein, Zeile Hilfetext (unten), hier den Hinweis eintragen.
Den Entwurfsmodus wieder ausschalten.
Der Knopf zum Ein/Ausschalten befindet sich auf der Symbolleiste "Formularentwurf", die du, falls nicht zu sehen, über Ansicht/Symbolleisten einschalten kannst.
Nun zum zweiten Teil:
Ändere das Makro S_enable_Print wie folgt:

Code: Alles auswählen

Sub S_enable_Print
    Dim SCellnames(2)
    SCellnames(0) = "A109"
    SCellnames(1) = "J108"
    SCellnames(2) = "J33"
    osheet = Thiscomponent.sheets.getbyname("Tabelle1")
    nCounter = 0
    
    for i = 0 to 2
         ocell = osheet.getcellrangebyname(SCellnames(i))
         if ocell.formula >"" then nCounter = nCounter + 1
    next i
    ocmdprint = osheet.drawpage.forms.Formular.cmdprint
    if nCounter = 3 then ocmdprint.Enabled = true else ocmdprint.Enabled = false
End Sub
Viel Spaß
Gruß R

Re: Drucken erst nach Befüllung bestimmter Zellen

von tobago » Di, 25.12.2012 17:30

Lieber Spezialist,
bin sprachlos, Super und gefühlt zu 90 % gelöst.
Vielen Dank für deine Mühe, habe viel gelernt.
Schade, dass es mit der Deaktivierung des Druckbuttons nicht klappt, deshalb nur 2 kleine Fragen zum Design.
1. Wie kann ich dein Druckbutton verschieben oder auf eine anderes Stelle des Tabellenblattes positionieren und mit einer Meldung versehen, dass dieser aktiv wird, wenn die Bermerkungen befüllt sind ?
2. In deinem sehr gut gelösten Beispiel sind es 4 Zellen untereinander und dein Code im Makro ebenfalls verständlich.
Meine 3 Zellen, die es zu deaktivieren gilt sind z.B., A109, J108 und J33.
Wie binde ich diese 3 Zellkoordinaten ins Makro ein?
Vielen Dank für die kompetente Lösung.

Re: Drucken erst nach Befüllung bestimmter Zellen

von F3K Total » Sa, 22.12.2012 08:42

Hallo tobago,
habe mich mit dem Thema beschäftigt.
Leider ist es mir nicht gelungen ein Ereignis zu finden, das dass Auslösen des Druckvorganges über das Menü oder z.B. Strg+P detektiert. Es gibt zwar ein Ereignis "onPrint" aber wenn es übermittelt wird, läuft der Druck bereits. Hat vielleicht jemand eine Idee, wie man dieses Ereignis detektieren kann?

Als Lösung reicht Dir vielleicht Folgendes, siehe auch angehängte Datei:
  1. Das Makro "S_enable_Print" wird durch das Tabellenereignis "Inhalt geändert" ausgelöst. Es aktiviert die Schaltfläche "ocmdprint" mit dem Titel "Seite Drucken" nur wenn alle vier Pflichtzellen, hier B1 bis B4, befüllt sind.

    Code: Alles auswählen

    Sub S_enable_Print
        osheet = Thiscomponent.sheets.getbyname("Tabelle1")
        nCounter = 0
        for i = 1 to 4
             ocell = osheet.getcellrangebyname("B"+i)'Zellen B1 bis B4
             if ocell.formula >"" then nCounter = nCounter + 1'Hier wird geprüft, ob in die Zellen befüllt sind
        next i
        ocmdprint = osheet.drawpage.forms.Formular.cmdprint
        if nCounter = 4 then ocmdprint.Enabled = true else ocmdprint.Enabled = false
    End Sub
  2. Das Makro "S_Print" zum Drucken, ausgelöst durch das Drücken der Schaltfläche "Seite Drucken", die eben nur dann gedrückt werden kann, wenn alle vier Pflichtfelder befüllt sind.

    Code: Alles auswählen

    Sub S_Print
        Dim args()
        thiscomponent.print(args())
    End Sub 
Gruß R
Dateianhänge
enable_print.ods
(10.48 KiB) 112-mal heruntergeladen

Re: Drucken erst nach Befüllung bestimmter Zellen

von lorbass » So, 16.12.2012 23:15

Wenn niemand antwortet, bitte kein neues Thema mit derselben Frage aufmachen, sondern das alte Thema mit einer kurzen Nachfrage wieder "hochholen".

Gruß
lorbass, Mod

Mussfelder erst bei Befüllung druckbar

von tobago » So, 16.12.2012 20:39

Liebe Spezialisten,
bei einem gesperrten Tabellenblatt darf erst nach Befüllung von 4 verschiedenen PflichtZellen gedruckt werden.
(Pflichtfelder) 4 Stück an der Zahl.

Wenn der Anwender versucht die Tabelle zu drucken, ohne das diese "Pflichtzellen" befüllt sind, soll dem Anwender ein Hinweis erscheinen, das die Pflichtfelder noch nicht beschrieben wurden.
Wie geht so etwas?
Vielen Dank für die Aufmerksamkeit,
Tobago

Drucken erst nach Befüllung bestimmter Zellen

von tobago » Mo, 26.11.2012 17:33

Liebe Spezialisten,
habe ein Calcformular gebastelt indem der Anwender in einem Bemerkungsfeld etwas reinschreiben muss und erst wenn Er/Sie dort was hinterlegt hat, erst dann soll der Druckbutton aktivierbar sein, vorher nicht.
Also, das Bemerkungsfeld ist ein Mussfeld und darf erst nach Befüllung desgleichen soll das komplette Formular druckbar sein.
Es sind ca. 4 Zellen in einem 4seitigen Formular, die befüllt werden sollen und erst dann darf gedruckt werden.
Vielleicht gibt es eine einfache Lösung ohne Makro.
Vielen Dank für die Aufmerksamkeit und auf Nachricht freut sich,
Tobago

Nach oben