Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Riscrivere codice jscript in macro VBA Excel

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

Riscrivere codice jscript in macro VBA Excel

Postdi Francesco53 » 02/05/13 14:50

Buongiorno a tutto il Forum,
oggi la mia richiesta è molto probabilmente fuori luogo, ma la speranza nelle vostre capacità è tanta,
per cui provo ugualmente a farla:
Ho un codice scritto in linguaggio jscript di un form, la mia richiesta è la seguente, vorrei trasformare
questo codice in macro vba.
Immagino che se si è a conoscenza del jscript, sia semplice, ma per me è impossibile non avendo le conoscenze.
Vorrei inserire l'eventuale macro in un foglio dove mi dovrebbe calcolare, (è questo che lo script fà) il numero di
colonne di un sistema in base ai parametri digitati, numeri, giocata, garanzia e numeri usciti.
Posto ugualmente il codice:
Codice: Seleziona tutto
function calc1(form)
{

  //Prendo i valori originali
  var NUM = form.n.value;
  var LUN = form.p.value;
  var GAR = form.g.value;
  var EST = form.u.value;

  var n = form.n.value*1;
  var p = form.p.value*1;
  var g = form.g.value*1;
  var u = form.u.value*1;
  var pokr;
  var sch;
  var er=0;
  var i;
  var nonum=0;


  if (nonum) {alert("Ammessi solo numeri ..!"); return;}
  if (n>90) {alert("Max. 90 numeri ..!"); return;}
  if (n<p) {alert("Lunghezza superiore ai numeri ..!"); return;}
  if (g>u) {alert("Garanzia superiore agli estratti ..!"); return;}
  if (n<0) {alert("Valori negativi o non ammessi ..!"); return;}
  if (n==0 || p==0 || g==0 || u==0) {alert("Caselle vuote ..!"); return;}

  if (!er)
  {
    pokr = PoK(n,p,g,u);
    rs = Pov(n, u)/pokr;
    sch = frmt(rs);
    //sch = sch + " combinazioni.  Il sistema ";
    er=0;

    if (rs!=Math.floor(rs)) {er=1;}
    if (rs*p%n) {er=1;}
    i = 2*g-u-1;
    if (i<0) {i=0;}
    if ((n-i)%(p-i)) {er=1;}
    if ((n-i)/(p-i)<p-i && rs>(n-i)/(p-i)) {er=1;}
    for (i=1; i<=g-2;i++)
    {
      pokr = PoK(n-i,p-i,g-i,u-i);
      rs = Pov(n-i, u-i)/pokr;

    }

    form.ris.value = sch
  }
}

function PoK(n,p,g,u){
var i;
var m = 0;
for (i = g; i<=u; i++) m += Pov(p, i)*Pov(n-p, u-i);
return(m);
}

function Pov(n, k){
var j;
var l;
var m = 1;
l = k - n;
for (j = n - k + 1; j <= n; j++){ m *= j; m /= (j + l);}
return(m);
}

function frmt(ui){
var ur="";
var uj=ui;
var i;
var j;
var k;
var l;
var m;

k=0;
j=100000000;
m=9;
while (j>=0.001)
{
  m=m-1;
  if (ui>=j || k==1)
  {
    if (k==0) {k=1;}
    l = Math.floor(ui/j);
    ur = ur + l
    if (j==1) {ur=ur+",";}
    if (m%3==0 && m>0) {ur=ur+" ";}
    ui = ui - l*j;
  }
  j=j/10;
  if (j<1 && k==0) {k=1;}
}
if (uj==Math.floor(uj)) {ur = ur.substring(0,ur.length-4);}
if (uj<1) {ur="0,"+ur;}

return(ur);
}

Nel caso il post non fosse regolare, prego gli amministratori di cancellarlo.
Un saluto a tutti e ringrazio per eventuale aiuto.
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 647
Iscritto il: 20/02/10 18:45

Sponsor
 

Re: Riscrivere codice jscript in macro VBA Excel

Postdi scossa » 02/05/13 19:40

Prima di tutto servirebbe il file excel con la userform che riproduca i vari campi dell'altra.
Bye!
scossa

Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
Avatar utente
scossa
Utente Senior
 
Post: 424
Iscritto il: 01/04/12 16:40
Località: Provincia di Verona

