Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

vba2003: aggiornare textbox TOTALE automaticamente

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

vba2003: aggiornare textbox TOTALE automaticamente

Postdi karug64 » 26/12/11 18:07

Salve a tutti.
Nel mio form ho quattro textbox in cui la proprieta' controlsource e' impostata su 4 celle del foglio "Word"
Quindi
t1.controlsource = word!B1
t2.controlsource = word!B2
t3.controlsource = word!B3
t4.controlsource = word!B4

tramite una routine che richiamo su un click scrivo sul foglio word nelle caselle B1,B2,B3 dei numeri
il textbox4 va compilato manualmente.

nel t5 avrei bisogno di avere il totale di t1+t2+t3+t4 in automatico, cioe' man mano che l'utente inserisca o modifichi i valori nei singoli textbox senza dover ricorrere ad un button (che sarebbe semplicissimo ....)

C'e' un modo per farlo o e' impossibile ?

Grazie
Office 2010
karug64
Utente Senior
 
Post: 580
Iscritto il: 20/11/11 21:22

Sponsor
 

Re: vba2003: aggiornare textbox TOTALE automaticamente

Postdi ricky53 » 26/12/11 19:42

Ciao,
puoi sfruttare l'evento "Change"
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
' Qui metti le istruzioni che ti occorrono
End Sub
del foglio sul quale stai inserendo/modificando i dati.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: vba2003: aggiornare textbox TOTALE automaticamente

Postdi Anthony47 » 27/12/11 03:02

Da quello che dici mi pare che potresti sfruttare l' evento TextBox4_Change (non Worksheet_Change), in modo che man mano che carichi un valore venga sommato al valore dei textbox precedenti.
Trattandosi di "textbox" userai la funzione CDbl per convertire il text in valori numerici, e dovrai controllare anche che il text non sia "nullo"; insomma qualcosa come
Codice: Seleziona tutto
Private Sub TextBox4_Change()
Call Totale
End Sub

Sub Totale()
myTot = 0
If UserForm1.TextBox1.Text <> "" Then myTot = CDbl(TextBox1)
If UserForm1.TextBox2.Text <> "" Then myTot = myTot + CDbl(TextBox2)
'etc
'etc
UserForm1.TextBox5 = myTot
End Sub

Ho messo in una macro "Totale" a se' stante le istruzioni di calcolo del valore T5 perche' il mio consiglio e' di inserire una Call Totale anche in coda alla routine che scrive "sul foglio word nelle caselle B1,B2,B3", in modo da attivare anche in quella fase la compilazione del T5.
Se Textbox1-4 sono a loro volta modificabili, allora sara' necessario inserire ulteriori macro di evento TextBoxXy_Change (TextBox1_Change, TextBox2_Change, etc) tutte contenenti la stessa Call Totale.

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: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "vba2003: aggiornare textbox TOTALE automaticamente":


Chi c’è in linea

Visitano il forum: Nessuno e 17 ospiti