[Risolto] Invertire l'ordine di celle selezionate...
[Risolto] Invertire l'ordine di celle selezionate...
Salve,
volevo sapere se è possibile invertire l'ordine delle celle selezionate in una colonna....
posto un esempio per essere più chiaro... ovviamente nel mio caso concreto i numeri sono più complessi di quelli dell'esempio....
http://i34.servimg.com/u/f34/16/51/63/47/selezi10.jpg
volevo sapere se è possibile invertire l'ordine delle celle selezionate in una colonna....
posto un esempio per essere più chiaro... ovviamente nel mio caso concreto i numeri sono più complessi di quelli dell'esempio....
http://i34.servimg.com/u/f34/16/51/63/47/selezi10.jpg
Ultima modifica di coimbraz il giovedì 4 luglio 2013, 17:00, modificato 1 volta in totale.
OpenOffice 3.1 su Windows 7
Re: Invertire l'ordine di celle selezionate...
In teoria dovrebbe funzionare
Codice: Seleziona tutto
Sub Main
Doc=ThisComponent
Sheet= Doc.Sheets(0)
c = Sheet.createCursor
c.gotoEndOfUsedArea(false)
LastRow = c.RangeAddress.EndRow
riga=o
For i = LastRow To 0 Step - 1
Sheet.getCellByPosition(2, riga).Value = Sheet.getCellByPosition(0, i).Value
riga=riga+1
Next i
End sub
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Invertire l'ordine di celle selezionate...
Ciao, c'è anche il semplice comando da menu: Dati --> Ordina --> Ordina per colonna A --> Decrescente
charlie
macOS 14.6.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
macOS 14.6.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Re: Invertire l'ordine di celle selezionate...
Non è proprio quello che cerco io......charlie ha scritto:Ciao, c'è anche il semplice comando da menu: Dati --> Ordina --> Ordina per colonna A --> Decrescente
Questo me li ordina dal più grande al più piccolo... io devo completamente invertirli....
Nel mio esempio erano messi dall 1 al 10 per praticità ma potrebbereo esere in ordine casuale...
tipo:
3 1
2 9
5 7
7 5
9 2
1 3
OpenOffice 3.1 su Windows 7
Re: Invertire l'ordine di celle selezionate...
Non hai provato la macro??
ti allego il file
ti allego il file
- Allegati
-
- INVERTINUMERI.ods
- (9.93 KiB) Scaricato 2121 volte
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Invertire l'ordine di celle selezionate...
Allora va bene la macro di Gaetanopr.coimbraz ha scritto:Non è proprio quello che cerco io......charlie ha scritto:Ciao, c'è anche il semplice comando da menu: Dati --> Ordina --> Ordina per colonna A --> Decrescente
Questo me li ordina dal più grande al più piccolo... io devo completamente invertirli....
Nel mio esempio erano messi dall 1 al 10 per praticità ma potrebbereo esere in ordine casuale...
Se per caso non volessi la macro puoi sempre utilizzare l'ordinamento che ti ho suggerito scrivendo una colonna con numeri progressivi accanto alla tua ...
charlie
macOS 14.6.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
macOS 14.6.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Re: Invertire l'ordine di celle selezionate...
Ecco una possibile soluzione senza l'utilizzo di macro
- Allegati
-
- Test - Inverti lista senza macro.ods
- (10.46 KiB) Scaricato 3504 volte
Re: Invertire l'ordine di celle selezionate...
Ciao, interessante la tua soluzione ma non riesco a capirla. Mi puoi spiegare la sintassi?lucky63 ha scritto:Ecco una possibile soluzione senza l'utilizzo di macro
Codice: Seleziona tutto
=INDIRETTO("a"&$E$1-RIF.RIGA(E1))
charlie
macOS 14.6.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
macOS 14.6.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Re: Invertire l'ordine di celle selezionate...
Grazie mille l'ho usata ed è efficace....
Grazie anche a Gaetanopr... non ho usato la macro perchè non ho molta dimestichezza ma ho comunque risloto con l'aiuto di Lucky63
Grazie anche a Gaetanopr... non ho usato la macro perchè non ho molta dimestichezza ma ho comunque risloto con l'aiuto di Lucky63
OpenOffice 3.1 su Windows 7
Re: [Risolto] Invertire l'ordine di celle selezionate...
Con riferimento al mio esempio del file precedente allegato.charlie ha scritto:Ciao, interessante la tua soluzione ma non riesco a capirla. Mi puoi spiegare la sintassi?
=INDIRETTO("a"&$E$1-RIF.RIGA(E1))
Grazie.
Per una lista di pochi numeri si poteva semplicemente scrivere in cella:
C2 =A10
C3 =A9
C4 =A8
…
C10 =A2
Ottenendo così il medesimo risultato d’inversione.
La formula inserita in cella C2
=INDIRETTO("a"&$E$1-RIF.RIGA(E1))
è apparentemente criptica ma ha il semplice scopo di ricreare la medesima sequenzialità sopra descritta che diventa particolarmente utile nel caso in cui sia necessario invertire una lunga lista di dati.
In tale caso infatti, invece di scrivere una formula per ogni riga, fatta la prima formula con le debite impostazioni di replicabilità, è poi sufficiente copiarla quanto e dove necessario ottenendone l’adattamento automatico della stessa.
La formula utilizza le funzioni:
INDIRETTO()
CONCATENA() … in versione abbreviata è identificata dal simbolo sostitutivo & (il simbolo sopra al numero 6)
RIF.RIGA()
RIF.RIGA(E1) oppure, al posto di E1, qualsiasi altra cella della riga 1, restituisce come valore 1
$E$1-RIF.RIGA(E1)
Nell’esempio $E$1 ha valore 11
Togliendo a 11 il valore 1 ottenuto da RIF.RIGA(E1) si ottiene come risultato 10
Concatenando dunque la lettera “a” con il numero 10 si ottiene “a10” ossia il riferimento “Testuale” all’ultima cella della lista numeri dell’esempio. La corrispondenza così ottenuta =INDIRETTO(a10) restituisce il contenuto della cella A10.
Copiando in basso la formula =INDIRETTO("a"&$E$1-RIF.RIGA(E1)) ottieni che il riferimento assoluto ($E$1) sarà sempre valore 11 mentre il riferimento relativo alla cella E1 diventerà progressivamente E2, E3, E4, … E10.
Per ogni corrispondente riga dunque:
RIF.RIGA(E2) restituisce valore 2
RIF.RIGA(E3) restituisce valore 3
RIF.RIGA(E4) restituisce valore 4
….
RIF.RIGA(E10) restituisce valore 10
La differenza tra il valore fisso 11 (ottenuto dal riferimento assoluto alla cella $E$1) e il corrispondente valore di riferimento riga fa ottenere per ogni riga progressiva il risultato sequenziale 9, 8, 7, ...2 ottenendo così con la funzione di concatenamento le relative corrispondenze a9, a8, a7, … a2.
La funzione =INDIRETTO() trasforma i riferimenti “testuali” di cella precedenti nei corrispondenti contenuti di cella.
Percui se invece della piccola colonna dati A1:A10 ne hai per esempio una di 300 righe (A1:A300), con il valore cella E1 = 301, a partire da cella C2 si avrà intrinsicamente la sequenzialità decrescente a300, a299, a298, a297, … a2. La funzione INDIRETTO() fa il resto nel senso detto sopra.
... hai afferrato ora il senso logico applicato dalla formula ?
Re: [Risolto] Invertire l'ordine di celle selezionate...
Sì, grazie alla tua dotta spiegazione, complimenti.lucky63 ha scritto: ... hai afferrato ora il senso logico applicato dalla formula ?
charlie
macOS 14.6.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
macOS 14.6.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org