Re: Riscrivere codice jscript in macro VBA Excel

Postdi Francesco53 » 02/05/13 21:03

Buongiorno Scossa,
non devo realizzare una form, avendo una serie di numeri da giocare
mi serviva vedere a fianco quante potevano essere le colonne da giocare.
Allego una immagine:
Immagine
Sperando che mi faccia sapere quante colonne si devono giocare per la
garanzia richiesta in base ai numeri etc.
Grazie per l'interessamento.
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 647
Iscritto il: 20/02/10 18:45

Re: Riscrivere codice jscript in macro VBA Excel

Postdi Anthony47 » 03/05/13 00:40

Non ho la conoscenza js per sperare di fare un reverse engineering attendibile di quanto pubblicato. Tuttavia sono sicuro che si tratta di una formula di calcolo combinatorio abbastanza semplice: se conosci quella formula la implementiamo direttamente in excel; oppure se ci dai l' url del sito vediamo come usarlo per farci fare il calcolo on line.
Questo in aggiunta a contributi che possono sempre venire da altri utenti.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Riscrivere codice jscript in macro VBA Excel

Postdi scossa » 03/05/13 07:57

Francesco53 ha scritto:Sperando che mi faccia sapere quante colonne si devono giocare per la
garanzia richiesta in base ai numeri etc.
Grazie per l'interessamento.
Francesco


Premesso che condivido l'opinione di Anthony, e premesso che non mi interesso di lotto e simili, puoi fare un esempio di dati validi che metteresti in quelle celle ed il risultato atteso?
Bye!
scossa

Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
Avatar utente
scossa
Utente Senior
 
Post: 424
Iscritto il: 01/04/12 16:40
Località: Provincia di Verona

Re: Riscrivere codice jscript in macro VBA Excel

Postdi Francesco53 » 03/05/13 18:19

Ringrazio entrambi per l'interessamento.
Ho trovato girando nel web una formula che si avvicina a quanto cercavo,
la posto nel caso qualche altro utente sia interessato, penso che non funzioni
con la stessa logica, comunque risolve il tutto con una sola formula.
Codice: Seleziona tutto
=(FATTORIALE(n)/FATTORIALE(p)/FATTORIALE(n-p))/(FATTORIALE(u)/(FATTORIALE(g)*FATTORIALE(u-g))*FATTORIALE(n-u)/FATTORIALE(p-g)/FATTORIALE(n-u-p+g))

Grazie
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 647
Iscritto il: 20/02/10 18:45

Re: Riscrivere codice jscript in macro VBA Excel

Postdi scossa » 03/05/13 18:27

Francesco53 ha scritto:Ho trovato girando nel web una formula che si avvicina a quanto cercavo,


Cosa significa "si avvicina"?

Comunque sarebbe stato "cortese" rispondere alla domanda posta:
"puoi fare un esempio di dati validi che metteresti in quelle celle ed il risultato atteso?"
Bye!
scossa

Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
Avatar utente
scossa
Utente Senior
 
Post: 424
Iscritto il: 01/04/12 16:40
Località: Provincia di Verona

Re: Riscrivere codice jscript in macro VBA Excel

Postdi Anthony47 » 03/05/13 23:24

Comunque sarebbe stato "cortese" rispondere alla domanda posta:
"puoi fare un esempio di dati validi che metteresti in quelle celle ed il risultato atteso?"
Temo che Francesco in realta' non sapesse quale risultato i suoi numeri avrebbero dovuto dare; lo sa adesso che ha trovato la formula con cui lo puo' calcolare...

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Riscrivere codice jscript in macro VBA Excel

Postdi Francesco53 » 04/05/13 08:07

