macro per scelta multripla in un foglio: combobox e vaidità

Creare una macro - Scrivere uno script - Usare le API
Rispondi
elianaOO
Messaggi: 19
Iscritto il: lunedì 28 febbraio 2011, 16:21

macro per scelta multripla in un foglio: combobox e vaidità

Messaggio da elianaOO »

Ciao a tutti!
Il mio problema è di inserire in un foglio delle scelte multiple, senza usare delle dialog.
Ho visto che ci sono due strade: una tramite controlli per formulario->combobox e un'altra tramite dati->validità->area celle.
A mano ho capito come si fa ed ho provato a registrare la macro per scoprire il segreto,

Codice: Seleziona tutto

sub sceltacombobox
' Recorded by  
' Date: Thu May 12 15:29:30 2011
	
	' get access to the document
	oDocumentModel = ThisComponent
	oDocumentView = oDocumentModel.getCurrentController()
	oDocumentFrame = oDocumentView.Frame

	' the dispatcher service is used to send commands from the 
	' document frame to the underlaying office application
	oDispatcher = CreateUnoService("com.sun.star.frame.DispatchHelper")
	
	Dim mArgs1(0) As New com.sun.star.beans.PropertyValue
	mArgs1(0).Name = "ToPoint"
	mArgs1(0).Value = "spettro.C1"
	oDispatcher.executeDispatch(oDocumentFrame, ".uno:GoToCell" ,"" ,0 ,mArgs1())

	Dim mArgs2(0) As New com.sun.star.beans.PropertyValue
	mArgs2(0).Name = "ComboBox"
	mArgs2(0).Value = True
	oDispatcher.executeDispatch(oDocumentFrame, ".uno:ComboBox" ,"" ,0 ,mArgs2())


end sub

Codice: Seleziona tutto

sub valida
' Recorded by  
' Date: Thu May 12 15:21:40 2011
	
	' get access to the document
	oDocumentModel = ThisComponent
	oDocumentView = oDocumentModel.getCurrentController()
	oDocumentFrame = oDocumentView.Frame

	' the dispatcher service is used to send commands from the 
	' document frame to the underlaying office application
	oDispatcher = CreateUnoService("com.sun.star.frame.DispatchHelper")
	
	Dim mArgs1(0) As New com.sun.star.beans.PropertyValue
	mArgs1(0).Name = "ToPoint"
	mArgs1(0).Value = "$D$1"
	oDispatcher.executeDispatch(oDocumentFrame, ".uno:GoToCell" ,"" ,0 ,mArgs1())

	oDispatcher.executeDispatch(oDocumentFrame, ".uno:Validation" ,"" ,0 ,Array())


end sub

Volevo sapere se è possibile fare qualcosa del genere riferendosi a delle celle di un altro foglio oppure a una tabella di un database,
ma settando tutto dalla macro.
Ad esempio una cosa che vorrei è decidere di mettere una scelta multipla in B1 ed un'altra in B2.
Inoltre settare le proprietà della combobox

spero di essere stata abbastanza chiara.

grazie mille,
eliana
LibreOffice 3.3 su uBUNTU 10.10
elianaOO
Messaggi: 19
Iscritto il: lunedì 28 febbraio 2011, 16:21

Re: macro per scelta multipla in un foglio: combobox e valid

Messaggio da elianaOO »

in particolare..
è possibile accedere ad una tabella di un database da calc e come si fa?

grazie.
Eliana
LibreOffice 3.3 su uBUNTU 10.10
Avatar utente
xergio
Messaggi: 315
Iscritto il: lunedì 15 marzo 2010, 21:54
Località: Arzignano (Vicenza)
Contatta:

Re: macro per scelta multripla in un foglio: combobox e vaid

Messaggio da xergio »

Come avrai visto in formulario->combobox, la combobox può essere collegata ad una sorgente dati, che può essere un database.
Puoi collegare anche un'area ad una sorgente dati - apri le sorgenti dati con F4, apri il db e la tabella/ricerca che ti interessa e la trascini nel foglio di calc (o usi il tasto Dati in testo - o qualcosa del genere), ma non sembra quello che cerchi.
L'area dati-validità non può essere collegata direttamente ad un database.
Però potresti usare i due ultimi sistemi in contemporanea (area collegata a sorgente dati e dati-validità sull'area collegata), ma non ho provato.
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto.
---
Sergio Corato
LibO 6.x su Ubuntu 18.04 / OOo 4.x su Windows XP/10 (VirtualBox)
https://efatto.it
Rispondi