Novità

Aiuto Funzione Foglio di Calcolo

i legend

Premium Member
Ciao a tutti ,...................Vorrei scrivere una funzione da inserire in una sub per lo sviluppo degli Elementi scritti in un InputBox. In un inputBox scrivo i numeri in "00" da (1) a (20 elementi) separati da un ".".............................. in un altro inputBox scelgo la Classe............................... ora in base alla classe sviluppo gli elementi......................................(So che tutto questo è presente in spaziometria, ma molte ricerche per ora per me è più semplice svilupparle in foglio di calcolo..non me ne voglia nessuno)... [Code ] 5 10 15 20 1 5 10 15 20 2 10 45 105 190 3 10 120 455 1140 4 5 210 1365 4845 5 1 252 3003 15504 [/code]
Codice:
 sub SviluppoClasse  ' dichiaro le variabili  Dim sNumeri as string, sD as string Dim  Cl as integer Dim oCellSviluppo as object  ' acquisisco gli elementi che mi occorre analizzare sNumeri=InputBox("Inserisci i Numeri di Ricerca in doppia cifra e separati dal  "." ","Analesi Numerica")  Cl=Cint(InputBox("Inserisci la classe di sviluppo,  1= estratto , 2= ambo,3=terno,ecc..","SviluppoClasse")   ' il sistema sviluppato scorre nella cella oCellSviluppo.string=Carica(sNumeri , sD , Cl )   end sub   ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''    function Carica(sNumeri as string, Cl as integer) as string  ' dichiaro le variabili che devo utilizzare.. Dim L_sNum as integer            'lunghezza della stringa Dim vetNum as string                 ' string senza separatori Dim x as integer,E as string,A as string,T as string,Q as string,C as string    vetNum=split(sNumeri,".",2) L_sNum=Len(vetNum)  redim aNum(0)  for x =1 to L_sNum step 2  aNum= aNum(x) Select case Classe case 1 cl=1 carica=format(x,"00") case 2 cl= 2  for E= 1 to ubond(aNum(x))-2 	for A= E+1 to Ubound(aNum(x))-1 	carica= format(E,"00")&"."&format(A,"00") next a next e case 3 Cl=3 for E= 1 to ubond(aNum(x))-3 	for A= E+1 to Ubound(aNum(x))-2 		for t=a+1 to ubound(aNum(x))-1 	carica= format(E,"00")&"."&format(A,"00")&"."& format(T,"00") next t next a next e case 4 cl=4 for E= 1 to ubond(aNum(x))-4 	for A= E+1 to Ubound(aNum(x))-3 		for t=a+1 to ubound(aNum(x))-2 			for q=t+1 to ubound(aNum(x))-1 	carica= format(E,"00")&"."&format(A,"00")&"."& format(T,"00")&"."&Format(Q,"00") next q next t next a next e  case=5 Cl=5 for E= 1 to ubond(aNum(x))-5 	for A= E+1 to Ubound(aNum(x))-4 		for t=a+1 to ubound(aNum(x))-3 			for q=t+1 to ubound(aNum(x))-2 				for C=q+1 to ubound(aNum(x))-1 	carica= format(E,"00")&"."&format(A,"00")&"."& format(T,"00")&"."&Format(Q,"00") &"."&format(C,"00") next C next q next t next a next e end select  end function
Spero che qualcuno possa aiutarmi, ...................................... il codice è errato, spero la logica seguita non lo sia............................................... Cordiali saluti.....................I Legend
 
Buon giorno a tutti. Mi scuso per l'orribilante modo di postare ma ho ancora problemi con la connessione a questo sito.E' scoraggiante anche per me.................... Di quanto scritto sopra mi rendo conto della sua illegibilità, pertanto ripropongo la mia richiesta più chiaramente...................................Una volta inserita una sequenza numerica "01"."21"."78".eccc con un max di 20 Elementi, vorrei caricarli in un Array...........................................questo non so farlo, a meno che non dia il valore di ciascun elemento ad una cella, ma è bruttissimo.--------------------- E' come anzichè fare 8*6 facessi 8+8+8+8+8+8...........................Vorrei capire come Fare. per il resto provo ad arrangiarmi con select case oppure una serie di if....................... Grazie in ogni caso...................................Cordiali saluti .............................I Legend
 
Ciao se li devi inserire in una Matrice (Array), ti puoi semplificare la vita con questa macro:
Codice:
Option Explicit
Sub InserisciNumeri()
Dim num()
Dim nq As Byte
Dim nr As Byte
Dim n As Byte
    nq = InputBox("immettere quantità numeri")
    ReDim num(nq)
        For nr = 1 To nq
            n = InputBox("Inserisci il " & nr & "° " & "valore!")
            num(nr) = n
        Next nr
        '-- Il codice sottostante scrive i valori della matrice --
            For n = 1 To nq
                Cells(1, 1 + n) = num(n)
            Next n
End Sub
pfca
 
Grazie mille Francesco sei stato gentilissimo..................................... Ho provato il codice e va benissimo, dato che mi serviva lo sviluppo in terzine ho aggiunto altre due variabili contatore,x ed y ...........................................
Codice:
 For n = 1 To nq-2      For x = n+1 To nq-1          For y = x+1 To nq                 Cells(1, 2) = format(num(n),"00")&"."&format(num(x),"00")&"."&format(num(y),"00") next y next x             Next n
Far scorrere lo sviluppo in una singola Cella......................................Se volessimo semplificare ulteriormente, anziche fare un ciclo input per ogni numero, si potrebbe inserire tutti in uno ed estrabolarli uno per volta?? Solo per imparare qualcosa in più.Così va già benissimo..............Grazie mille------------Cordiali saluti-----------I Legend
 
Ciao, penso che il tempo impiegato con l'inserimento dei numeri da ciclo input, sia minore
di inserire tutti i numeri formattati in due cifre, separati da . o , o spazio,
comporti un tempo più lungo oltre a un'altra elaborazione che con l'input ti eviti.
Se poi vuoi vedere l'intera elaborazione in terzine, puoi provare questa variazione:
Codice:
Sub InserisciNumeri2()
Dim num()
Dim nq As Byte
Dim nr As Byte
Dim n As Byte
Dim x As Byte
Dim y As Byte
Dim caso As Byte
    nq = InputBox("immettere quantità numeri")
    ReDim num(nq)
        For nr = 1 To nq
            n = InputBox("Inserisci il " & nr & "° " & "valore!")
            num(nr) = n
        Next nr
        '-- Il codice sottostante scrive i valori della matrice --
        For n = 1 To nq - 2
            For x = n + 1 To nq - 1
                For y = x + 1 To nq
                caso = caso + 1
                    Cells(1 + caso, 2) = Format(num(n), "00") & "." & Format(num(x), "00") & "." & Format(num(y), "00")
                Next y
            Next x
        Next n
End Sub
pfca
 
Ultima modifica:
Grazie Mille Francesco accetto il tuo suggerimento :-).............................................. La velocità è molto importante, ....Ti ringrazio anche per aver compreso quanto avevo scritto sopra. ..............................................Cordiali saluti.................I Legend
 

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 20 giugno 2026
    Bari
    90
    24
    74
    14
    75
    Cagliari
    79
    37
    32
    44
    27
    Firenze
    07
    56
    79
    29
    44
    Genova
    17
    24
    43
    89
    22
    Milano
    69
    51
    28
    27
    70
    Napoli
    08
    75
    73
    35
    22
    Palermo
    58
    42
    78
    59
    09
    Roma
    88
    78
    84
    68
    53
    Torino
    61
    34
    65
    59
    27
    Venezia
    37
    23
    76
    89
    86
    Nazionale
    72
    18
    63
    22
    33
    Estrazione Simbolotto
    Napoli
    22
    29
    25
    24
    43

Ultimi Messaggi

Indietro
Alto