Buongiorno, mi sembra corretto rispondere per evitare delle incomprensioni sul mio comportamento.
Nel mio post come avevo preannunciato forse fuori luogo e chiedevo la eventuale cancellazione, la
richiesta era dovuta al fatto di cercare di capire come lo jscript interpretava i calcoli per calcolare il
numero di colonne teoriche minime per garantire quanto scelto nelle 4 celle contenenti i parametri,
poi trovando la formula inserita, che non può essere esaustiva causa la molteplicità delle scelte che
l'utente può richiedere, per cui andrebbe modificata a seconda dei casi, e qui si dovrebbe lavorare
sulla modifica della stessa in base ai parametri.
Lo script che ho postato, si avvicina molto alla riduzione teorica in un'ampia gamma di variabili, ed
è per questo che è nata la mia richiesta.
Quindi cercando di realizzare una macro per lo sviluppo di sistemi validi per qualsiasi gioco, mi serviva
come raffronto teorico conoscere di quanto mi discostavo dal teorico, voglio precisare che il teorico
sarà sicuramente irraggiungibile, basta vedere sul web i migliori riduttori per capire che la realtà è poi
lontana dalla teoria.
Il discorso è comunque molto ampio, e penso sia riduttivo inserire qualche esempio di calcolo per vedere
il risultato, mentre la trasformazione del calcolo da jscript in vba (se realizzabile), avrebbe risolto tutte
le difficoltà. Penso che a volte certi calcoli abbiano bisogno di linguaggi appropriati e la speranza di
realizzarli con il vba o con funzioni particolari possa non sempre essere reale.
Ringrazio comunque per l'interesse e le risposte ricevute, e rispetto sempre chi si mette a disposizione
di noi utenti, non era mia intenzione mancare di rispetto a nessuno.
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 647
Iscritto il: 20/02/10 18:45

Re: Riscrivere codice jscript in macro VBA Excel

Postdi Flash30005 » 04/05/13 09:01

Forse lo strumento ideale è questo file
creato da Anthony, tempo fa, su mia richiesta
La macro, oltre a calcolare il numero delle combinazioni, crea anche lo sviluppo delle colonne
In N va inserito il range es 20 numeri o 90 (per il lotto)
In K quanti numeri si vogliono (es 6 per supernalotto, 5 per il lotto etc)
In Rid che tipo di riduzione (con 0 si ha lo sviluppo integrale, con 1 correzione ad un errore: N-1, con 2 correzione a due errori: N-2)
E' un validissimo e versatile strumento in quanto utilizzabile per svariate tipologie di giochi e/o per studio.

ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Riscrivere codice jscript in macro VBA Excel

Postdi scossa » 04/05/13 09:03

@Francesco:
Come la fai complicata.

Avevo solo chiesto 4 valori da inserire nelle celle e un'ordine di grandezza del risultato atteso.
Ripeto che di lotto non ne so nulla, per questo chiedevo un esempio dei valori che metti nello jscript e cosa ottieni.

Questo perché prima di postare la "traduzione" che ho fatto volevo verificare che fornisse un risultato corretto.
Bye!
scossa

Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
Avatar utente
scossa
Utente Senior
 
Post: 424
Iscritto il: 01/04/12 16:40
Località: Provincia di Verona

Re: Riscrivere codice jscript in macro VBA Excel

Postdi Francesco53 » 04/05/13 10:33

Ringrazio Flash per il file che cercherò di capire ed approffondire così le mie conoscenze.
@scossa:
forse ho interpretato male la tua richiesta, mi dispiace comunque inserisco alcune spiegazioni di base
ed alcuni esempi di risultati teorici ritrovati con lo script:

qualora si abbiano sistemi con k (numeri che compongono ogni colonna)
m (numeri che vengono estratti)
Esaminiamo un generico sistema v,k,t,m.
Le combinazioni (colonne) integrali sono:
v!/((v-k)!*k!) ................ A
A questo punto occorre calcolare il punteggio che possono realizzare le colonne di A,
che ovviamente andranno da un valore minimo (solitamente zero punti) ad uno massimo (che sarà n=m)
Cioè x colonne che realizzano n punti, y colonne che realizzano n-1 punti,
z colonne che realizzano n-2 punti, ecc... e il loro totale sarà uguale ad A.
Quello che chiedi è dato dalla sommatoria di tutte le colonne "vincenti"
con n, n-1, n-2, ecc... punti (a seconda dei sistemi).
Le colonne che realizzano questi punteggi sono:
n = Comb(m,n) * Comb(v-m,k-n)
n-1 = Comb(m,n-1) * Comb(v-m,k-(n-1))
ecc........
Facciamo il tuo esempio, che è 9,6,4,5 V=Num = 9; K=num colonna = 6; T=Garanzia = 5 e M=num indovinati = 6
A = 9!/(6!*3!) = 84 sestine
B = 9!/(5!*4!) = 126 cinquine

