Pannello di Controllo Moderatore ]

[RISOLTO] Definire Area di celle (CTRL + F3)

Creare una macro - Scrivere uno script - Usare le API

[RISOLTO] Definire Area di celle (CTRL + F3)

Messaggioda Logical Passion » lunedì 17 settembre 2018, 12:05

Buongiorno,

premetto che la ricerca che ho effettuato non produce nessuna occorrenza per questo argomento

è possibile che una macro definisca un'area di celle (con "definire un'area di celle" intendo ottenere lo stesso risultato della procedura che in Calc si attiva con CTRL + F3)?

Dovrebbe (forse!) essere la procedura di cui si parla qui https://www.openoffice.org/api/docs/com ... cePosition ma non capisco come si metta in pratica quanto vi è scritto

Grazie
Ultima modifica di Logical Passion il domenica 23 settembre 2018, 12:56, modificato 1 volta in totale.
Logica e Metodo attributi della Ragione,
Intuizione ed Immaginazione attributi della Genialità,
Passione ed Amore la loro energia.

OpenOffice 4.1.5 Windows Seven
Logical Passion
 
Messaggi: 16
Iscritto il: giovedì 13 settembre 2018, 11:07

Re: Definire Area di celle (CTRL + F3)

Messaggioda patel » lunedì 17 settembre 2018, 17:16

prova questa
Codice: Seleziona tutto   Espandi visualeStringi visuale
sub definisciNome
   rifa_nomearea ("Foglio1", "$G$10:$L$20" , "prova")
end sub

SUB rifa_nomearea (sSheet as string, sRange as string, sName as string)
   sPath = "$'" & sSheet & "'." & sRange
   oRanges = ThisComponent.NamedRanges
      oCellAddress = ThisComponent.Sheets.getByName(sSheet).getCellRangeByName("A1").getCellAddress()
   If oRanges.hasByName(sName) Then oRanges.removeByName(sName)
   oRanges.addNewByName(sName,sPath,oCellAddress,0)
end sub

se intendi imparare a programmare qui troverai molti esempi http://www.pitonyak.org/oo.php
-------------------
OpenOffice 4.1 e Libre Office 6.o.7.3 su Windows 10
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
patel
Volontario attivo
Volontario attivo
 
Messaggi: 3167
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Definire Area di celle (CTRL + F3)

Messaggioda Logical Passion » lunedì 17 settembre 2018, 18:17

Funziona e svolge esattamente ciò che intendevo, non sembra però possibile definire un'area contenente celle discontinue.

A questo punto non so se indicare l'argomento come [RISOLTO] perchè ciò che ho chiesto mi è stato prontamente indicato (Grazie!) ma se cambio titolo probabilmente passa inosservato il discorso di area con celle discontinue.

Ringrazio Patel anche per il link agli esempi di pitonyak
Logica e Metodo attributi della Ragione,
Intuizione ed Immaginazione attributi della Genialità,
Passione ed Amore la loro energia.

OpenOffice 4.1.5 Windows Seven
Logical Passion
 
Messaggi: 16
Iscritto il: giovedì 13 settembre 2018, 11:07

Re: Definire Area di celle (CTRL + F3)

Messaggioda unlucky83 » lunedì 17 settembre 2018, 19:34

Perchè con (CTRL + F3) riesci a definire area con celle discontinue?
LibO5.1.6.2-Ubuntu 16.04.2 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio
Avatar utente
unlucky83
Volontario
Volontario
 
Messaggi: 1965
Iscritto il: lunedì 7 gennaio 2013, 2:23
Località: Latina

Re: Definire Area di celle (CTRL + F3)

Messaggioda Logical Passion » martedì 18 settembre 2018, 0:50

Si, è possibile.

Nella finestra di dialogo che si apre premendo CTRL+F3, a sinistra del tasto per attivare la selezione tramite mouse, c'è un campo per l'inserimento testuale.
E' necessario digitare in esso, avendo l'accortezza di racchiuderla fra due parentesi, tutta la sequenza di sottoaree divise con il punto e virgola.

AreaDiscontinua($A$1:$B$2;$C$3:$D$4)
L'espressione viene accettata e ad una successiva apertura della finestra "Definisci Nomi" (CTRL+F3) il punto e virgola vengono sostituiti da un tilde.

La conferma che l'area disgiunta funzioni, oltre che essere accettata, è fornita dalla formula =CONTA.VUOTE(AreaDiscontinua) che restituisce il valore 8.

Oltre le due aree discontinue è necessario digitare direttamente il tilde ~ perchè l'inserimento con il punto e virgola non funziona (mistero!)

E' possibile aggiungere più aree su più fogli:
AreaDiscontinua($Foglio1.$A$1:$B$2~$Foglio1.$C$3:$D$4~$Foglio2.$E$5:$F$6). ---> =CONTA.VUOTE(AreaDiscontinua) restituisce il valore 12.

(testato fino a 7 fogli e 7 aree discontinue)
Logica e Metodo attributi della Ragione,
Intuizione ed Immaginazione attributi della Genialità,
Passione ed Amore la loro energia.

