[Risolto] Raccolta risultati di una verifica su più pagine

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
DanteS
Messaggi: 16
Iscritto il: sabato 2 dicembre 2017, 17:57

[Risolto] Raccolta risultati di una verifica su più pagine

Messaggio da DanteS »

Un saluto a tutti

So cercando di realizzare delle macro che mi consentano di raccogliere le valutazioni di una verifica a risposta chiusa su due pagine importate da scanner. I risultati per ciascuna pagina, restituiti su due file in formato csv, sono prodotti da un programma di lettura scansioni OMR (Optical Mark Recognition), http://www.formscanner.org basato su java. Il progetto, freeware, si trova al link che posto perché potrebbe interessare a colleghi (insegno alle Superiori) o quant'altri; io sto usando il programma ormai da due anni sfruttando una foglio excel incluso nel progetto (ProcessBubble) un .xls che gira bene su Calc, ottimo per la possibilità di tarare la valutazione dei singoli quesiti e per fare statistiche, ma un po' macchinoso nelle fasi di caricamento e assemblaggio dei dati. Sto quindi tentando di costruire una procedura con il generatore di macro. Ho provato a studiare OO basic da - quasi - assoluto principiante dopo una esperienza di programmazione basic (con il commodore 64!) e HTML.

Allego il foglio fin qui lavorato “risultati_RACCOLTA bozza.ods”
risultati_RACCOLTA bozza.ods
Foglio calc calcolo risultati
(29.48 KiB) Scaricato 127 volte
Allego anche i due .csv che riportano i risultati della scansione di due pagine (
risultati-1x.csv
risultati p1
(2.35 KiB) Scaricato 119 volte
risultati-2x.csv
risultati p2
(1.98 KiB) Scaricato 103 volte
); i valori A e B stanno rispettivamente per Vero – Falso, le altre lettere si riferiscono a quesiti del tipo “completa la frase” e ogni lettera corrisponde a un vocabolo di completamento; le ultime due colonne registrano il numero identificativo dell'allievo distribuito su due celle una per le decine, l’altra per le unità. In buona sostanza le righe corrispondono alle risposte per ciascun allievo e le colonne ai quesiti.

Si dovrebbe procedere popolando il file ods “risultati_RACCOLTA bozza.ods” composto dal solo Foglio1 e usando il comando "Inserisci - foglio da file", e caricare i due file csv su due fogli (escludo la prima riga e uso “;” come separatore). Si applicano poi le macro contenute nel file calc per ciascun foglio importato

La macro "concatena” (valida per ambedue due fogli importati) sposta le caselle numeriche dalle ultime due colonne alla seconda e terza e poi le concatena in una casella vuota appositamente creata ottenendo così il numero progressivo allievo. Ho fatto questo per avere le ultime colonne vuote perché mi sembrava comodo poter aver disponibili i comandi vai alla fine della colonna - riga o dell'area dati.

L'allievo "00" in prima riga (inizio dati E1) è il correttore, è cioè la verifica da 10, a questa riga faranno riferimento le righe con le risposte degli allievi tramite la formula "=SE(E1<>"";SE(E1=E$1;1;0))" copiata e incollata dopo aver richiamato lo shortcut (CT RL+F2), registrata in macro, assegnando quindi 1 per la corrispondenza esatta e 0 per quella mancata.
Le macro "confronta" e “confronta1” contengono tale formula che “dovrebbe” essere estesa a tutta l'area dati dei risultati.

Ho poi deciso di collocare le corrispondenze così ottenute 0,1 .... etc in un'area dati sottostante precisamente due righe sotto l'ultimo allievo estendendo (incollando) la formula su tutta la riga (SHIFT+Fine)

