casuale



  • casuale
    di stefanmi data: 11/09/2013 12:14:22

    ho trovato degli esempi su questo sito ma non riesco a capire come mai non mi copia la formula "casuale" dove sbaglio ?
     
    Inseriamo la funzione "=CASUALE()" in cella "D2" ed eseguiamo la routine seguente che copia la formula in basso.
    
    	Sub Copia_in_Basso()
    	   Range("D2").Select
    	   Selection.AutoFill Destination:=Range("D2:D8"), _ 
    	   Type:=xlFillDefault
    	   Range("D2:D8").Select
    	End Sub



  • di Grograman data: 11/09/2013 12:27:22

    ma in De hai scritto "=CASUALE()"??



  • di stefanmi data: 11/09/2013 12:36:57

    ecco dov'era il trucco



  • di stefanmi data: 11/09/2013 13:31:41

    se invece voglio metterla con VBA come ho fatto non funziona però
     
    Sub Copia_in_Basso()
           Range("D2").Select
           Range("D2") = "=casuale()"
           Selection.AutoFill Destination:=Range("D2:D8"), _
           Type:=xlFillDefault
           
        End Sub



  • di totygno71 data: 11/09/2013 13:37:55

    mi intrufolo ^_^
     
    Range("D2").Select
           Range("D2").FormulaLocal = "=casuale()"
           Selection.AutoFill Destination:=Range("D2:D8"), _
           Type:=xlFillDefault



  • di stefanmi data: 11/09/2013 13:44:57




  • di Grograman data: 11/09/2013 14:34:29

    Tagliamo righe:
    (ovviamente è solo di esempio, quando si impara meglio pasticciare con tutte le proprietà e i metodi, poi si impara a tagliare ove non necessario!)
     
    Sub casual()
      Range("D2:D8").FormulaLocal = "=casuale()"
    End Sub



  • di stefanmi data: 11/09/2013 14:40:51

    questo me lo avete insegnato voi
     
    [D2:D8].FormulaLocal = "=casuale()"



  • di Vecchio Frac data: 11/09/2013 17:42:00

    Molto bene, un passo ulteriore ^_^
    La proprietà .Formula vuole la versione internazionale delle formule.
    Sapreste spiegare la differenza tra le due istruzioni seguenti?
     
    1) [D2:D8] = "=RAND()"
    
    2) [D2:D8] = [RAND()]






  • di stefanmi data: 11/09/2013 17:56:17

    la prima di da la formula casuale la seconda mi da questi numeri 0,116171886



  • di Gaetanopr (utente non iscritto) data: 11/09/2013 19:38:10

    mi intrufolo pure io
    la prima inserisce la formula nel range invece la seconda restituisce il risultato della formula a tutto il range
    ho detto bene?
     
    la prima equivale a  Range("D2:D8").Formula = "=RAND()"
    la seconda equivale a Range("D2:D8").Value = [RAND()]



  • di Vecchio Frac data: 11/09/2013 20:17:50

    cit. "ho detto bene? "
    ---> Sì.

    1) [D2:D8] = "=RAND()"
    La prima istruzione inserisce nel range la formula specificata tra virgolette. Una formula per ogni cella del range. Equivale dunque a Range("D2:D8").Formula = "=RAND()" (versione internazionale) o [D2:D8].FormulaLocal = "=casuale()" (versione localizzata). Quindi in ogni cella viene inserita la funzione che genera un numero casuale, e ogni numero risulta diverso, anche dopo un qualsiasi ricalcolo del foglio.

    2) [D2:D8] = [RAND()]
    Questa istruzione invece applica al range specificato il risultato calcolato di un'unica funzione che genera un numero casuale. Tutte le celle del range otterranno il valore (un unico valore!) che in quel preciso momento viene fornito dal generatore di numeri casuali. Ricordate infatti che la notazione delle quadre sta per la parola chiave Evaluate.




  • Evaluate
    di Gaetanopr (utente non iscritto) data: 12/09/2013 14:25:47

    cit. "Ricordate infatti che la notazione delle quadre sta per la parola chiave Evaluate"

    Range("D2:D8") = Evaluate("RAND()") ?



  • di Vecchio Frac data: 12/09/2013 14:49:01

    Certamente.
    Prova, in finestra immediata, a eseguire un
    ?Evaluate("3+2")





  • di stefanmi data: 13/09/2013 16:38:46



  • Evaluate
    di Gaetanopr (utente non iscritto) data: 13/09/2013 22:47:15

    Buonasera, scusate se continuo su un post già risolto, ma facendo alcune prove non riesco a capire dove sbaglio in questo istruzione.
    In A1 ho 1050 tramite questo codice
    Range("A1").Value = Evaluate("LEFT(A1,2)&"":""&RIGHT(A1,2)")
    lo trasformo in 10.50 fin quà tutto ok
    invece se uso la formula Testo in questo modo
    Range("A1").Value = Evaluate("TEXT(A1,""0.00"")") oppure Range("D1").Value = Evaluate("TEXT(A1,""0:00"")")
    non mi funziona dove sbaglio

    Grazie



  • di Gaetanopr (utente non iscritto) data: 14/09/2013 16:09:14

    In qualche maniera ho risolto, promesso che la prox volta apro un argomento nuovo
    C = Range("A1").Value
    Range("A1").Formula = "=TEXT(" & C & ",""0:00"")"
    Range("A1").Value = Range("A1").Value

    Ciaoooo



  • di Grograman (utente non iscritto) data: 15/09/2013 00:55:19

    Gaetano ricorda che evaluate risolve un calcolo, mentre una stringa di testo non puoi dividerla o moltiplicarla



  • di gaetanopr data: 15/09/2013 14:04:15

    Grazie per la risposta Grograman,
    non capisco perchè
    Range("A1").Value = Evaluate("LEFT(A1,2)&"":""&RIGHT(A1,2)") Sembra che funzioni

    invece se uso la formula Testo in questo modo
    Range("A1").Value = Evaluate("TEXT(A1,""0.00"")") Questa non funziona

    La prima non risolve nessun calcolo, ma sembra funzionare

    Grazie



  • di Vecchio Frac data: 15/09/2013 15:28:58

    Perchè TEXT non è Format:
    Range("A1").Value = Format(Range("A1"), "00:00")






  • di Gaetanopr (utente non iscritto) data: 15/09/2013 16:32:30

    Grazie Vecchio Frac