Valore zero cella vuota

Storico discussioni

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

Cognolato Studio © 2005