Qui mi sono bloccato perché non so come delimitare questa nuova area dati verso il basso, volendo incollare la formula sopra indicata su tante righe sottostanti quanti sono gli allievi. Pensavo di leggere il valore della riga dell'ultimo allievo nell'area dati sopra e sommarla al valore della nuova riga, ma non so come memorizzare la variabile - ottenuta con la macro “rifriga” (quest'ultima macro, che somma il numero ottenuto con rif.riga al valore della riga della cella, inoltre, ordina il numero progressivo dell'allievo). Non sono riuscito a usare la funzione “RangeAddress” e “GetActiveCell” per definire l’area dati da cui poi generare la somma dei risultati

Pensavo di usare comando SHIFT + CTRL + Fine per raggiungere l'ultima colonna (delimitare l'area e finalmente incollare su tutta l'area la formula sopra riportata con CTRL + V). Ho pure provato ad usare i comandi 'Dati-definisci area-seleziona intervallo' registrando le macro “definisci area 21” ”definisci area 2” rispettivamente per i primi due fogli, ma non sembra funzionare.

Il file calc allegato ha, nel foglio1_3, il risultato atteso generato in parte con le macro e in parte completato “a mano”. Il foglio1_2 è il risultato di dove si arriva lanciando la macro “definisciarea21” e poi “confrontap1”. Qui ho anche aggiunto alla riga 21 due celle per avere i valori di rif.riga e rif.colonna, che non riesco però a usare come variabili nelle funzioni di confronto dati. Sempre in questo foglio ho provato a usare la funzione, più snella, matr.somma.prodotto, viewtopic.php?f=9&t=2997&p=14578&hilit= ... est#p14578 ma rimango ugualmente bloccato sul problema. In buona sostanza non riesco a dimensionare la matrice con area variabile (numero degli allievi per le righe e numero dei quesiti per le colonne) a seconda dei dati importati. Pensavo si potrebbe inserire una macro con finestra di dialogo iniziale con la quale chiedere il numero degli allievi e quello dei quesiti, ma tant’è, non saprei come inserire questi dati nelle funzioni di confronto e comunque credo si potrebbero acquisire più semplicemente i valori delle celle che "chiudono" le aree dati importate.

Il Foglio1, infine, è pensato per raccogliere, copiando dai due fogli con i dati il numero progressivo dell'allievo e il corrispondente risultato per ciascuna pagina. La colonna F somma i risultati delle due pagine e la colonna J riporta il valore delle risposte esatte in decimi (uso questo foglio da tempo per incollare i risultati ottenuti con il foglio ProcessBubble di cui ho detto all'inizio).

Ciliegina sulla torta, da ieri, se provo a editare con “Modifica” le macro create, calc va in crash (su windows, non su mac, e magari chi mi legge sarà più fortunato).

Mi rendo conto che il mio progetto, così come l'ho pensato, è lambiccato non poco e che ci siano procedimenti più snelli per andare in goal. Le macro contenute sono verosimilmente ridondanti e incomplete, ma se riesco a risolvere col vostro aiuto le registro di nuovo pulite (anche se un’idea a parte me lo sono fatta studiando le differenze tra i listati generati con il registratore macro e il codice scritto all’interno dell’IDE Basic, sicuramente più agile). Per cui ringrazio anticipatamente, confidando nella pazienza di chi mi legge
Ultima modifica di DanteS il giovedì 20 settembre 2018, 21:04, modificato 3 volte in totale.
OpenOffice 4.1.4 su Windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Raccolta risultati di una verifica su più pagine

Messaggio da patel »

il registratore produce codice poco comprensibile e difficilmente modificabile, meglio studiare il basic di OO ci cui puoi trovare molti esempi qui http://www.pitonyak.org/oo.php
Per quanto riguarda la tua richiesta non sono riuscito a capire bene, troppe cose tutte insieme, dovresti esporre un problema alla volta di quelli che non sei riuscito a risolvere
-------------------
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
DanteS
Messaggi: 16
Iscritto il: sabato 2 dicembre 2017, 17:57

Re: Raccolta risultati di una verifica su più pagine

Messaggio da DanteS »

Allego un nuovo file calc senza macro con i dati elaborati che vorrei avere organizzati automaticamente tramite macro. Il risultato qui è ottenuto eseguendo i comandi con mouse e tastiera.
Il foglio1_2 contiene i dati importati della verifica. La riga 1 contiene le risposte esatte con le quali le altre righe (ogni riga sottostante contiene le risposte dei singoli allievi) devono confrontarsi. Nella cella E23 ho immesso la funzione "=SE(E1<>"";SE(E1=E$1;1;0))" che poi ho esteso, trascinando, fino alla colonna AJ e poi trascinando fino alla riga 43 (è numero degli allievi aggiunto alla riga 23 dove inizia l'area dati per il confronto delle risposte) 1 e 0 riportano le risposte esatte o errate. Nella colonna AK partendo dalla riga 23 la funzione SOMMA calcola il totale delle risposte esatte.
Per verificare l'uso di un'altra funzione, precisamente "=MATR.SOMMA.PRODOTTO(($E$1:$AJ$1)=(E1:AJ1))" che restituisce medesima somma senza usare un'area dati di "appoggio", ho copiato uesta funzione trascinandola dalla cella AK1 a AK21 (sono in buona sostanza due vie per ottenere la somma dei risultati ottenuti dagli allievi).
Quello che vorrei è automatizzare questi passaggi atteso che ovviamente ogni verifica deve prevedere diversi allievi per classe e differente numero di quesiti (righe e colonne), quindi un'area dati "variabile". E' evidente che le funzioni sopra usate si riferiscono a un'area dati fissa. In buona sostanza vorrei una macro che leggesse la fine dell'area dati importata (in questo caso "AJ21") e inserisse la variabile nelle formule ("SE" oppure "MATRICE.SOMMA-PRODOTTO".
Nel Foglio1, infatti, importo un'area con una riga in più e una colonna in più, sulla quale le macro da me tentate in modalità registrazione (inserite nel file del mio post precedente) non funzionano (ho usato i comandi COPIA CELLA, INCOLLA e VAI A FINE RIGA). Grazie
Allegati
confronta risultati verifica.ods
Prospetto per individuazione Area Dati
(19.87 KiB) Scaricato 112 volte
OpenOffice 4.1.4 su Windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Raccolta risultati di una verifica su più pagine

Messaggio da patel »

DanteS ha scritto:..... In buona sostanza vorrei una macro che leggesse la fine dell'area dati importata (in questo caso "AJ21") e inserisse la variabile nelle formule ("SE" oppure "MATRICE.SOMMA-PRODOTTO".
tramite macro è possibile leggeree l'ultima riga dell'area dati importata, ma non lo è inserire il dato nelle formule, occorre fare tutto tramite macro. Avevo chiesto un problema alla volta ma non mi sembra che tu lo abbia recepito.
-------------------
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
DanteS
Messaggi: 16
Iscritto il: sabato 2 dicembre 2017, 17:57

Re: Raccolta risultati di una verifica su più pagine

Messaggio da DanteS »

Provo a riformulare in maniera - spero - semplificata come segue:

Data un'area dati E1:"XN" dove "XN" rappresenta le coordinate della cella finale di un'area dati variabile, con quali istruzioni OObasic posso
1) leggere il valore di "XN"
2) memorizzare tale valore
3) inserirlo nella funzione =MATR.SOMMA.PRODOTTO(($E$1:$"X"$"N")=(E1:"XN"))

Grazie
OpenOffice 4.1.4 su Windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Raccolta risultati di una verifica su più pagine

Messaggio da patel »

Se ho capito bene nel Foglio1_2 tu importi il file csv che può avere un numero di righe variabile e tu vuoi conoscere l'ultima riga.
Domanda per Dante: la tabella sottostante con le formule ce la metti dopo aver fatto l'importazione ? io per trovare l'ultima riga piena devo avere il foglio vuoto o almmeno alcune righe vuote sotto la tabella importata.

Domanda per Dante e Gioh66: se tramite macro scrivo nella cella AM1 l'indirizzo dell'ultima cella della tabella importata, tu riesci ad utilizzarlo nelle formule ?
-------------------
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
Avatar utente
gioh66
Volontario
Volontario
Messaggi: 1746
Iscritto il: lunedì 31 luglio 2017, 14:57
Località: Friuli

Re: Raccolta risultati di una verifica su più pagine

Messaggio da gioh66 »

Buonasera, forse si potrebbe fare una formula che tramite INDIRETTO e CONTA.VALORI sulla colonna A, vada ad indicare un matrice variabile...
Una cosa tipo INDIRETTO("F1:AK"&conta.valori(A1:A1000))
ma non mi viene in mente nessuna formula che ti dia il risultato voluto da una simile matrice.
L'unica cosa che mi viene in mente è di modificare la tua formula così

Codice: Seleziona tutto

=SE($A1="";"";MATR.SOMMA.PRODOTTO($F$1:$AK$1=$F1:$AK1))
e applicarla al range AL1:AL200 (o più).
In pratica nella casella del nome delle celle scrivi AL1:AL200 e dai invio. Poi in AL1 metti la formula e la confermi con ALT+INVIO e viene applicata al range indicato, lasciando in bianco le celle corrispondenti della colonna A che sono vuote. Non è proprio un automatismo ma velocizza un po' il lavoro.
...se sei soddisfatto delle risposte ricevute metti il [Risolto] https://forum.openoffice.org/it/forum/v ... f=9&t=5661

Libreoffice 6/7 Ubuntu 22.04 - PcLinuxOS - LinuxMint 21
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
Messaggi: 2996
Iscritto il: martedì 18 maggio 2010, 17:01

Re: Raccolta risultati di una verifica su più pagine

Messaggio da lucky63 »

Allego esempio con file contenente due fogli di lavoro e una macro che quando avviata :
- carica il file csv1 nel Foglio1;
- carica il file csv2 nel Foglio2;
- in entrambi i fogli inserisce dopo la colonna A due colonne (B e C) che vengono popolate rispettivamente con il NR.Studente e il rispettivo PUNTEGGIO;
- per ultimo cancella i dati superflui delle ultime due colonne di ciascun foglio (DecinaNrStudente e UnitàNrStudente)
La macro deve essere però prima adeguata per quanto riguarda /Percorso/NomeFile modificandolo nelle due seguenti righe:

Codice: Seleziona tutto

FileDaAprire = ConvertToURL("file:///home/NOMEUTENTE/Scaricati/risultati-1x.csv") '-Esempio Percorso "LINUX"
FileDaAprire = ConvertToURL("file:///home/NOMEUTENTE/Scaricati/risultati-2x.csv") '-Esempio Percorso "LINUX"
La macro è ben commentata al suo interno per facilitare l'utente.
Risulta inoltre di rapidissima esecuzione anche su computer datati.
In entrambi i fogli è stata inoltre fissata la prima riga per facilitare i primi controlli visivi di verifica scorrendo verticale le tabelle riga per riga.

Dati importati nel Foglio1
Foglio1.png
Dati importati nel Foglio2
Foglio2.png
Allegati
Test - MacroCaricaFile_csv1_NelFoglio1_e_csv2_NelFoglio2_PopolandoColonnaB_ConNrStudente_e_ColonnaC_ConPunteggioStudente.ods
(26.13 KiB) Scaricato 102 volte
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
Messaggi: 2996
Iscritto il: martedì 18 maggio 2010, 17:01

Re: Raccolta risultati di una verifica su più pagine

Messaggio da lucky63 »

Allego altra versione che evidenzia con sfondo giallino le celle con risposta errata per facilitarne un immediato riscontro visivo.
La macro deve essere però prima adeguata per quanto riguarda /Percorso/NomeFile modificandolo come detto nel post precedente.
La macro è un po' più lenta nell'esecuzione ma credo che questa modifica possa essere molto utile.


