Random



  • Random
    di Mauro (utente non iscritto) data: 28/10/2012 16:05:07

    Chiedo aiuto per diventare milionario eheheheheh.....

    Voglio estrarre dei numeri casuali da un minimo ad un massimo e poi inserirli in una colonna . Lo scopo è attribuire ai numeri casuali una probabilità di successo man mano che escono i numeri estratti.

    Il problema che ho è che riesco fino ad un certo punto ma poi mi blocco, non riesco ad inserire i numeri estratti nella colonna. Vi allego il codice fin'ora prodotto .
     
    Sub estrai()
    
    Dim Riga As Double
    Dim Numero As Double
    Dim Diverso As Boolean
    Dim Ruota(10001) As Double
    Dim Minimo As Integer
    Dim Massimo As Double
    Dim DaEstrarre As Integer
    Dim err As String
    
    err = "Errore di input!"
    
    Massimo = Cells(6, 4)
    Minimo = Cells(5, 4)
    DaEstrarre = Cells(4, 4)
    
    
        Range("D3").Select
        Selection.ClearContents
        Range("D4").Select
    If DaEstrarre > 1000 Then Cells(3, 4) = "Max. 1000": Exit Sub
    If DaEstrarre < 1 Or DaEstrarre > Massimo - Minimo Then Cells(3, 4) = err: Exit Sub
    If Minimo >= Massimo Then Cells(3, 4) = err: Exit Sub
    
        Range("F:F,G:G").Select
        Range("G1").Activate
        Selection.ClearContents
        Range("D4").Select
    
    
    Cells(1, 6) = "N. progr."
    Cells(1, 7) = "N. estratto"
    
    
    
    For Riga = 2 To DaEstrarre + 1
        
            Cells(Riga, 6) = Riga - 1
    
    
        Randomize Timer
        
        
          
         
    Next Riga
       
    
       
    End Sub



  • di Vecchio Frac data: 28/10/2012 18:59:08

    A parte le osservazioni sulla riduzioni del codice (sai che son maniaco del codice conciso e ottimizzato ^_^):
    nel ciclo for utilizzi la formula per generare un numero casuale tra due limiti e assegnarlo alla corrispondente riga della colonna 7:

    Cells(riga, 7) = Int( Rnd * (massimo - minimo + 1) + minimo)

    Ma poiché mi sembra troppo banale che fosse questo il tuo problema, spiega meglio la frase " Lo scopo è attribuire ai numeri casuali una probabilità di successo man mano che escono i numeri estratti. " che probabilmente nasconde qualcosa di più interessante :)





  • Random
    di Mauro (utente non iscritto) data: 28/10/2012 20:25:48

    Ciao Vecchio Franc, ti allego il file per capire meglio con all'interno le istruzioni del progetto VBA.

    Magari è pò stupido il quesito ma non avendo ancora tanta dimestichezza con i codici mi intreccio !!!!



  • di Vecchio Frac data: 28/10/2012 20:51:16

    Allego la mia revisione.
    Credo che funziona come ti aspetti.
    Ho rimodellato un pochino il codice per renderlo più leggibile (ci sono molte variabili non usate, penso che quello che hai postato sia solo lo spezzone di un codice più ampio).
    Ci sono alcune incongruenze tra le barre di scorrimento nel foglio e le azioni nei rispettivi codici, dal punto di vista dell'utente le barre non sono molto comode (meglio l'inserimento in cella) ma sicuramente fanno estetica ^_^
    Valuta la possibilità di uno userform per interagire con l'utente (anche se l'utente alla fine sei solo tu).




  • Random
    di Mauro (utente non iscritto) data: 28/10/2012 21:14:32

    Grazie Vecchio Frac, va bene era quello che volevo, per userform che interagisca con l'utente.

    Se intendi migliorarlo va bene perchè a me non vengono altri abbellimenti da fare




  • di Vecchio Frac data: 29/10/2012 08:05:59

    cit. " a me non vengono altri abbellimenti da fare "
    ---> In particolare non parlavo di interfaccia utente (si tratta di stili e gusti personali dopo tutto), ma di miglioramento del codice. Questa è sì una questione di stile, ognuno programma a modo suo, ma anche di efficienza.