Sestine che realizzano:
n = 5 = Comb(5,5) * Comb(4,1) = 4
n-1 = 4 = Comb(5,4) * Comb(4,2) = 30
n-2 = 3 = Comb(5,3) * Comb(4,3) = 40
n-3 = 2 = Comb(5,2) * Comb(4,4) = 10
n-4 = 1 = zero, perché impossibile

Totale = 84 sestine, che chiaramente sono quelle calcolate con A.
Fra tutte queste, le colonne "vincenti" sono 4 che fanno cinque + 30 che fanno quattro punti = 34
Quindi, se vuoi calcolare l'ipotetico riduttore teorico (con il minimo possibile di colonne),
basta che dividi l'integrale A (84 sestine) con le sestine che vincono (34).

In questo caso, il risultato è di 2,47 sestine, che arrotondato all'unità in eccesso, coincide con il primato di 3 sestine:
1 2 3 4 5 6
1 2 3 7 8 9
4 5 6 7 8 9

Il form da il seguente risultato:
V = 9; K = 6; T = 4; M = 6; ris = 1,312
V = 9; K = 6; T = 5; M = 6; ris = 4,421
V = 12; K = 6; T = 5; M = 6; ris = 24,972
V = 12; K = 6; T = 4; M = 6; ris = 3,526
Grazie per la disponibilità di tutti
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 647
Iscritto il: 20/02/10 18:45

Re: Riscrivere codice jscript in macro VBA Excel

Postdi scossa » 04/05/13 15:42

Francesco53 ha scritto:Il form da il seguente risultato:
V = 9; K = 6; T = 4; M = 6; ris = 1,312
V = 9; K = 6; T = 5; M = 6; ris = 4,421
V = 12; K = 6; T = 5; M = 6; ris = 24,972
V = 12; K = 6; T = 4; M = 6; ris = 3,526


Il codice riportato in fondo è la "traduzione" quasi alla lettera del codice jscript.
Il risultato corrisponde, a parte il formato (1,312 viene restituito com 0,1312; 3,526 come 0,3526) ma questo è semplice sistemarlo.
Quello che non mi convince è il codice jscript: che senso hanno tutte le istruzioni comprese tra
Codice: Seleziona tutto
    sch = frmt(rs);

e
Codice: Seleziona tutto
    form.ris.value = sch

visto che non influenzano il valore di sch?
Forse vedendo la pagina che usa questo script sarebbe più facile comprenderlo.

Ecco la traduzione:
Codice: Seleziona tutto
Public Sub calc1()
  Dim ws As Worksheet
  Dim n As Integer, p As Variant, g As Variant, u As Variant
  Dim pokr As Variant, sch As Variant, er As Variant, rs As Variant
  Dim i As Variant, nonum As Variant
 
  On Error GoTo sub_fail_
 
  Set ws = ActiveSheet
  n = ws.Cells(2, 4).Value
  p = ws.Cells(3, 4).Value
  g = ws.Cells(4, 4).Value
  u = ws.Cells(5, 4).Value
 
  If n * p * g * u = 0 Then Err.Raise vbObjectError + 513, , "Una o più caselle vuote ..!"
  If n > 90 Then Err.Raise vbObjectError + 513, , "Max. 90 numeri ..!"
  If n < p Then Err.Raise vbObjectError + 513, , "Lunghezza superiore ai numeri ..!"
  If g > u Then Err.Raise vbObjectError + 513, , "Garanzia superiore agli estratti ..!"
  If n < 0 Then Err.Raise vbObjectError + 513, , "Valori negativi non ammessi ..!"
 
  If Not er Then
    pokr = PoK(n, p, g, u)
    rs = Pov(n, u) / pokr
    sch = frmt(rs * 1000)

