[Risolto] funzione IF ... THEN ... ELSE

Creare una macro - Scrivere uno script - Usare le API
Rispondi
FABIAN_#87
Messaggi: 2
Iscritto il: martedì 21 febbraio 2017, 16:33

[Risolto] funzione IF ... THEN ... ELSE

Messaggio da FABIAN_#87 »

ho bisogno di un piccolo aiuto per completare questa macro su Oo.
il solito problema in VBA di excel l'ho risolto con 'range("G1").Value=1' ma qui su Oo non funziona.
in pratica questa piccola macro dovrebbe controllare il valore di G1 e verificare se è uguale a 1. se è vera esegue la macro, se è falsa restituisce un messaggio di errore.
con la sintassi sotto riportata la macro restituisce il msgBox.
ho provato tutto il giorno a cercare una soluzione ma non sono riuscito a trovarla.


sub copia

if g1 = 1 then

rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$A$1:$F$22"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())

else
msgbox "I dati inseriti non quadrano; inserisci nuovamente i dati e clicca CONTROLLA DATI"

end if

end sub
Ultima modifica di FABIAN_#87 il mercoledì 22 febbraio 2017, 9:19, modificato 2 volte in totale.
OpenOffice 4 su Windows 7
Gaetanopr
Volontario
Volontario
Messaggi: 3314
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: funzine IF ... THEN ... ELSE

Messaggio da Gaetanopr »

Su excel se non indichi il nome del documento e del foglio la macro lavora sul documento e sul foglio attivo, su openoffice è indispensabile sempre indicare su quale documento si intende operare e su quale foglio, quindi la macro diventa così

Codice: Seleziona tutto

if ThisComponent.Sheets.getByName("Foglio1").getCellRangeByName("g1").value = 1 then	
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
FABIAN_#87
Messaggi: 2
Iscritto il: martedì 21 febbraio 2017, 16:33

Re: funzine IF ... THEN ... ELSE

Messaggio da FABIAN_#87 »

Gaetanopr ha scritto:Su excel se non indichi il nome del documento e del foglio la macro lavora sul documento e sul foglio attivo, su openoffice è indispensabile sempre indicare su quale documento si intende operare e su quale foglio, quindi la macro diventa così

Codice: Seleziona tutto

if ThisComponent.Sheets.getByName("Foglio1").getCellRangeByName("g1").value = 1 then	
sei stato molto gentile e ti ringrazio molto.
ho inerito il codice che mi hai dato è funziona tutto a meraviglia.
grazie!!!
OpenOffice 4 su Windows 7
Rispondi