Il problema dei 3 corpi: Attraverso continenti e decadi, cinque amici geniali fanno scoperte sconvolgenti mentre le leggi della scienza si sgretolano ed emerge una minaccia esistenziale. Vieni a parlarne su TopManga.
 
Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

somma più TextBox

Ultimo Aggiornamento: 29/11/2017 13:06
Post: 2
Registrato il: 29/08/2016
Città: AGROPOLI
Età: 64
Utente Junior
Excel 2013
OFFLINE
26/11/2017 18:44

Un saluto a tutto il Forum.
Volevo sapere se c'era qualche formula più corta per sommare più TextBox. Perché sono 12 TextBox (un'anno) per dieci nominativi. quindi viene un lavoro enorme.

Vi ringrazio in anticipo per l'aiuto.

in allegato il file.



Post: 471
Registrato il: 24/06/2015
Città: CATANIA
Età: 80
Utente Senior
Excel2019
OFFLINE
27/11/2017 00:49

Ciao
Una premessa: le TextBox devono essere numerate in sequenza!
Per esempio:
1^ riga dalla 1 alla 12 ed il totale alla 13
2^ riga dalla 14 alla 25 e il totale alla 26 e così via.
La precisazione è necessaria perchè ho notato che alcuni numeri saltano.

Puoi utilizzare una macro (da associare ad un pulsante da inserire nella UserForm) che esegua un ciclo su tutte le TextBox.
Ho inserito delle note per meglio intervenire.

Ecco il codice
Private Sub CommandButton8_Click() 'somma textbox
Dim nTB As Integer

'azzerare TUTTE le textbox dei totali
TextBox13.Text = "": TextBox26 = ""

'ciclo per tutte le TextBox da sommare
For Each c In Me.Controls
    nTB = nTB + 1
    If nTB >= 1 And nTB <= 12 Then
        TextBox13 = Val(Me.Controls("TextBox13")) + Val(Me.Controls("TextBox" & nTB))
    ElseIf nTB >= 14 And nTB <= 25 Then
        TextBox26 = Val(Me.Controls("TextBox26")) + Val(Me.Controls("TextBox" & nTB))
        
    'occorre inserire altre 8 volte ElseIf ... badando a cambiare i numeri di riferimento delle TextBox
        
    End If
Next
End Sub


Prova e fai sapere. Ciao,
Mario
Post: 4.019
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
27/11/2017 07:55

a me pare di capire che diluccio voglia utilizzare gli eventi change, cosa impossibile utilizzando array se non si fa ricorso ad una classe apposita.
Comunque trovo questo progetto di dubbia utilità, meglio utilizzare direttamente il foglio magari formattando le celle in modo opportuno.
[Modificato da patel45 27/11/2017 10:21]

----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Post: 4.020
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
27/11/2017 10:25

Allego piccolo esempio di come si può risolvere facendo ricorso alle classi

----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Post: 812
Registrato il: 24/04/2004
Città: TERAMO
Età: 63
Utente Senior
2010
OFFLINE
27/11/2017 15:00

Salve a tutti.
Temo che la soluzione con le classi sia ben più complessa di quanto proposto da Patel.
Io opterei per la macro collegata ad un pulsante di calcolo.
L'organizzazione dei dati sul foglio mi lascia però un pò perplesso.
__________________________
[Excel 2010]
-Condividere la conoscenza aumenta la ricchezza di tutti.
-Dai ad un uomo un pesce e lo avrai sfamato per un giorno; insegnagli a pescare e lo avrai sfamato per sempre. (Confucio)
-Il sonno della ragione genera mostri. (Francisco Goya)
Post: 2
Registrato il: 29/08/2016
Città: AGROPOLI
Età: 64
Utente Junior
Excel 2013
OFFLINE
27/11/2017 16:01

Ciao.

Da premettere che non sono un esperto.
Ho provato con il codice che mi ha mandato Marius44 ma non funziona.
Possibilmente se esiste chiaramente un codice senza il pulsante, sommare automaticamente come inserisci i dati.
Grazie.

