calcolo percentuale risposte esatte



  • calcolo percentuale risposte esatte
    di nichicanta data: 29/06/2013 21:41:59

    Amici, ho impostato questo codice che dovrebbe (la percentuale la visualizzo con tante cifre ed io la vorrei in questo modo es. 20%; 33% ecc.) calcolarmi la percentuale di risposte esatte su tutte le domande del quiz.
    Vi chiedo, per cortesia di dare un occhiata al codice che vi allego, sempre se secondo voi fa quello che desidero e poi possibilmente (poiché la percentuale la devo far comparire su una label) vi chiedo di poter aggiungere al codice, il testo che mi dice: la percentuale di risposte esatte è pari al 20%;32% e cosi via e che hai risposto a nr. domande su un totale di NN. domande.
    Ringrazio in anticipo chi mi aiuta.
     
    Sub Percentuale_Risposte_Esatte()
    Dim x As Long
    Dim tot As Integer
    ThisWorkbook.Sheets("Foglio1").Select
    tot = WorksheetFunction.CountA(Range("A2:A80000"))
    x = Range("a" & Rows.Count).End(xlUp).Row
    'Sheets("Foglio1").Range("c2") = Application.WorksheetFunction.CountIf(Range("a1:a" & UCase(x), "RISPOSTA ESATTA"))
    MsgBox CDbl(tot / x) * 100 & "%"
    End Sub



  • di paolomath (utente non iscritto) data: 30/06/2013 00:15:11

    Non ho capito bene i valori che range devono avere (mi sembra di aver "intuito" 1 per risposta esatta, Nul per risposta sbagliata) per il messaggio puoi mettere:

    MsgBox "La percentuale di risposte esatte è pari al " & Round((tot / x) * 100, 0) & "%" & Chr(13) & "Hai risposto a " & tot & " risposte su " & x & "."

    ...o qualcosa di simile.

    Bye



  • di Raffaele_53 (utente non iscritto) data: 30/06/2013 14:12:00

    Se non erro, un qualcosa non mi torna?
    x = Range("a" & Rows.Count).End(xlUp).Row. OK
    tot = WorksheetFunction.CountA(Range("A2:A80000")). Che vuol di?
    Casomai nella colonna "tot" (che non sarà la stessa), conta quanti sono con "RISPOSTA ESATTA"
    Io userei CountIf

    Tot = CountIf
    =tot/x e poi aggiusti il tutto in percentuali



  • di nichicanta (utente non iscritto) data: 08/07/2013 21:16:23

    Grazie all'aiuto di voi due, ho risolto in questo modo.
    Un saluto affettuoso a paolomath e Raffaele_53.

     
    Sub Percentuale_Risposte_Esatte()
    Dim x As Long
    Dim tot As Integer
    ThisWorkbook.Sheets("Foglio1").Select
    tot = Application.WorksheetFunction.CountIf(Range("H2:H80000"), "RISPOSTA ESATTA")
    x = Range("a" & Rows.Count).End(xlUp).Row
    'Sheets("Foglio1").Range("c2") = Application.WorksheetFunction.CountIf(Range("a1:a" & UCase(x), "RISPOSTA ESATTA"))
    UserForm1.Label10.Caption = "La percentuale di risposte esatte è pari al " & Round((tot / x) * 100, 0) & "%" & Chr(13) & "Hai risposto a " & tot & " risposte su " & x & "."
    End Sub