Condividi:        

Mescolare 5000 domande concorso

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 5000 domande concorso

Postdi Nbiec » 05/06/16 15:08

Salve ragazzi, sono nuovo nel forum e avrei bisogno del vosto aiuto.
Devo studiare per un concorso e ho bisogno di mescolare le 5000 domande in modo casuale.
Il file in questione è il seguente: http://www.filedropper.com/bancadati
Nbiec
Newbie
 
Post: 3
Iscritto il: 05/06/16 15:00

Sponsor
 

Re: Mescolare 5000 domande concorso

Postdi alfrimpa » 05/06/16 18:58

Ciao

Come puoi pensare che ti si possa aiutare se non alleghi un file di Excel?

Quello che hai allegato non è un file di Excel quindi tocca a te riproporre il file che hai allegato in Excel.
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: Mescolare 5000 domande concorso

Postdi Nbiec » 06/06/16 14:23

Nbiec
Newbie
 
Post: 3
Iscritto il: 05/06/16 15:00

Re: Mescolare 5000 domande concorso

Postdi alfrimpa » 06/06/16 15:16

Ciao

Ho visto il file e, a mio modo di vedere, ha una struttura troppo complessa per tentare di fare quello che chiedi.

A mio parere la struttura dovrebbe essere la seguente

In colonna A un numero progressivo
In colonna B la domanda
Nelle colonne C, D, E e F le riposte A, B, C e D
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: Mescolare 5000 domande concorso

Postdi alfrimpa » 06/06/16 15:41

Ciao