OpenOffice 4.1.5 Windows Seven
Logical Passion
 
Messaggi: 16
Iscritto il: giovedì 13 settembre 2018, 11:07

Re: Definire Area di celle (CTRL + F3)

Messaggioda unlucky83 » martedì 18 settembre 2018, 1:29

Ottima spiegazione, non sapevo si potesse fare. Prova questa versione allora:
Codice: Seleziona tutto   Espandi visualeStringi visuale
sub definisciNome2
   rifa_discontinua ("provola2","($Foglio1.$B$15~$Foglio1.$B$30:$B$35)",ThisComponent)
end Sub

SUB rifa_discontinua (  sName as string,sRange as string, oDove As object)
'oDove può essere ThisComponet--> per nome a validità globale; può essere ThisComponent.Sheets(0) --> per nome valido solo nel primo foglio; etc...
   oRanges = oDove.NamedRanges
     If oRanges.hasByName(sName) Then oRanges.removeByName(sName)
  oCellAddress = ThisComponent.Sheets.getByindex(0).getCellRangeByName("A1").getCellAddress()
   oRanges.addNewByName(sName,sRange,oCellAddress, 0)
end Sub
LibO5.1.6.2-Ubuntu 16.04.2 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio
Avatar utente
unlucky83
Volontario
Volontario
 
Messaggi: 1965
Iscritto il: lunedì 7 gennaio 2013, 2:23
Località: Latina

Re: Definire Area di celle (CTRL + F3)

Messaggioda patel » martedì 18 settembre 2018, 8:14

Non si smette mai di imparare :super: :bravo:
-------------------
OpenOffice 4.1 e Libre Office 6.o.7.3 su Windows 10
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
patel
Volontario attivo
Volontario attivo
 
Messaggi: 3167
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Definire Area di celle (CTRL + F3)

Messaggioda unlucky83 » martedì 18 settembre 2018, 9:55

Grazie a questa discussione ho scoperto la grande potenzialità di NamedRanges, è possibile associarci anche il testo di una formula, ecco a cosa serve il terzo parametro, a gestire i riferimenti relativi delle funzioni suppongo.

https://wiki.openoffice.org/wiki/Docume ... med_Ranges
LibO5.1.6.2-Ubuntu 16.04.2 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio
Avatar utente
unlucky83
Volontario
Volontario
 
Messaggi: 1965
Iscritto il: lunedì 7 gennaio 2013, 2:23
Località: Latina

Re: Definire Area di celle (CTRL + F3)

Messaggioda Logical Passion » domenica 23 settembre 2018, 12:53

Buongiorno, mi scuso per aver tardato nel rispondere. Per alcuni versi fortunatamente, per altri meno, sono stato molto impegnato.

Ringrazio Unlucky per il codice da lui scritto, funziona e non ne avevo dubbi! Lo ringrazio anche per il complimento ricevuto, mi ha fatto molto piacere.
Sono infine lieto questa discussione sia stata spunto per la sua scoperta, anche se, francamente, per ora non capisco di cosa si tratti.

Ora modifico l'oggetto aggiungendo la spunta verde e la dicitura [RISOLTO]

Grazie, buona Domenica
Logica e Metodo attributi della Ragione,
Intuizione ed Immaginazione attributi della Genialità,
Passione ed Amore la loro energia.

OpenOffice 4.1.5 Windows Seven
Logical Passion
 
Messaggi: 16
Iscritto il: giovedì 13 settembre 2018, 11:07

Re: [RISOLTO] Definire Area di celle (CTRL + F3)

Messaggioda unlucky83 » domenica 23 settembre 2018, 13:19

Per chiarire, si possono salvare in NamedRanges non semplicemente riferimenti a celle, ma anche formule. Usato in maniera opportuna potrebbe essere impiegato in alternativa all’utilizzo di celle di appoggio per fare i calcoli e forse anche per ridurre il testo di formule complesse altrimenti lunghissime
La wiki riporta questo esempio che cito in parte
xNamedRanges.addNewByName("ExampleName", "SUM(G43:G44)", aRefPos, 0);

// use the named range in formulas
xSheet.getCellByPosition(6, 44).setFormula("=ExampleName");
xSheet.getCellByPosition(7, 44).setFormula("=ExampleName");
LibO5.1.6.2-Ubuntu 16.04.2 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio
Avatar utente
unlucky83
Volontario
Volontario
 
Messaggi: 1965
Iscritto il: lunedì 7 gennaio 2013, 2:23
Località: Latina

Re: [RISOLTO] Definire Area di celle (CTRL + F3)

Messaggioda Logical Passion » domenica 23 settembre 2018, 13:30

(Fantastic)
Logica e Metodo attributi della Ragione,
Intuizione ed Immaginazione attributi della Genialità,
Passione ed Amore la loro energia.

OpenOffice 4.1.5 Windows Seven
Logical Passion
 
Messaggi: 16
Iscritto il: giovedì 13 settembre 2018, 11:07


Torna a Macro e UNO API

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti