Condividi:        

mescolare risposte quiz

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

mescolare risposte quiz

Postdi kekkkkkkolo91 » 14/10/12 05:27

Ciao a tutti ho visto che avete avuto già problemi del genere ma leggendo gli altri post non sono riuscito seguendo i vostri consigli a risolvere il mio enigma....
Ho un file excel con delle domande che hanno tre risposte A B C e la risposta corretta è sempre la A......vorrei mescolare in modo casuale le risposte di queste domande cosi da potermi esercitare...potete aiutarmi...please!!!!
kekkkkkkolo91
Utente Junior
 
Post: 14
Iscritto il: 14/10/12 05:10

Sponsor
 

Re: mescolare risposte quiz

Postdi kekkkkkkolo91 » 14/10/12 07:03

esiste qualche macro ke venga in mio soccorso?
kekkkkkkolo91
Utente Junior
 
Post: 14
Iscritto il: 14/10/12 05:10

Re: mescolare risposte quiz

Postdi Flash30005 » 14/10/12 08:19

Ci sono diversi esempi come
questo
questo
o
questo

fai sapere fino dove arrivi nell'adattamento

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: mescolare risposte quiz

Postdi kekkkkkkolo91 » 14/10/12 13:42

Sono solo arrivato a portare il file da pdf ad excel incolonanndo tutte le domande e le risposte... Ora mi servirebbe una matrice per mescolare le risposte e lasciare invariate le domande....
kekkkkkkolo91
Utente Junior
 
Post: 14
Iscritto il: 14/10/12 05:10

Re: mescolare risposte quiz

Postdi Flash30005 » 14/10/12 17:34

Dovrai sistemare tutte le domande con le risposte a fianco e non in colonna
E' richiesto l'utilizzo di almeno due fogli Foglio input (risposte corrette sempre nello stesso posto) e output con risposte abbinate a lettere casuali

ciao

P.s. ho excel 2003 e non posso superare le 65535 righe
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: mescolare risposte quiz

Postdi Anthony47 » 14/10/12 19:08

Credo che Flash volesse dire che ogni Domanda e relative Risposte vanno messe in colonne adiacenti della stessa riga; comunque prova a pubblicare un esempio di file che hai ottenuto (per la procedura guarda qui: viewtopic.php?f=26&t=80395)

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: mescolare risposte quiz

Postdi kekkkkkkolo91 » 15/10/12 15:01

ciao a tutti...ho realizzato un altro documento excel piu ordinato dove ho messo le domande nellla colonna A e le risposte nelle colonne B C D sempre però su righe adiacenti....ho inserito solo quattro domande......spero che ordinato in questo modo si puo cambiare l'ordine delle risposte....ps la risposta corretta è sempre la A
il link è questo http://www.filedropper.com/cartel213
kekkkkkkolo91
Utente Junior
 
Post: 14
Iscritto il: 14/10/12 05:10

Re: mescolare risposte quiz

Postdi Flash30005 » 15/10/12 16:12

:?: (con ciò che hai postato non ci si fa nulla... è meglio procedere con razionalità)

Il precedente file è molto incasinato e dovrai sistemarlo per poterci lavorare
un buon aiuto può essere questa macro che toglie tutte le righe vuote, quello con il testo "pag.xx" e anche un carettere non Asci
Codice: Seleziona tutto
Sub PulisciPg()
Set Ws1 = Worksheets("CFS2012BANCADATI") '<<< cambia il nome del foglio origine
Set Ws2 = Worksheets("Matrice")
UR1 = Ws1.Range("A" & Rows.Count).End(xlUp).Row
For RR1 = UR1 To 1 Step -1
If Left(Ws1.Range("A" & RR1).Value, 4) = "pag." Then
    Rows(RR1 & ":" & RR1 + 2).Delete Shift:=xlUp
End If
If Ws1.Range("A" & RR1).Value = "" Then
Rows(RR1).Delete Shift:=xlUp
End If
Next RR1
End Sub


Dopo aver fatto pulizia devi controllare che tutte le domande abbiano all'inizio il codice numerico sequenziale a quattro cifre (0001, 0002, 0003 ... 1000.. etc)
se non è così non potrai utilizzare la macro che ti posto ora
Codice: Seleziona tutto
Sub CreaMatrice()
Set Ws1 = Worksheets("CFS2012BANCADATI")
Set Ws2 = Worksheets("Matrice")
UR1 = Ws1.Range("A" & Rows.Count).End(xlUp).Row
Application.ScreenUpdating = False
Application.Calculation = xlManual
Ws2.Cells.ClearContents
RigaIni = 1
Ws1.Select
MValore = 0
Inizio:
For RR1 = RigaIni To UR1
    If IsNumeric(Left(Ws1.Range("A" & RR1).Value, 4)) Then
        ValoreD = Val(Left(Ws1.Range("A" & RR1).Value, 4))
        If MValore <> 0 And MValore < ValoreD Then GoTo SaltaRRR
        For RRA = RR1 + 1 To RR1 + 15
            If (Len(Trim(Range("A" & RRA).Value)) = 1 And Trim(Range("A" & RRA).Value) = "A") Then
                RigaD = RRA - 1
                Col = 1
                UR2 = Ws2.Range("B" & Rows.Count).End(xlUp).Row + 1
                Domanda = ""
                For RRD = RigaIni To RigaD
                    Domanda = Domanda & " " & Ws1.Range("A" & RRD)
                Next RRD
                Domanda = Trim(Domanda)
                Ws2.Range("A" & UR2).Value = Domanda
                Exit For
            End If
        Next RRA
        For RRB = RigaD + 1 To RigaD + 6
            If Trim(Range("A" & RRB).Value) = "" Then GoTo SaltaRRB
            If (Len(Trim(Range("A" & RRB).Value)) = 1 And Trim(Range("A" & RRB).Value) = "B") Then
                RigaRA = RRB - 1
                UR2 = Ws2.Range("B" & Rows.Count).End(xlUp).Row + 1
                RispA = ""
                For RRA = RigaD + 1 To RigaRA
                    RispA = RispA & " " & Ws1.Range("A" & RRA)
                Next RRA
                RispA = Trim(RispA)
                Ws2.Range("B" & UR2).Value = RispA
                Exit For
            End If
SaltaRRB:
        Next RRB
        For RRC = RigaRA + 1 To RigaRA + 6
            If (Len(Trim(Range("A" & RRC).Value)) = 1 And Trim(Range("A" & RRC).Value) = "C") Then
                RigaRB = RRC - 1
                UR2 = Ws2.Range("B" & Rows.Count).End(xlUp).Row + 1
                RispB = ""
                For RRA = RigaRA + 1 To RigaRB
                    RispB = RispB & " " & Ws1.Range("A" & RRA)
                Next RRA
                RispB = Trim(RispB)
                Ws2.Range("B" & UR2).Value = RispB
                Exit For
            End If
        Next RRC
        For RRU = RigaRB + 1 To RigaRB + 6
                    If IsNumeric(Left(Ws1.Range("A" & RRU).Value, 4)) And Val(Left(Ws1.Range("A" & RRU).Value, 4)) = ValoreD + 1 Then
                    MValore = ValoreD + 1
                    RigaRC = RRU - 1
                    RigaIni = RRU
                    Exit For
                End If
            Next RRU
                UR2 = Ws2.Range("B" & Rows.Count).End(xlUp).Row + 1
                RispC = ""
                For RRA = RigaRB + 1 To RigaRC
                    RispC = RispC & " " & Ws1.Range("A" & RRA)
                Next RRA
                RispC = Trim(RispC)
                Ws2.Range("B" & UR2).Value = RispC
               GoTo Inizio
       
SaltaRRR:
    End If
Next RR1
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

Se tutto ok, avrai nel foglio2 (che dovrai aggiungere alla cartella prima dell'avvio macro) tutte le domande nella colonna A e tutte le risposte ordinate (da A a C) nella colonna B
Dopo aver fatto questo invia di nuovo il foglio

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: mescolare risposte quiz

Postdi kekkkkkkolo91 » 16/10/12 05:02

ciao flash ho provato a inserire la macro per ripulire il foglio ma quando creo la macro e inserisco il codice e premo invio per avviarla mi dice errore run time 9 indice non incluso nell'intervallo....come posso ovviare a questo problema?
kekkkkkkolo91
Utente Junior
 
Post: 14
Iscritto il: 14/10/12 05:10

Re: mescolare risposte quiz

Postdi kekkkkkkolo91 » 16/10/12 05:09

ho cambiato anche il nome delle due pagine di lavoro e una ho chiamata cfs2012....e l'altra Matrice come indicato nella macro ma niente.....anzi ora esce errore run time 13.....help ke devo fare?
kekkkkkkolo91
Utente Junior
 
Post: 14
Iscritto il: 14/10/12 05:10

Re: mescolare risposte quiz

Postdi kekkkkkkolo91 » 16/10/12 05:14

se clicco su debug mi dice ke la stringa errata evidenziandola in giallo è If Left(Ws1.Range("A" & RR1).Value, 4) = "pag." Then.....help
kekkkkkkolo91
Utente Junior
 
Post: 14
Iscritto il: 14/10/12 05:10

Re: mescolare risposte quiz

Postdi Flash30005 » 16/10/12 08:40

Ti invio il file da me elaborato (excel 2003) avrai un elenco troncato per via delle righe inferiori come numero ma la macro pulisciPg ha funzionato perfettamente
http://www.filedropper.com/mio3_1

Mentre la macro "CreaMatrice" trova continui problemi per i dati originali non corretto come in questo caso che manca il numero della domanda (0470).
Sono intervenuto più volte sull'elenco per arrivare fino a questa frase ma non posso sistemare tutto l'elenco anche perché alcune domande e/o risposte sono anomale (c'erano anche delle formule errate e trovavo ad esempio #Num o altro)

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: mescolare risposte quiz

Postdi kekkkkkkolo91 » 16/10/12 14:41

ciao flash ho sistemato la domanda 0470.....ora come posso agire per migliorare il file portandolo ad essere pronto per il lavoro successivo ovvero mescolare le risposte?
kekkkkkkolo91
Utente Junior
 
Post: 14
Iscritto il: 14/10/12 05:10

Re: mescolare risposte quiz

Postdi Flash30005 » 16/10/12 15:11

Cioè?
hai ottenuto il foglio2 (matrice) perfettamente normalizzato,
dove hai nella colonna A la domanda completa di numero a quattro cifre
e nella colonna B le risposte (A,B,C) disposte su 3 righe?

E questo per tutte le domande?
Se così invia il file "normalizzato"

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: mescolare risposte quiz

Postdi kekkkkkkolo91 » 16/10/12 18:39

ciao flash il file che mi hai postato mi da nel foglio 2 dopo la domanda 0469 una successione infinita di risposte a e b relative alla stessa domanda.....questo credo perchè non c'era la domanda 0470 completa....ora l'ho inserita e allo stesso tempo ho eliminato il contenuto del foglio2....ho eseguito la macro crea matrice ma mi si blocca non riuscendo a ricrearmi il foglio 2 completo.....potresti farlo tu applicando la macro giusta? grazie spero tu ci riesca.....ti ringrazio per la pazienza e per l'aiuto....ciao

ecco il link del file http://www.filedropper.com/mio3-copia
kekkkkkkolo91
Utente Junior
 
Post: 14
Iscritto il: 14/10/12 05:10

Re: mescolare risposte quiz

Postdi Flash30005 » 16/10/12 21:23

La macro dopo aver corretto la domanda 0470 si "ferma" e ripete le risposte A e B della domanda 0543 per lo stesso motivo:
non trova la domanda 0544 infatti se vai in debug (con Ctrl+Pausa) e vai sull'origine dati la domanda 0540 manca

Non credo che mi debba ad inserire domande quindi ti ho fornito uno strumento per farlo fare a te
cerca di usarlo al meglio
tanto più che almeno una volta queste domande le dovrai pur leggere o no?
Ciao

Ps. Non devi ripulire il foglio Matrice ad ogni avvio
ci pensa già la macro

Edit ore 23:00 - Aggiungo macro modificata che si blocca e avvisa in caso di anomalia sequenza Domande/Risposte

Codice: Seleziona tutto
Sub CreaMatrice()
Set ws1 = Worksheets("CFS2012BANCADATI")
Set Ws2 = Worksheets("Matrice")
UR1 = ws1.Range("A" & Rows.Count).End(xlUp).Row
Application.ScreenUpdating = False
Application.Calculation = xlManual
Ws2.Cells.ClearContents
RigaIni = 1
ws1.Select
MValore = 0
Inizio:
For RR1 = RigaIni To UR1
'If RR1 >= 4587 Then MsgBox RR1
    If IsNumeric(Left(ws1.Range("A" & RR1).Value, 4)) Then
        ValoreD = Val(Left(ws1.Range("A" & RR1).Value, 4))
        If MValore > 0 And ValoreD = MemV Then
            MsgBox "Anomalia nella Domanda " & MValore + 1 & " (forse mancante), controllare...", vbCritical
            GoTo esci:
        End If
        MemV = ValoreD
        If MValore <> 0 And MValore < ValoreD Then GoTo SaltaRRR

        For RRA = RR1 + 1 To RR1 + 15
            If (Len(Trim(ws1.Range("A" & RRA).Value)) = 1 And Trim(ws1.Range("A" & RRA).Value) = "A") Then
                RigaD = RRA - 1
                Col = 1
                UR2 = Ws2.Range("B" & Rows.Count).End(xlUp).Row + 1
                Domanda = ""
                For RRD = RigaIni To RigaD
                    Domanda = Domanda & " " & ws1.Range("A" & RRD)
                Next RRD
                Domanda = Trim(Domanda)
                Ws2.Range("A" & UR2).Value = Domanda
                Exit For
            End If
        Next RRA
        For RRB = RigaD + 1 To RigaD + 6
            If Trim(ws1.Range("A" & RRB).Value) = "" Then GoTo SaltaRRB
            If (Len(Trim(ws1.Range("A" & RRB).Value)) = 1 And Trim(ws1.Range("A" & RRB).Value) = "B") Then
                RigaRA = RRB - 1
                UR2 = Ws2.Range("B" & Rows.Count).End(xlUp).Row + 1
                RispA = ""
                For RRA = RigaD + 1 To RigaRA
                    RispA = RispA & " " & ws1.Range("A" & RRA)
                Next RRA
                RispA = Trim(RispA)
                Ws2.Range("B" & UR2).Value = RispA
                Exit For
            End If
SaltaRRB:
        Next RRB
        For RRC = RigaRA + 1 To RigaRA + 6
            If (Len(Trim(ws1.Range("A" & RRC).Value)) = 1 And Trim(ws1.Range("A" & RRC).Value) = "C") Then
                RigaRB = RRC - 1
                UR2 = Ws2.Range("B" & Rows.Count).End(xlUp).Row + 1
                RispB = ""
                For RRA = RigaRA + 1 To RigaRB
                    RispB = RispB & " " & ws1.Range("A" & RRA)
                Next RRA
                RispB = Trim(RispB)
                Ws2.Range("B" & UR2).Value = RispB
                Exit For
            End If
        Next RRC
        For RRU = RigaRB + 1 To RigaRB + 6
                    If IsNumeric(Left(ws1.Range("A" & RRU).Value, 4)) And Val(Left(ws1.Range("A" & RRU).Value, 4)) = ValoreD + 1 Then
                    MValore = ValoreD + 1
                    RigaRC = RRU - 1
                    RigaIni = RRU
                    Exit For
                End If
            Next RRU
                UR2 = Ws2.Range("B" & Rows.Count).End(xlUp).Row + 1
                RispC = ""
                For RRA = RigaRB + 1 To RigaRC
                    RispC = RispC & " " & ws1.Range("A" & RRA)
                Next RRA
                RispC = Trim(RispC)
                Ws2.Range("B" & UR2).Value = RispC
               GoTo Inizio
       
SaltaRRR:
    End If
Next RR1
esci:
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub


Sostituisci alla precedente
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: mescolare risposte quiz

Postdi Anthony47 » 17/10/12 02:34

Vedo dal file di Flash che l' elenco Domande /Risposte e' simile a quello usato in passato da altri utenti; partendo da questo elenco ho adattato quanto sviluppato in passato per ELSAFA (guarda qui: viewtopic.php?f=26&t=95743; era gia' una evoluzione di quanto sviluppato per mernin78)
Il risultato e' il file allegato, che contiene le risposte mischiate e la possibilita' di verificare la correttezza della risposta:
https://rapidshare.com/files/2235096162/Copia%20di%20Domande_Concorso-byAnthony_V-kekkk.xls

Lanciando la macro creadom_V2kk verra' creato una copia "normalizzata" dell' elenco domande, oltre che il foglio RESULT con il tabellone di domande e accanto le possibili risposte e gia' la possibilita' di verificare la correttezza della risposta.

Modalita' d' uso e istruzioni sono le stesse date a elsafa e mernin78, puoi leggerle qui: viewtopic.php?f=26&t=95121&start=20#p544781
Le uniche varianti riguardano:
-le colonne delle risposte su RESULT (sono C-D-E)
-manca la "Materia" della domanda, quindi in col A ho inserito una denominazione uguale per tutte
Quindi sintetizzando:
-prodotto il tabellone su Result
-identificare una domanda, selezionare la risposta; il colore della cella dira' se corretta o sbagliata
-e' possibile la scelta casuale di una domanda (vedi intestazioni su riga 1)
-esiste un micro-help (idem)

TUTTAVIA noterai che il tabellone in RESULT contiene degli errori; in alcuni casi identificabili da programma (es mancano le tre possibili risposte) ho inserito la stringa "####", in altri e' semplicemente la struttura della domanda o di una risposta corrotta.
Questo dipende dalla struttura del "sorgente" che non rispetta le seguenti regole che mi sono inventato per elaborarlo:
-le Domande cominciano con un numero di 4 cifre seguite da uno spazio
-una risposta e' preceduta da una riga di "preambolo" contenente "A ", "B " o "C " (notare lo "spazio" dopo la lettera; alcune risposte non contengono questo spazio)
-un "preambolo" presuppone la presenza almeno di una riga di risposta prima del preambolo successivo o della Domanda successiva. Un errore frequente e' che manca una risposta (pur essendoci un preambolo) e questo comporta una errata trasposizione delle Domande /Risposte sul foglio RESULT
Quindi quando noti un errore in RESULT, vai sul foglio di origine, localizza l' ultima domanda presentata correttamente ed esamina il formato della riga successiva per scoprire l' errore.

Insomma: prova, correggi, riprova... e fai sapere.

Ciao

Edit
Il file non piu' disponibile su Rapidshare e' ora disponibile qui:
https://www.dropbox.com/s/kcjaaexmmcx9l ... k.xls?dl=0
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: mescolare risposte quiz

Postdi kekkkkkkolo91 » 17/10/12 05:25

ragazzi siete dei grandi.....ci sto lavorando su entrambi i file che mi avete gentilmente creato....ora mi serve solo una macro per mescolare casualmente le risposte....grazie in anticipo di tutto quello che avete fatto per me....
kekkkkkkolo91
Utente Junior
 
Post: 14
Iscritto il: 14/10/12 05:10

Re: mescolare risposte quiz

Postdi kekkkkkkolo91 » 17/10/12 08:53

Ciao anthony come consigliato anche da flash ho deciso di seguire la macro che hai applicato al mio file excel....ho modificato il file e ho aggiustato tutti gli errori fino alla fine cosi da rendere il file perfetto....ora mi servirebbe un ultimo piccolo aiutino da te....una macro per mescolare le risposte anche se cmq ho notato che già hai modificato il loro ordine l'ordine.....io vorrei cmq avere la possibilità di modificarlo ancora ogni volta che voglio....hai una buona macro per me?
ti posto il link del file normalizzato ecco a te e grazie ancora....

http://www.filedropper.com/copiadidoman ... onyv-kekkk
kekkkkkkolo91
Utente Junior
 
Post: 14
Iscritto il: 14/10/12 05:10

Re: mescolare risposte quiz

Postdi Anthony47 » 18/10/12 01:29

Per ora la risposta e': riesegui la macro creadom_V2kk, (richiede 25 sec circa); ma non escludo di elaborare una macro specifica.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "mescolare risposte quiz":

Risposte ai miei TOPIC
Autore: Gigi38
Forum: Discussioni
Risposte: 9
Creare quiz online
Autore: nippon
Forum: Forum off-topic
Risposte: 2

Chi c’è in linea

Visitano il forum: Nessuno e 35 ospiti