'non capisco l'utilità della seguente parte (l'ho commentata):
'    er = 0
'    If rs <> Int(rs) Then er = 1
'    If rs * p Mod n Then er = 1
'    i = 2 * g - u - 1
'    If i < 0 Then i = 0
'    If (n - i) Mod (p - i) Then er = 1
'    If ((n - i) / (p - i) < p - i) And (rs > (n - i) / (p - i)) Then er = 1
'    For i = 1 To g - 2
'      pokr = PoK(n - i, p - i, g - i, u - i)
'      rs = Pov(n - i, u - i) / pokr
'    Next

    ws.Cells(7, 4).Value = sch
  End If

sub_fail_:
  If Err.Number <> 0 Then
    MsgBox Err.Description, vbCritical, "Errore"
  End If
 
End Sub


Function PoK(ByVal n, p, g, u) As Variant
  Dim i As Variant, m As Variant
  For i = g To u
    m = m + Pov(p, i) * Pov(n - p, u - i)
  Next
  PoK = m
End Function

Function Pov(ByVal n, k) As Variant
  Dim j As Variant, l As Variant, m As Variant
  l = k - n
  m = 1
  For j = n - k + 1 To n
    m = m * j
    m = m / (j + l)
  Next
  Pov = m
End Function

Function frmt(ByVal ui As Variant)
  Dim ur As String
  Dim uj As Variant, i As Variant, l As Variant, m As Variant
  Dim j As Variant, k As Variant
 
  j = 100000000
  m = 9
  Do While (j >= 0.001)
    m = m - 1
    If ui >= j Or k = 1 Then
      If k = 0 Then k = 1
      l = Int(ui / j)
      ur = ur & l
      If j = 1 Then ur = ur & ","
      ui = ui - l * j
    End If
    j = j / 10
    If j < 1 And k = 0 Then k = 1
  Loop
  If uj = Int(uj) Then ur = Left(ur, Len(ur) - 4)
  If uj < 1 Then ur = "0," & ur
  frmt = ur
End Function


Edit: ovviamente le variabili che ho dichiarato variant andrebbero dichiarate più correttamente secondo il reale tipo di dato.
Bye!
scossa

Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
Avatar utente
scossa
Utente Senior
 
Post: 424
Iscritto il: 01/04/12 16:40
Località: Provincia di Verona

Re: Riscrivere codice jscript in macro VBA Excel

Postdi scossa » 04/05/13 16:02

scossa ha scritto:
Codice: Seleziona tutto
Public Sub calc1()
.....
sub_fail_:
  If Err.Number <> 0 Then
    MsgBox Err.Description, vbCritical, "Errore"
  End If
 
End Sub



Una dimenticanza, subito dopo l'etichetta sub_fail_: aggiungere Set ws = Nothing:
Codice: Seleziona tutto
sub_fail_:
  Set ws = Nothing '<---aggiunta
Bye!
scossa

Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
Avatar utente
scossa
Utente Senior
 
Post: 424
Iscritto il: 01/04/12 16:40
Località: Provincia di Verona

Re: Riscrivere codice jscript in macro VBA Excel

Postdi Francesco53 » 04/05/13 22:17

Ciao scossa grazie per la traduzione dello script e per la disponibilità data.
Per quanto riguarda il codice dello script tra:
Codice: Seleziona tutto
sch = frmt(rs);

e
Codice: Seleziona tutto
form.ris.value = sch

l'unica parte che ho tolto pensavo fosse solo descrittiva è questa:
Codice: Seleziona tutto
//if (rs%Math.floor(rs)) {er=1;}}
 //if (er) {sch = sch + "NON ";}
 //sch = sch + "è ortogonale.";

comunque ti invio via email il link (penso sia corretto così) dove visualizzare il form,
recuperato anche dal sito in oggetto da altra parte.
Probabilmente o l'autore non ha completato il progetto originale, oppure i vari
copia ed incolla hanno perso, ma non credo, parte dello script.
Proverò la tua macro appena possibile e ti farò sapere, a presto
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 647
Iscritto il: 20/02/10 18:45

Re: Riscrivere codice jscript in macro VBA Excel

Postdi scossa » 05/05/13 18:06

Francesco53 ha scritto:comunque ti invio via email il link (penso sia corretto così) dove visualizzare il form,
recuperato anche dal sito in oggetto da altra parte.
Probabilmente o l'autore non ha completato il progetto originale, oppure i vari
copia ed incolla hanno perso, ma non credo, parte dello script.
Proverò la tua macro appena possibile e ti farò sapere, a presto
Francesco


Ho visto il link, comunque ho ripulito la macro, togliendo il superfluo; questo il nuovo codice:

Codice: Seleziona tutto
Public Sub calc1()
  Dim ws As Worksheet
  Dim n As Long, p As Long, g As Long, u As Long
  Dim pokr As Double, rs As Double
 
  On Error GoTo sub_fail_
 
  Set ws = ActiveSheet
  n = ws.Cells(2, 4).Value
  p = ws.Cells(3, 4).Value
  g = ws.Cells(4, 4).Value
  u = ws.Cells(5, 4).Value
 
  If n * p * g * u = 0 Then Err.Raise vbObjectError + 513, , "Una o più caselle vuote ..!"
  If n > 90 Then Err.Raise vbObjectError + 513, , "Max. 90 numeri ..!"
  If n < p Then Err.Raise vbObjectError + 513, , "Lunghezza superiore ai numeri ..!"
  If g > u Then Err.Raise vbObjectError + 513, , "Garanzia superiore agli estratti ..!"
  If n < 0 Then Err.Raise vbObjectError + 513, , "Valori negativi non ammessi ..!"
 
  pokr = PoK(n, p, g, u)
  rs = Pov(n, u) / pokr
  ws.Cells(7, 4).Value = Application.WorksheetFunction.Floor(rs, 0.001)

sub_fail_:
  Set ws = Nothing
  If Err.Number <> 0 Then
    MsgBox Err.Description, vbCritical, "Errore"
  End If
 
End Sub


Function PoK(ByVal n As Long, p As Long, g As Long, u As Long) As Double
  Dim i As Long, m As Long
  For i = g To u
    m = m + Pov(p, i) * Pov(n - p, u - i)
  Next
  PoK = m
End Function

Function Pov(ByVal n As Long, k As Long) As Double
  Dim j As Variant, l As Variant, m As Variant
  l = k - n
  m = 1
  For j = n - k + 1 To n
    m = m * j
    m = m / (j + l)
  Next
  Pov = m
End Function


Fai sapere, grazie.
Bye!
scossa

Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
Avatar utente
scossa
Utente Senior
 
Post: 424
Iscritto il: 01/04/12 16:40
Località: Provincia di Verona

Re: Riscrivere codice jscript in macro VBA Excel

Postdi Francesco53 » 05/05/13 19:04

Grazie scossa, l'ultima macro è perfetta, gestisce nel giusto modo il risultato.
Non ho avuto molto tempo, ma quel poco che ho provato, (una decina di casi)
è preciso.
Grazie
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 647
Iscritto il: 20/02/10 18:45

Re: Riscrivere codice jscript in macro VBA Excel

Postdi eparisi65 » 08/05/14 18:56

Buona sera a tutti, girovagando in questo bellissimo forum mi sono imbattuto in questa discussione che ho trovato molto interessante. Premetto che non mi intendo di macro VBA o quant'altro ma un pochino di formule in excel (e neanche tanto)...ho applicato la macro scritta da Scossa e funziona....però non capisco perché da overflow quando inserisco determinati dati.

Ma come si incolla una immagine :P :P :P :P

Scusatemi Eparisi65.
Avatar utente
eparisi65
Newbie
 
Post: 4
Iscritto il: 29/12/12 13:11

Re: Riscrivere codice jscript in macro VBA Excel

Postdi Anthony47 » 09/05/14 10:51

Puoi spiegare in quali situazioni e su quale riga di codice ottieni l' errore?
Per come allegare una immagine guarda qui: viewtopic.php?f=26&t=80395

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Riscrivere codice jscript in macro VBA Excel

Postdi eparisi65 » 09/05/14 19:21

Grazie Anthony per l'attenzione e per l'indicazione per caricare delle immagini.
Non so come spiegare l'errore ma inserendo i dati nelle 4 caselle in questa situazione compare questo errore che potrai vedere nell'immagine. Ho fatto delle altre prove e mi capitava lo stesso errore quando la casella degli estratti mettevo un numero alto.
http://www.filedropper.com/immcreazione
Ma mi chiedevo se era possibile inserire anche lo sviluppo delle colonne.
Ti ringrazio.

Ciao eparisi65
Avatar utente
eparisi65
Newbie
 
Post: 4
Iscritto il: 29/12/12 13:11

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "Riscrivere codice jscript in macro VBA Excel":


Chi c’è in linea

Visitano il forum: Maury170419 e 13 ospiti