Per quando riguarda patel45 l’esempio con le classi che hai allegato per me che sona alle prime armi mi risulta al momento complicato. Puoi inserirlo direttamente nel file che ho allegato.
Grazie.

Allego il file che ho provato.

Un saluto a tutti.


Post: 4.021
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
27/11/2017 17:14

Re:
Zer0kelvin, 27/11/2017 15.00:

Salve a tutti.
Temo che la soluzione con le classi sia ben più complessa di quanto proposto da Patel.
Io opterei per la macro collegata ad un pulsante di calcolo.
L'organizzazione dei dati sul foglio mi lascia però un pò perplesso.

Sono d'accordo, l'esempio era solo per far capire a diluccio quando è complesso quello che chiede



----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Post: 474
Registrato il: 24/06/2015
Città: CATANIA
Età: 80
Utente Senior
Excel2019
OFFLINE
27/11/2017 17:25

Ciao
Non è completo dire "non funziona"! Dovresti aggiungere quale errore ti dà e dove.

Comunque ho ritestato la macro e posso assicurarti che funziona SE ..



le TextBox devono essere numerate in sequenza

'azzerare TUTTE le textbox dei totali
TextBox13.Text = "": TextBox26 = "" 'aggiungere le altre TextBox

'occorre inserire altre 8 volte ElseIf ... badando a cambiare i numeri di riferimento delle TextBox



Ciao,
Mario
Post: 3
Registrato il: 29/08/2016
Città: AGROPOLI
Età: 64
Utente Junior
Excel 2013
OFFLINE
27/11/2017 20:01

Ciao Mario.

Dopo inseriti i numeri nelle TextBox schiaccio il pulsante e non succede niente non mi fa la somma nelle TextBox del totale e non mi dà nessun errore.
Nella risposta precedente ho inviato un nuovo file più completo gentilmente puoi controllare se ho fatto errori nella compilazione è allegarlo alla risposta se funziona.
Grazie
Un saluto a tutto il Forum.
Post: 475
Registrato il: 24/06/2015
Città: CATANIA
Età: 80
Utente Senior
Excel2019
OFFLINE
27/11/2017 22:14

Ciao
Allego il tuo file con la le giuste correzioni. Attento che l'ultimo totale non lo dà perchè la TextBox è denominata 30 e non 130 (l'ho lasciato così per fartelo notare.

La correzione che ho apportato credo sia dovuta alla diversa versione di Excel che utilizziamo. Ecco la
macro "nuova"
Private Sub CommandButton8_Click() 'somma textbox
Dim nTB As Integer, TB13 As Integer

'azzerare TUTTE le textbox dei totali
TextBox13.Text = "": TextBox26 = "": TextBox39 = "": TextBox52 = "": TextBox65 = "": _
TextBox78 = "": TextBox91 = "": TextBox104 = "": TextBox117 = "": TextBox130 = "":

'ciclo per tutte le TextBox da sommare
For Each c In Me.Controls
nTB = nTB + 1
    If nTB >= 1 And nTB <= 12 Then
        Me.Controls("TextBox13") = Val(Me.Controls("TextBox13")) + Val(Me.Controls("TextBox" & nTB))
    
    ElseIf nTB >= 14 And nTB <= 25 Then
        Me.Controls("TextBox26") = Val(Me.Controls("TextBox26")) + Val(Me.Controls("TextBox" & nTB))

    ElseIf nTB >= 27 And nTB <= 38 Then
        Me.Controls("TextBox39") = Val(Me.Controls("TextBox39")) + Val(Me.Controls("TextBox" & nTB))

    ElseIf nTB >= 40 And nTB <= 51 Then
        Me.Controls("TextBox52") = Val(Me.Controls("TextBox52")) + Val(Me.Controls("TextBox" & nTB))

    ElseIf nTB >= 53 And nTB <= 64 Then
        Me.Controls("TextBox65") = Val(Me.Controls("TextBox65")) + Val(Me.Controls("TextBox" & nTB))

    ElseIf nTB >= 66 And nTB <= 77 Then
        Me.Controls("TextBox78") = Val(Me.Controls("TextBox78")) + Val(Me.Controls("TextBox" & nTB))

    ElseIf nTB >= 79 And nTB <= 90 Then
        Me.Controls("TextBox91") = Val(Me.Controls("TextBox91")) + Val(Me.Controls("TextBox" & nTB))

    ElseIf nTB >= 92 And nTB <= 103 Then
        Me.Controls("TextBox104") = Val(Me.Controls("TextBox104")) + Val(Me.Controls("TextBox" & nTB))

    ElseIf nTB >= 105 And nTB <= 116 Then
        Me.Controls("TextBox117") = Val(Me.Controls("TextBox117")) + Val(Me.Controls("TextBox" & nTB))

    ElseIf nTB >= 118 And nTB <= 129 Then
        TextBox130 = Val(Me.Controls("TextBox130")) + Val(Me.Controls("TextBox" & nTB))

 'occorre inserire altre 8 volte ElseIf ... badando a cambiare i numeri di riferimento delle TextBox
    End If
