Errore bizzarro

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
Avatar utente
Biagio91
Messaggi: 232
Iscritto il: mercoledì 3 febbraio 2021, 20:25

Errore bizzarro

Messaggio da Biagio91 »

Ciao a tutti,
Mi collego alla discussione https://forum-test.openoffice.org/it/fo ... =9&t=11050 in quanto il file su cui sto lavorando prende proprio spunto da quell'esempio;
Riscontro un comportamento molto bizzarro in un file che sto seguendo e non ne capisco proprio il motivo, se riuscite a capirci qualcosa ben venga.

fElenco è un foglio in cui sono presenti 2 pulsanti, uno per inserire voci nell'elenco, l'altro per ordinare le voci dell'elenco.
Tramite macro collegata ad un pulsante su fElenco si aprono una serie di inputBox (nel mio file, mentre nell'esempio allegato ne ho riportata solo una) in cui si scrivono alcuni dati che vengono riportati dalla macro anche in fRiepilogo (per es. NomeProdotto).
Questa macro però nel fRiepilogo non riporta solamente i dati inseriti tramite le inputbox ma pure molti altri che sono stati precedentemente scritti nel codice in quanto sono per la maggior parte delle formule di default che devono essere scritte nelle celle; tra queste ce ne è una in particolare che penso sia all'origine del problema.

FormulaRiepStatus = "=STILE(SE(VAL.ERRORE(R5)=1;(""ErrInput"");(SE($R5=""ErrInput"";""StileErrInput"";(SE(R5=""Scaduto"";""StileColore”";(SE(R5=""<1m"";""StileClr1"";[....Clr2,3,ecc..]SE(R5=""<12m"";""StileClr12"";""StileCellaVuota"")))))))))))))))))))))))))))))"

Sostanzialmente servirebbe per dare uno stile predefinito ad una CellaDiDestinazione dove è scritta la formula, in base a ciò che è scritto su un'altra cella in cui si calcolano i mesi che mancano ad una data di scadenza, e se i mesi sono inferiori a 12 allora inizia una sorta di conto alla rovescia.


Il comportamento strano che riscontro è dato dal fatto che questa parte di testo, da codice viene palesemente scritta solo ed esclusivamente sul fRiepilogo, non ci sono riferimenti a fElenco, eppure in fElenco mi ritrovo la cella corrispondente a quella in cui andrebbe scritta questa formula in fRiepilogo, che prende lo stile indicato dalla formula :knock:
Cioè....in fElencoA4, mi ritrovo lo stile di cella che è affibiato alla cella fRiepilogoA4 tramite la formula inserita nel codice.
Ovviamente nella cella ElencoA4 non c'è scritta questa formula, semplicemente...puff all'inserimento** cambia stile in CellaVuota (essendo quello lo stile che è affibiato a fRiepilogoA4 subito dopo l'inserimento)

Sto sbarellando da una settimana.
Per ora ho risolto togliendo ciò che non mi interessava dallo stile CellaVuota, ma è una toppa su un buco...cioè vorrei effettivamente capire dove sto sbagliando e perché diamine succeda sta cosa.


***
Ho ricreato un file da zero per poter postare un esempio, e l'errore non si ripete; così sono andato a vedere il file originale e ho commentato tutte le parti eseguendole passo passo, ho visto che l'unico caso in cui l'errore si genera è quando si esegue il codice:

FormulaRiepGiacTot= "=SE(VAL.ERRORE(INDIRETTO(INDIRIZZO(RIF.RIGA($A$" & RigaInizio+4 & ");RIF.COLONNA($H$1);1;;$B4)));""Errato"";(INDIRETTO(INDIRIZZO(RIF.RIGA($A$" & RigaInizio+4 & ");RIF.COLONNA($H$1);1;;$B4))))"
fRiepilogo.GetCellByPosition(6,RigaInizio+3).FormulaLocal = FormulaRiepGiacTot

Ora in questo file che posto come esempio l'errore non si sviluppa.
E' veramente una cosa da cui non riesco a venirne fuori. Come diamine è possibile che una formula che agisce solamente su un foglio, posssa cambiare lo stile di una cella in un altro foglio. è assurdo.
E' come se reputasse le nuove celle della colonna A di fElenco e di fRiepilogo collegate per lo stile.....cioè....possibile?
 Editato: So che può sembrare assurdo, ma dopo una settimana ho provato a cambiare l'ordine dei fogli, spostando il fElenco come primo foglio e mettendo tra fElenco e fRiepilogo il foglio del nuovo id creato, lo stile della cella viene affibiato alla stessa cella del fRiepilogo, ma sul fNuovoProdotto..... che dire....Forse il tutto potrebbe essere dovuto al fatto che quando si inserisce un nuovo foglio viene inserito a monte di tutti gli altri?? può essere che sia questo a sbarellare le tempistiche e quindi magari nel mio file che pesa di più riscontro una latenza tale da far si che lo stile cella venga sdoppiato sia in fElenco che in fRiepilogo?
EditBis: dopo averlo testato, sembra che il problema sia parzialmente risolto, ho messo l'inserimento del nuovo foglio in coda agli altri, ora non mi ritrovo più la cella con uno stile affibiato, ma mi rimane una sorta di selezione latente tra i pulsanti del foglio; mi spiego meglio;

Click sul pulsante che richiama l'evento di aggiunta righe su entrambi i fogli,
InputBox in cui scrivo il NomeProdotto da inserire in fElenco;
Disabilitazione protezione fogli
Esecuzione del codice che scrive sulla stessa riga del NomeProdotto di fElenco, vari dati su fRiepilogo;
Aggiunta nuovo foglio con Nome l'input dato del nuovo prodotto;
Abilitazione protezione fogli

Ora mi trovo sul foglio fElenco, se premo giù si sposta al pulsante successivo, se ripremo giù non essendoci altri pulsanti, allora si sposta finalmente in giù di una cella; ma se ora dopo un paio di volte che ho premuto giù scorrendo le celle ripremessi su oppure sx oppure dx, la selezione ritornerebbe al pulsante precedente, in pratica la prima volta che premo un tasto direzionale devo premerlo 2 volte per poter scorrere le celle. questo succede finche col mouse non porto la selezione su un'altra cella e allora si deseleziona il pulsante che nel frattempo era rimasto in "selezione latente".

EditTer: Si è risolto l'EditBis facendo fare al codice "click su un'altra cella" 
So che in parte mi sono risposto da solo su alcune cose...ma...io veramente non ci ho capito una mazza...possibile che dipendesse tutto veramente dall'aggiungere in testa o in coda un nuovo foglio tramite codice?
Se così fosse, mi sembra veramente strano, mi puzza, perchè fatalità lo stile compariva solo ed esclusivamente all'esecuzione della stringa di codice precedentemente citata....cioè...dai non può essere, c'è qualcosa che è rimasto sbagliato all'interno del file, solo che ora non lo vedo più...no?

E soprattutto....è normale che mi rimanesse quella "selezione latente" ?
Il fatto di aver riscontrato insieme queste bizzarrie è pura coincidenza oppure potrebbero essere legate tra loro?



Grazie mille se riuscite ad aiutarmi.
Ciao


Grazie mille
Ciao
OpenOffice 4.1.8 su Windows 7-10
::::May we meet again into the matrix::::