PopAds.net - The Best Popunder Adnetwork

Valorizzare una cella vuota

  • Valore di "0" alla cella vuota di Skrigno
    Salve,
    mi scuso anticipatamente per la domanda (che sarà sicuramente stupida) ma ho appena iniziato a "toccare" il VB e avrei bisogno di un piccolo aiuto.
    Sto creando un programmino a "celle" tipo Excel dove inserire valori numerici e, solo all'ultima cella a destra, ricavarne la somma (o la formula eventuale).
    Il programma, però, mi dà due inconvenienti: il primo è che, per visualizzare la somma devo cliccare sulla celletta ed io la vorrei automaticamente; la seconda è che il programma non mi accetta la casella "vuota" come "0" ma devo, per forza di cose, inserire il valore.
    Come posso risolvere questo che è sicuramente un problema stupido? (l'ho detto che ho appena iniziato...)
    Grazie mille per l'aiuto

    di APOBEN64
    Ciao Skrigno, per avere il valore 0 in una cella si può procedere indicando in una diversa cella del foglio il valore 0 e richiamandolo nella cella in cui dovresti avere la somma . Oppure utilizzando sempre il foglio e formattando le celle con la funzione formato>formattazione condizionale > valore =0 indicando la zona di celle che ti interessa abbia quel valore. Se usi invece il VBA e delle celle facendo uso di textbox, allora sarebbe meglio che indicassi il codice a cui stai lavorando, per meglio capire come aiutarti.
    A presto !

    Grazie di Skrigno
    Ciao Apoben64, ti ringrazio molto dell'aiuto.
    Sì, sto usando delle text una vicino all'altra come cellette.
    Queste cellette ricevono soltanto il valore numerico (di per sè non devono calcolare niente) ma il calcolo lo fà solo l'ultima cella.
    Ti riporto il codice di un esempio.
    Il nome delle celle che ricevono il valore si chiamano Fo1, Fo2, Fo3... fino a Fo8.
    L'ultima cella, Fo9, è quella che deve calcolare i valori immessi.
    Ora il codice che ho fatto è questo:
    Private Sub Fo9_Click()
    op1 = Fo1
    op2 = Fo2
    op3 = Fo3
    op4 = Fo4
    op5 = Fo5
    op6 = Fo6
    op7 = Fo7
    op8 = Fo8
    Fo9.Caption = op1 + op2 + op3 + op4 + op5 + op6 + op7 + op8
    End Sub

    Però questo mi obbliga ad inserire un valore in tutte le celle (mentre dovrebbero poter restare anche vuote) e la cella vuota deve prendersi per scontato il valore "0" senza bisogno di inserire niente.
    Inoltre, per avere la somma, devo cliccare sulla celletta Fo9... come posso evitarlo? Dovrebbe apparire automaticamente.
    Ti ringrazio tantissimo

    di apoben64
    Ciao Skrigno , premetto che sono solito usare le antiche ma virtuose cells, textbox, ecc., a parte ciò per ottenere la somma di una serie di textbox puoi usare una funzione ( che calcola la somma del contenuto delle singole textbox) del tipo :

    Public Function Totalecella() as Long
    Totalecella = Val(TextBox1.Text) + Val(TextBox2.Text) + Val(Textbox3.Text) 'ovviamente per te op1 ecc..
    End Function

    Poi per aggiornare il totale dopo l'uscita da ogni textbox, si può utilizzare l'evento "exit" di ogni Textbox per richiamare la funzione

    Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Textbox9.Value = CalcolaSomma()
    End Sub

    Ovviamente la textbox9 è la cella del totale
    ma potrebbe essere anche una label e quindi :

    Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Label1.caption= CalcolaSomma()
    End Sub

    ... e così via

    Per quanto riguarda avere all'inizio dell'apertura della userform nelle textbox un valore e cioè "0" puoi usare :

    Private Sub UserForm_Activate()
    For n = 1 To 8 ' inzio ciclo da 1 a quante sono le tue textbox
    Controls("textbox" & n) = 0
    Next n
    End Sub

    Spero ti averti in qualche modo aiutato ! Facci sapere !

    di Skrigno
    Caro Apoben64, sei stato molto gentile.
    Purtroppo però non riesco a "sbrodarmi"... indubbiamente riusciremmo a capirci meglio se ti inviassi un piccolo esempio di quello che sto facendo.
    Quindi, se sei d'accordo, ti invierei una piccola porzione di progetto (giusto per capire il codice che dovrei fare).
    Ti lascio la mia mail sperando di ricevere un tuo messaggio.
    Grazie davvero se puoi aiutarmi.
    A presto.

    di apoben64
    Non c'è problema, in privato ti ho mandato la mia email, stai sicuro che chiederemo anche la consulenza di Mauro per riuscire a risolvere il tutto .
    Un salutone, Luca