Dialog Textfeld in Zelle eintragen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Jörg
*****
Beiträge: 401
Registriert: Mo, 21.10.2013 12:05

Dialog Textfeld in Zelle eintragen

Beitrag von Jörg »

Hallo,
obwohl schon soviel hier geschrieben, krieg ich es einfach nicht hin.

Code: Alles auswählen

Public Dialog5 as Object
Public oBlatt as Object
Public oZelle as Object
Sub monat_eintragen	
	odoc = ThisComponent
	oBlatt = odoc.Sheets.getByIndex(2)
	oZelle = oBlatt.getCellRangebyName("K1")	
		DialogLibraries.loadLibrary("Standard")
	oDialog5 = CreateUnoDialog(DialogLibraries.Standard.Dialog5)
			oDialog5.execute
end sub

sub eintragen
Dim Textfield1 as Object
Dim oZelle as Object
	oZelle.formulalocal = oDialog5.getControl("TextField1").text
   	oDialog5.endexecute
end sub
Diese Zeile wird mit der Fehlermeldung "Objektvariable nicht belegt" angemeckert.
Zum Vergleich funktioniert nachfolgender Code für eine andere Aufgabe einwandfrei.

Code: Alles auswählen

Public oDialog1 as Object
	Public oProjektBlatt as Object
Sub Neue_Verordnung_erfassen_Array
	Dim oDoc as Object, oSheet as Object

	DialogLibraries.loadLibrary("Standard")
	oDialog1 = CreateUnoDialog(DialogLibraries.Standard.Dialog)
	
	oDoc = ThisComponent
	oProjektBlatt = oDoc.Sheets.getByName("Hilfstabelle")
	oDialog1.execute
End Sub
'
'##############################################################################################################
'
sub auswerten
	
   		oProjektBlatt.getcellByPosition(1,1).formulalocal = oDialog1.getControl("TextField" & ta+1).text
   	oDialog1.endexecute
   	end sub
Habe zwar eine Möglichkeit mit Hilfe einer Inputbox gefunden, würde es aber lieber mit dem Dialog machen.

Gruß Jörg
Gruß Jörg

Win 10 Pro AOO 4.1.15
Jörg
*****
Beiträge: 401
Registriert: Mo, 21.10.2013 12:05

Re: Dialog Textfeld in Zelle eintragen

Beitrag von Jörg »

sorry hab vergessen die Zeiele zu benennen.

Code: Alles auswählen

oZelle.formulalocal = oDialog5.getControl("TextField1").text
Gruß Jörg

Win 10 Pro AOO 4.1.15
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Dialog Textfeld in Zelle eintragen

Beitrag von balu »

Hallo Jörg,

Code: Alles auswählen

Public oZelle as Object
Das ist korrekt.

Code: Alles auswählen

sub eintragen
[...]
Dim oZelle as Object
Aber das ist Falsch!
Denn Du hast ja schon oZelle öffentlich deklariert, und durch das zweitemal in der Sub verliert oZelle jegliche zuvor vorgenommene definition. Also schmeiß "Dim oZelle as Object" in der Sub raus.

Code: Alles auswählen

sub eintragen
Dim Textfield1 as Object
[...]
   oZelle.formulalocal = oDialog5.getControl("TextField1").text
Das "Dim Textfield1..." gehört auch nicht darein.



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Jörg
*****
Beiträge: 401
Registriert: Mo, 21.10.2013 12:05

Re: Dialog Textfeld in Zelle eintragen

Beitrag von Jörg »

Hallo balu,
Der Code sieht nach Deinen Hinweisen wie folgt aus. Hoffe, dass ich nichts übersehen habe.

Code: Alles auswählen

Public Dialog5 as Object
Public oBlatt as Object
Public oZelle as Object
Sub monat_eintragen	
	odoc = ThisComponent
	oBlatt = odoc.Sheets.getByIndex(2)
	oZelle = oBlatt.getCellRangebyName("K1")	
	
	DialogLibraries.loadLibrary("Standard")
	oDialog5 = CreateUnoDialog(DialogLibraries.Standard.Dialog5)
	
	oDialog5.execute
end sub

sub eintragen

	oZelle.formulalocal = oDialog5.getControl("TextField1").text
   	oDialog5.endexecute
end sub
Leider erhalte ich weiterhin die Fehlermeldung "Objektvariable nicht belegt" :?

Ich versteh das nicht. :oops:

Gruß
Jörg
Gruß Jörg

Win 10 Pro AOO 4.1.15
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Dialog Textfeld in Zelle eintragen

Beitrag von balu »

Hallo Jörg,

Versuch doch mal folgendes.
Anstatt

Code: Alles auswählen

Public Dialog5 as Object
nimm :wink:

Code: Alles auswählen

Public oDialog5 as Object

Warum nimmst Du in dieser Sub überhaupt *formulalocal*?

Code: Alles auswählen

sub eintragen
   oZelle.formulalocal = oDialog5.getControl("TextField1").text
Gibst Du in das Textfield eine Formel ein?
Wenn nein, dann machs so rum.

Code: Alles auswählen

sub eintragen
   oZelle.string = oDialog5.getControl("TextField1").text

Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Jörg
*****
Beiträge: 401
Registriert: Mo, 21.10.2013 12:05

Re: Dialog Textfeld in Zelle eintragen

Beitrag von Jörg »

Hallo balu,

in die Zelle will ein Datum mit dem Format MM.JJ eingeben.
Bei Verwendung string statt formulalocal krieg ich ein Hochkomma dazugeschrieben.
Bsp. '06.15

Mit der inputbox sieht das so aus:

Code: Alles auswählen

oZielzelle = oDoc.sheets(2).getCellRangeByName("K1")
oZielzelle.formulalocal = sName    
Vorher stand da auch string drin. Durch formulalocal war das Hochkomma dann wech.

Hab jetzt noch Deinen Vorschlag "oDialog5" gelesen.
Vielen Dank balu.
Das war´s. :D :D :D

Gruß Jörg
Gruß Jörg

Win 10 Pro AOO 4.1.15
Antworten