Ti allego una macro (non mia ma presa da altro forum) che fa quello che chiedi ma la struttura del foglio (cioè posizione delle domande e delle risposte deve essere esattamente quella che ti ho indicato nel mio messaggio precedente (devi quindi riconvertire il tutto e, personalmente, non so se ne valga la pena)

Codice: Seleziona tutto
Sub Mischia()
Dim uRiga As Long, Nome As String
Dim Risposta As Integer
Nome = ActiveSheet.Name
Application.ScreenUpdating = False
Dim sh1 As Worksheet: Set sh1 = Worksheets(Nome)
uRiga = sh1.Range("A" & Rows.Count).End(xlUp).Row
sh1.Range("D2:G" & uRiga).Interior.Pattern = xlNone
sh1.Range("H2:H" & uRiga).ClearContents
sh1.Range("A1,H1") = ""
Risposta = MsgBox(prompt:="Desideri mischiare le colonne?", Buttons:=vbYesNo)
Dim iRow As Long
Dim iCol As Long
Dim Temp As String
Dim Cas As Integer
    If Risposta = vbYes Then
        For iRow = 2 To uRiga
            For iCol = 1 To 4
                Randomize Timer
                Cas = Int(Rnd * 4) + 1
                Temp = Cells(iRow, iCol + 3)
                sh1.Cells(iRow, iCol + 3) = sh1.Cells(iRow, Cas + 3)
                sh1.Cells(iRow, Cas + 3) = Temp
                If sh1.Cells(1, iCol + 3) = sh1.Cells(iRow, 3) Then
                    sh1.Cells(iRow, 3) = sh1.Cells(1, Cas + 3)
                ElseIf Cells(1, Cas + 3) = sh1.Cells(iRow, 3) Then
                    sh1.Cells(iRow, 3) = sh1.Cells(1, iCol + 3)
                End If
            Next
        Next
    Else
        GoTo Righe
    End If
Righe:
Risposta = MsgBox(prompt:="Desideri mischiare le righe?", Buttons:=vbYesNo)
    If Risposta = vbYes Then
        Dim Inizia As Long, I As Long, J As Long, TTemp
        Dim Arr()
        uRiga = sh1.Range("A" & Rows.Count).End(xlUp).Row - 1
        Inizia = 1
        ReDim Arr(Inizia To uRiga, 1 To 1)
        For I = Inizia To uRiga
            Arr(I, 1) = I
        Next
        For I = uRiga To Inizia Step -1
            J = Rnd * (uRiga - Inizia + 1) + Inizia
            If J > uRiga Then J = uRiga
            TTemp = Arr(I, 1)
            Arr(I, 1) = Arr(J, 1)
            Arr(J, 1) = TTemp
        Next
        sh1.Range("A2:A" & (uRiga - Inizia + 2)) = Arr
        uRiga = sh1.Range("A" & Rows.Count).End(xlUp).Row
        sh1.Sort.SortFields.Clear
        sh1.Sort.SortFields.Add Key:=Range("A2:A" & uRiga) _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With sh1.Sort
            .SetRange Range("A1:I" & uRiga)
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    End If
Risposta = MsgBox(prompt:="Allargare/restringere la colonna B, attualmente uguale a " & sh1.Columns(2).ColumnWidth, Buttons:=vbYesNo)
    Dim X
    If Risposta = vbYes Then
        X = InputBox("Inserisci nuova valore larghezza", , 0)
        sh1.Columns(2).ColumnWidth = X
        sh1.Range("D2:G" & uRiga).Rows.AutoFit
    End If
Set sh1 = Nothing
Application.ScreenUpdating = True
MsgBox "fatto"
End Sub


La macro ti chiede se vuoi mischiare le righe o le colonne e se vuoi allargare o meno le colonne.
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: Mescolare 5000 domande concorso

Postdi Nbiec » 06/06/16 16:06

Il lavoro è esagerato da fare a mano. Si potrebbe usare qualche macro? Purtroppo non me ne intendo.
Nbiec
Newbie
 
Post: 3
Iscritto il: 05/06/16 15:00

Re: Mescolare 5000 domande concorso

Postdi alfrimpa » 06/06/16 18:35

Mi ripeto con la struttura dei dati che hai adesso è molto complicato e personalmente non penso di esserne capace.
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: Mescolare 5000 domande concorso

Postdi wallace&gromit » 07/06/16 07:28

per la struttura dei dati puoi iniziare con formule:
da B1 a E1 inserisci queste:
Codice: Seleziona tutto
=SE(SINISTRA(A2;2)="A)";A2;"")

Codice: Seleziona tutto
=SE(SINISTRA(A2;2)="A)";A3;"")

Codice: Seleziona tutto
=SE(SINISTRA(A2;2)="A)";A4;"")

Codice: Seleziona tutto
=SE(SINISTRA(A2;2)="A)";A5;"")

poi copi verso il basso.
Il problema è che a riga 2100 succede qualcosa di strano.
Devi sistemare un po' a mano quelle righe "sballate" e poi continuare l'operazione spiegata sopra.
Alla fine potrai estrarre facilmente solo le righe in cui c'è del testo nelle colonne da B a E.
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: Mescolare 5000 domande concorso

Postdi Anthony47 » 08/06/16 00:22

Il file pubblicato e' poco utilizzabile perche' ha un formato "a piacere suo".
Sarebbe tutto gestibile se invece l'organizzazione fosse in formato del tipo:
Codice: Seleziona tutto
-Domanda
-risposta giusta
-altra risposta
-altra risposta
-altra risposta

Sarebbero tollerabili anche variazioni del tipo
Codice: Seleziona tutto
-Domanda
-continuazione domanda
-risposta giusta
-altra risposta
-altra risposta
-altra risposta

Codice: Seleziona tutto
-Domanda
-risposta giusta
-riga con meno di 6 crt, da ignorare (posizionata a piacere)
-altra risposta
-altra risposta
-altra risposta


Invece spesso, soprattutto dopo la riga 35mila, la struttura diventa un guazzabuglio di difficile interpretazione.

Comunque, lavorando su quanto fatto per l'utente ELSAFA (vedi viewtopic.php?f=26&t=95743) ho preparato questo file:
https://www.dropbox.com/s/l2b7qwch388ta ... .xlsm?dl=0

Le domande vanno inserite in colonna A di Foglio1.
Bisognera' poi lanciare la macro CreaDom_V3, la quale:
-copia le domande in Foglio2
-fa una pulizia di alcune situazioni anomale di semplice identificazione
-posiziona le domande in foglio RESULT, con accanto in sequenza casuale le possibili risposte
L'operazione puo' richiedere qualche minuto, e al completamento esce un messaggio di "Completato" (circa 1-2 minuti per le 12mila righe che sono nel file di esempio)

Io ho inserito le domande fino alla riga 12300 circa, non garantisco che la trasposizione sul foglio RESULT sia corretta. Certamente le domande che non hanno tutte le 4 risposte elencate sono problematiche... In questo caso torna su Foglio1, esamina quella domanda e come sono strutturate le righe che precedono /seguono e certamente troverai qualcosa di incomprensibile che dovrai cercare di ripulire.
Ad esempio guarda le domande tra 45 e 52, che corrispondono su Foglio1 alle righe tra 227 e 266...


Le verifiche di apprendimento vanno fatte su RESULT. Semplificando alla grande:
-Selezionando una cella con una risposta, se la risposta e' quella esatta (per la domanda posta su quella riga...) la cella diventa Verde, altrimenti Rossa
-Le domande assumono un colore che va dal verde cupo (piu' di 4 risposte esatte) al rosso rosso (piu' di 4 risposte errate)
-Cliccando in C1 compare un micro-help che spiega come si possono scegliere le domande e come si danno le risposte.
-Cliccando in B1 viene selezionata una domanda a caso, ma non ' obbligatorio rispondere a quella domanda.

Buon lavoro.
Avatar utente
Anthony47
Moderatore
 
Post: 19221
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Mescolare 5000 domande concorso":

concorso Coca cola
Autore: valyfilm
Forum: Forum off-topic
Risposte: 1

Chi c’è in linea

Visitano il forum: papiriof e 51 ospiti