[Risolto] Spostare celle per superamento valore

Creare una macro - Scrivere uno script - Usare le API
Rispondi
samurai76
Messaggi: 23
Iscritto il: martedì 20 marzo 2018, 20:45

[Risolto] Spostare celle per superamento valore

Messaggio da samurai76 »

Ciao, scusate il titolo dell'argomento ma non saprei sintetizzare meglio.

Ora mi spiego meglio...nella macro al file di esempio allegato, nel primo foglio, il mio obiettivo è quello di spostare uno sotto l'altro un range di celle (prese consecutivamente da una serie di dati messi nelle righe 7,8,9) quando la somma dei valori nella riga 9 supera 39

Il codice funziona ma mi da un errore finale che non riesco a superare. Sicuramente è il codice scritto male.

Per favore mi date una mano a correggerlo?
lavoro3.ods
sposta celle
(12.42 KiB) Scaricato 112 volte
Grazie
Samuele
Ultima modifica di samurai76 il sabato 1 febbraio 2020, 23:44, modificato 1 volta in totale.
Libreoffice 6 su ubuntu 17.04
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Spostare celle per superamento valore

Messaggio da patel »

Non ho capito lo scopo del programma, ma l'errore avviene nella riga
CellRange = oSheet.getCellRangeByPosition(col,6,n+1,8).RangeAddress
quando n+1 < col, infatti in questo caso il range non esiste, quindi devi inserire un controllo che eviti questa situazione. Per rendertene conto basta inserire la riga
print n & " " & col
dopo la riga n = n - 1
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
samurai76
Messaggi: 23
Iscritto il: martedì 20 marzo 2018, 20:45

Re: Spostare celle per superamento valore

Messaggio da samurai76 »

Grazie Patel, per la spiegazione dell'errore.
Questa macro è una integrazione di una più grande per un foglio di dati molto più complesso in cui devo fare esattamente quello che ho spiegato nel post precedente per ordinare delle informazioni.
Non so ancora come fare ma almeno adesso so da dove partire per risolvere l'errore.
Se ci riesco posto il codice.
Grazie ancora.
Samuele
Libreoffice 6 su ubuntu 17.04
samurai76
Messaggi: 23
Iscritto il: martedì 20 marzo 2018, 20:45

Re: Spostare celle per superamento valore

Messaggio da samurai76 »

Eccomi qui...non so se sia il modo più corretto per arrivare al mio obiettivo ma questo codice funziona senza errori.
lavoro3.ods
(12.87 KiB) Scaricato 113 volte
Il problema però non è più n+1<col che annullava il range in quanto, alzando di parecchio i valori delle celle e il limite della sommatoria da 39 a 3450, non si presenta più la situazione(come effettivamente dovrebbe essere nella situazione reale).
Il controllo invece ho dovuto metterlo proprio nel limite della sommatoria che non prevedeva il caso in cui fosse < di 3450 per cui non raggiungendo mai la condizione andava in errore.

Non so se mi son spiegato bene ma sicuramente dal codice riuscirai a capire cosa ho fatto.

Grazie Patel della dritta!!!
Libreoffice 6 su ubuntu 17.04
Rispondi