Next
End Sub
Post: 4
Registrato il: 29/08/2016
Città: AGROPOLI
Età: 64
Utente Junior
Excel 2013
OFFLINE
28/11/2017 00:38

Ciao

Non sono riuscito a capire il perché dell'ultimo totale non lo dà, la TextBox è denominata 130. Credevo che il problema era nella parte iniziale "azzerare TUTTE le textbox dei totali" dove alla fine della riga " TextBox130 = "": " c'erano i due : ma no ere questo il problema.
Comunque ti ringrazio di cuore per il tempo che mi hai dedicato.

Post: 477
Registrato il: 24/06/2015
Città: CATANIA
Età: 80
Utente Senior
Excel2019
OFFLINE
28/11/2017 10:11

Ciao
quando qualcosa non va come voglio io, ci ... perdo un po' di tempo ma devo trovare la soluzione.

Allora, la TextBox130 non viene valorizzata perchè nè io nè tu ci siamo accorti che "l'avevo lasciata come prima" (vedi che è diversa dalle altre?)

Cambia questa riga (prima del segno "=" uguale) TextBox130

con questa Me.Controls("TextBox130")

Ciao,
Mario
Post: 5
Registrato il: 29/08/2016
Città: AGROPOLI
Età: 64
Utente Junior
Excel 2013
OFFLINE
29/11/2017 01:07

Ciao Mario.
Tutto risolto.
Oggi sono stato tutta la giornata senza ADSL per un guasto alla rete di Fastweb, mi hanno ridato la line verso mezzanotte.
Comunque ti ringrazio per il tempo che hai perso per risolvere questo problema, però non chiamarmi incontentabile ma a me non piace il fatto che devi schiacciare il bottone per il totale. Non ci sarebbe qualcosa che il totale avviene automaticamente appena inserisci i numeri nelle TextBox ?

Un saluto affettuoso
Nicola
Post: 4.023
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
29/11/2017 08:05

la risposta ti è stata già data, si può ma è molto complicato da realizzare con tutta la marea di textbox che hai tu ed onestamente è una cosa di scarsa utilità perché qualcuno abbia voglia di cimentarsi
[Modificato da patel45 29/11/2017 08:07]

----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Post: 478
Registrato il: 24/06/2015
Città: CATANIA
Età: 80
Utente Senior
Excel2019
OFFLINE
29/11/2017 09:43

Ciao
Concordo pienamente con patel (ciao Andrea).
Come suol dirsi "il gioco non vale la candela"

Ciao,
Mario
Post: 6
Registrato il: 29/08/2016
Città: AGROPOLI
Età: 64
Utente Junior
Excel 2013
OFFLINE
29/11/2017 10:34

Ciao

OK ho capito.
Un GRAZIE è un saluto a tutti.

Nicola
Post: 4.025
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
29/11/2017 13:06

però tu hai visto come si può fare dal mio esempio, quindi puoi cimentarti

----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Vota: 15MediaObject5,00117 1
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 22:41. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com