Foglio1
Foglio1.png
Foglio2
Foglio2.png
Allegati
Test - MacroCaricaFile_csv1_NelFoglio1_e_csv2_NelFoglio2_PopolandoColonnaB_ConNrStudente_e_ColonnaC_ConPunteggioStudente - 02.ods
(28.89 KiB) Scaricato 87 volte
DanteS
Messaggi: 16
Iscritto il: sabato 2 dicembre 2017, 17:57

Re: Raccolta risultati di una verifica su più pagine

Messaggio da DanteS »

La macro scritta da lucky63 è perfetta, fa esattamente quello che chiedevo, e i commenti sono un ottimo invito a (provare) a capire il basic.
Ho completato aggiungendo un foglio di raccolta dei risultati con una macro ("somma2fogli") che per prima cosa ordina i dati secondo il numero degli allievi, poi copia le colonne B e C e le incolla nel Foglio 3 (colonne A e B per il foglio 1 e colonne D e E per il foglio 2) sommando le risposte giuste per allievo dei due fogli e riportando la somma in valori decimali. Questa macro è ottenuta tramite il registratore, quindi molto più verbosa e verosimilmente meno "economica" come codice.
risultato finale
risultato finale
Approfitto ancora del vostro aiuto perché vorrei poter far accettare più di una risposta ad alcuni quesiti , una specie di tolleranza nel correttore. Il programma form scanner prevede nel suo editor tale eventualità e le lettere inserite dal correttore sono generate separate dal carattere "pipe" ("|"). Dovrebbero esistere delle funzioni che controllano la presenza di almeno una valore in una cella (ad esempio qui viewtopic.php?f=9&t=7728) ma non saprei comunque come modificare la macro. Allego il foglio aggiornato con la mia macro "Test _ carica files csv1_2 e finaleok.ods" con i fogli 1 e 2 popolati con due versioni identiche dei risultati, ma nel foglio 2 con le risposte multiple accettate dal correttore (vedi colonne J e W, in riga 1 separate dal "pipe").
errori tolleranza multiple
errori tolleranza multiple
Rispondo, scusandomi per il ritardo, infine, a Patel: sì, la tabella sottostante la metto dopo aver fatto l'importazione, e non saprei come inserire l'indirizzo dell'ultima cella nella formula
Allegati
Test _ carica files csv1_2 e finaleok.ods
test risultato finale
(19.17 KiB) Scaricato 99 volte
Ultima modifica di DanteS il lunedì 17 settembre 2018, 8:55, modificato 3 volte in totale.
OpenOffice 4.1.4 su Windows 10
DanteS
Messaggi: 16
Iscritto il: sabato 2 dicembre 2017, 17:57

Re: Raccolta risultati di una verifica su più pagine

Messaggio da DanteS »

Allego anche i due file .csv ai quali la macro punta nella directory C:\arte che ho scelto per mia comodità.
Allegati
risultati_2.csv
risultati 2
(2 KiB) Scaricato 74 volte
risultati_1.csv
risultati 1
(2 KiB) Scaricato 98 volte
OpenOffice 4.1.4 su Windows 10
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
Messaggi: 2996
Iscritto il: martedì 18 maggio 2010, 17:01

Re: Raccolta risultati di una verifica su più pagine

Messaggio da lucky63 »

Nei Fogli 1 e 2 i dati vengono così importati ed elaborati:
Test - Carica files csv1_2 e finaleok - 01 - 01.png
- Colonna B Nr Studente
- Colonna C Risposte esatte (Riscontro esatte Lettera singola e Lettera Sinistra di quelle ove prevista la tolleranza "LetteraPipeLettera")
- Colonna D Riscontri Tolleranza alla sola lettera di destra ove prevista la tolleranza "LetteraPipeLettera"
- Punteggio Tolleranze e relativi riscontri evidenziati sfondo verde
- Risposte sbagliate evidenziate sfondo giallo
- La tabella dati viene riordinata per numero crescente di studente

RIEPILOGO così strutturato:
Test - Carica files csv1_2 e finaleok - 01 - 02.png
Come da riga in intestazione:
- Colonna A Numero studente
- Colonna B Esatte Foglio1
- Colonna C Tollerate Foglio1
- Colonna D Esatte Foglio2
- Colonna E Tollerate Foglio 2
- Colonna F = TOTALE come Somma di Esatte e Tollerate di entrambi i fogli
- Colonna G = Dati colonna F espressi in DECIMI
Cliccando sul pulsante rosso "START" si avvia la macro.
Ricordarsi di adeguare la macro nelle due righe di "Percorso" già indicate nella risposta iniziale .
Allegati
Test - Carica files csv1_2 e finaleok - 01.ods
(33.61 KiB) Scaricato 78 volte
DanteS
Messaggi: 16
Iscritto il: sabato 2 dicembre 2017, 17:57

Re: [Risolto] Raccolta risultati di una verifica su più pagi

Messaggio da DanteS »

Ho messo la spunta [Risolto] troppo presto :knock: . Sollecitando la macro ho rilevato errori. Da provare questi due fogli di verifica, che allego, previsti senza tolleranze. Alcuni risultati superano il 10, il correttore, che comunque riporta il 10, presenta delle celle colorate che segnano errore. Due assenti (n.2 e 10), ma è da prevedere, ovviamente. Infine, siccome non tutti gli allievi riportano correttamente il loro numero progressivo, sarebbe bene avere le colonne con gli ordinali degli allievi non riunite ma separate per gli opportuni controlli, (qualcosa di simile a quanto ho proposto nell'impostazione del mio foglio 3 popolato con macro registrata - vedi allegato al mio precedente messaggio). Succede infatti che qualcuno (ma possono anche essere sbavature di scansione) riporti un numero sul fronte e un altro sul retro .

Ho fatto girare i due nuovi csv di test sulla macro precedente (quella che non prevedeva tolleranze) e il risultato non è ugualmente quello atteso. Credo che prima di tutto sia necessario ordinare il numero progressivo, e mettere la matrice di controllo (progressivo 00) in riga 1, poi passare alle funzioni di controllo (di fatto i primi due csv che ho passato erano già ordinati)

Colpa mia: non avrei dovuto Inviare due file csv già ordinati. In effetti la sequenza procedurale: scansione, conversione da PDF a file immagini e lettura delle immagini da parte del software, non genera file CSV nativi ordinati. Il record 00 viene regolarmente associato al correttore, ma non viene generato in testa agli altri, anche se il foglio corrispondente è passato per primo allo scanner.

Credo di aver comunque risolto studiando il codice creato da Lucky63. Ho infatti aggiunto la routine di ordinamento subito dopo quelle di popolamento delle colonne modificando la variabile "oSortFieldsF1" con una diversa: "oSortFieldsF1a", perché andavano in conflitto. Adesso provo a mettere sotto stress il foglio così sistemato caricando i diversi risultati delle verifiche lavorati con ProcessBubble e vi faccio sapere. Allego il foglio con la macro modificata
Test - Carica files csv1_2 e finaleok - 02.ods
Ordina il numero studente neii fogli 1 e 2 prima delle routine di verifica e raccolta risultati
(36.8 KiB) Scaricato 85 volte
Un'ultima richiesta (non vitale ; mi basta quindi qualche indicazione poi il codice provo a modificarlo io) : vorrei togliere il riepilogo delle tolleranze in foglio 3 (basta il riscontro cromatico nei fogli precedenti) e magari mettere sempre nel foglio 3 le colonne con il numero degli allievi per ciascuna scansione, prima della colonna con le rispettive risposte esatte. In questo modo, come già detto sopra, si può esercitare un controllo su eventuali errori - cogenti - di registrazione del numero dell'allievo (potrebbero causare attribuzione di un punteggio alla persona sbagliata). Grazie ancora per la collaborazione e la pazienza
Allegati
risultati_2.csv
foglio 2
(2.7 KiB) Scaricato 92 volte
risultati_1.csv
foglio 1
(3.18 KiB) Scaricato 79 volte
OpenOffice 4.1.4 su Windows 10
DanteS
Messaggi: 16
Iscritto il: sabato 2 dicembre 2017, 17:57

Re: Raccolta risultati di una verifica su più pagine

Messaggio da DanteS »

Ho anche modificato la riga 52 del codice che pulisce l'area dl foglio 3 ogni volta che si caricano nuovi dati

Codice: Seleziona tutto

Foglio3.getCellRangeByPosition(0,1,UltimaColonnaF3,UltimaRigaF3+10).ClearContents(5)
che era prima "UltimaRigaf3+1" portando a 10 l'allungamento dell'area dati perché caricando file con aree più ridotte rimanevano "appese" righe del precedente caricamento. Sicuramente c'è un metodo più elegante ...
Allegati
Test - Carica files csv1_2 e finaleok - 03.ods
aggiornamento con area di refresh estesa
(24.36 KiB) Scaricato 90 volte
OpenOffice 4.1.4 su Windows 10
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
Messaggi: 2996
Iscritto il: martedì 18 maggio 2010, 17:01

Re: [Risolto] Raccolta risultati di una verifica su più pagi

Messaggio da lucky63 »

Allego file con le ultime modifiche che avevo apportato per un'eventuale più utile riscontro e/o ulteriore adattamento.
La macro originaria è stata modificata e spezzata in più macro (anche se codice diventa così ridondante).
Le macro sono ora cinque e ciascuna collegata a pulsante diverso.
La prima macro (collegata al pulsante rosso) carica i file csv ....
- evidenzia con sfondo VERDE la riga dello studente 00 in qualunque posizione si trovi
- evidenzia con sfondo arancione le risposte errate
- evidenzia con sfondo giallo le eventuali tolleranze
- i conteggi sono riportati per ciascun studente cosi come da dati importati da file csv.
Test - Carica files csv1_2 e finaleok - 02 - 01.png
Da notare che ho aperto gli ultimi due file File csv anche con editor di testo ed in essi si riscontra che nelle ultime due colonne non è presente la corrispondenza dello studente 10 (Decina 1 Unità 0) quindi credo sussista un errore a monte dei file csv.
Nel file csv 1 manca anche lo studente 02
Nel file csv 2 ci sono anche delle caselle vuote (;;). Vedasi righe inizianti con pagina 0002 0009 e 0008.
Forse altri dati mancanti e/o errati che mi sono sfuggiti.

Anche questo nuovo file, come i precedenti, nella parte che importa/carica i file csv altro non fà che riportare gli stessi dati nei fogli1 e 2 (intestazione esclusa.

Questo nuovo file ti permette di fare riscontri a vista direttamente per come sono stati importati i dati.
Intervenendo poi sugli altri pulsanti (con nome eloquente) per ottenere:
- Ordinamento del solo foglio1 (Studente 00 in alto - sfruttabile lo scrollin per controllo più vicino linea per linea);
- Ordinamento del solo foglio2 (...come sopra per foglio1 ...)
In entrambi i casi si avrà un'anteprima dei risultati di quel solo foglio nel riepilogo.
Test - Carica files csv1_2 e finaleok - 02 - 02.png
- Pulsante RIEPILOGO (Colore Verde) compila tutto il RIEPILOGO
- Pulsante PULISCI RIEPILOGO cancella/azzerra i darti nel solo riepilogo.
Ho testato più volte anche i file csv precedenti riportanti le tolleranze e i relativi riscontri mi sembrano corretti.
....
..
.
Allegati
Test - Carica files csv1_2 e finaleok - 02.ods
(25.69 KiB) Scaricato 85 volte
DanteS
Messaggi: 16
Iscritto il: sabato 2 dicembre 2017, 17:57

Re: [Risolto] Raccolta risultati di una verifica su più pagi

Messaggio da DanteS »

I test finora effettuati sono soddisfacenti.
Ottimo lavoro. Grazie ancora

(Condivido la procedura qui) http://sand.altervista.org/forms.html
OpenOffice 4.1.4 su Windows 10
Rispondi