Sommare celle tramite codice VBA

Anonimo
2018-05-06T10:12:36+00:00

Ciao,

sarà banale, ma non riesco a trovare il modo di sommare un intervallo di celle tramite codice VBA.

Esempio:

al posto di sommare le celle in questo modo:

Range("A1")= Range("B1") + Range("B2") + Range("B3")

vorrei sommarle in quest'altro modo:

Range("A1")= la somma dell'intervallo Range("B1 : B3")

Vladimiro

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2018-05-10T07:14:07+00:00

Ciao Vladimiro,

Con il file tutto diventa chiaro! :-)

Quindi, sostituisci:

Range("L15") = (Range("B4") - (Range("J11") + Range("J12") + Range("J13") + Range("J14") + Range("J15"))) + _

    Range("K11") + Range("K12") + Range("K13") + Range("K14") + Range("K15")

Con:

   Range("L15").Value = Evaluate("B4-SUM(J11:J15)+SUM(K11:K15)")

Oppure, per ottenere una somma dinamica:

  Range("L15").Formula = "=B4-SUM(J11:J15)+SUM(K11:K15)"

===

Regards,

Norman

La risposta è stata utile?

2 persone hanno trovato utile questa risposta.
0 commenti Nessun commento

11 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2018-05-09T12:22:05+00:00

    Ciao Vladimiro,

    intanto ti ringrazio in quanto hai afferrato perfettamente la mia richiesta.

    Solo che, giacché ci troviamo, la vogliamo scrivere bene la formula? :-)

    Range("L15") = (Range("B4") - (Range("J11") + Range("J12") + Range("J13") + Range("J14") + Range("J15"))) + _

        Range("K11") + Range("K12") + Range("K13") + Range("K14") + Range("K15")

    oppure:

    =B4-SOMMA(J11:J15) + SOMMA(K11:K15)

    il risultato che esce è 8 

    ===============================================

    Range("L15").Value = Application.Sum(Range("B4,J11:K15"))

    Range("L16").Value = Evaluate("=SUM(B4,J11:K15)")

      =SOMMA(B4,J11:K15)

    il risultato che esce è 26.

    A me sia le due istruzioni VBA che la formula per Excel restituiscono invariabilmente i risultati attesi da me. Forse, però, ti ho frainteso!

    Comunque noto che vi è una discrepanza con la tua formula verbosa e quella più abbreviata; nella prima

    Range("L15") = (Range("B4") - (Range("J11") + Range("J12") + Range("J13") + Range("J14") + Range("J15"))) + _

        Range("K11") + Range("K12") + Range("K13") + Range("K14") + Range("K15")

    il valore della cella J11 viene sottratto mentre nella seconda formula

    =B4-SOMMA(J11:J15) + SOMMA(K11:K15)

    quel valore viene aggiunta.

    In ogni modo, al presupposto che abbia capito male o che tu dovessi dubitare i totali ottenuti con il mio codice, ti pregherei gentilmente di caricare un semplice file di esempio per dimostrare sia i dati da sommare che i risultati ottenuti con le mie istruzioni VBA.

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2018-05-08T17:46:55+00:00

    Ciao Norman

    intanto ti ringrazio in quanto hai afferrato perfettamente la mia richiesta.

    Solo che, giacché ci troviamo, la vogliamo scrivere bene la formula? :-)

    Range("L15") = (Range("B4") - (Range("J11") + Range("J12") + Range("J13") + Range("J14") + Range("J15"))) + _

        Range("K11") + Range("K12") + Range("K13") + Range("K14") + Range("K15")

    oppure:

    =B4-SOMMA(J11:J15) + SOMMA(K11:K15)

    il risultato che esce è 8 

    ===============================================

    Range("L15").Value = Application.Sum(Range("B4,J11:K15"))

    Range("L16").Value = Evaluate("=SUM(B4,J11:K15)")

      =SOMMA(B4,J11:K15)

    il risultato che esce è 26.

    Vladimiro

    Ops, scusa, non ho scritto i dati delle celle da sottrarre e da sommare!

    Comunque la sostanza non cambia, nel senso che anche scrivendo qualsiasi numero al loro interno, il mio risultato sarà sempre diverso dal tuo.

    Vladimiro

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2018-05-08T16:00:12+00:00

    Ciao Vladimiro,

    Ho vari pulsanti.

    Ogni pulsante mi aggiorna una cella rispetto a dati presi ad altre celle sequenziali.

    Pulsante1:

    Range("L13") = (Range("B4") - (Range("J11") + Range("J12") + Range("J13"))) _

        + Range("K11") + Range("K12") + Range("K13")

    Pulsante2:

    Range("L14") = (Range("B4") - (Range("J11") + Range("J12") + Range("J13") + Range("J14"))) _

        + Range("K11") + Range("K12") + Range("K13") + Range("K14")

    Pulsante3:

    Range("L15") = (Range("B4") - (Range("J11") + Range("J12") + Range("J13") + Range("J14") + Range("J15"))) + _

        Range("K11") + Range("K12") + Range("K13") + Range("K14") + Range("K15")

    a questo punto, mettendo il famoso "ecc..." starebbe a significare che i pulsanti non sono solo 3 e che il codice al loro interno, almeno per come ho esposto l'esempio, aumenta il numero delle celle da sommare.

    In conclusione, mi servirebbe sapere se, tramite codice VBA c'è la possibilità di sommare queste benedette celle pressappoco come avviene per la somma scritta all'interno di una cella.

    Formula scritta all'interno della cella L15

    =B4-SOMMA(J11:J15) + SOMMA(K11:K15)

    Spero di essere stato più chiaro.

    Chiarssimo, e se io non fossi stato stanco sarebbe stato chiaro anche nella domanda originale!

    Quindi prova qualcosa del genere:

         Range("L15").Value = Application.Sum(Range("B4,J11:K15"))

    Oppure;

         Range("L16").Value = Evaluate("=SUM(B4,J11:K15)")

    A proposito, in Excel, potresti semplificare la tua formula:

         =B4-SOMMA(J11:J15) + SOMMA(K11:K15)

    con:

        =SOMMA(B4,J11:K15)

    ===

    Regards,

    Norman

    Ciao Norman

    intanto ti ringrazio in quanto hai afferrato perfettamente la mia richiesta.

    Solo che, giacché ci troviamo, la vogliamo scrivere bene la formula? :-)

    Range("L15") = (Range("B4") - (Range("J11") + Range("J12") + Range("J13") + Range("J14") + Range("J15"))) + _

    Range("K11") + Range("K12") + Range("K13") + Range("K14") + Range("K15")

    oppure:

    =B4-SOMMA(J11:J15) + SOMMA(K11:K15)

    il risultato che esce è 8 

    ===============================================

    Range("L15").Value = Application.Sum(Range("B4,J11:K15"))

    Range("L16").Value = Evaluate("=SUM(B4,J11:K15)")

      =SOMMA(B4,J11:K15)

    il risultato che esce è 26.

    Vladimiro

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2018-05-08T09:46:52+00:00

    Ciao Vladimiro,

    Ho vari pulsanti.

    Ogni pulsante mi aggiorna una cella rispetto a dati presi ad altre celle sequenziali.

    Pulsante1:

    Range("L13") = (Range("B4") - (Range("J11") + Range("J12") + Range("J13"))) _

        + Range("K11") + Range("K12") + Range("K13")

    Pulsante2:

    Range("L14") = (Range("B4") - (Range("J11") + Range("J12") + Range("J13") + Range("J14"))) _

        + Range("K11") + Range("K12") + Range("K13") + Range("K14")

    Pulsante3:

    Range("L15") = (Range("B4") - (Range("J11") + Range("J12") + Range("J13") + Range("J14") + Range("J15"))) + _

        Range("K11") + Range("K12") + Range("K13") + Range("K14") + Range("K15")

    a questo punto, mettendo il famoso "ecc..." starebbe a significare che i pulsanti non sono solo 3 e che il codice al loro interno, almeno per come ho esposto l'esempio, aumenta il numero delle celle da sommare.

    In conclusione, mi servirebbe sapere se, tramite codice VBA c'è la possibilità di sommare queste benedette celle pressappoco come avviene per la somma scritta all'interno di una cella.

    Formula scritta all'interno della cella L15

    =B4-SOMMA(J11:J15) + SOMMA(K11:K15)

    Spero di essere stato più chiaro.

    Chiarssimo, e se io non fossi stato stanco sarebbe stato chiaro anche nella domanda originale!

    Quindi prova qualcosa del genere:

         Range("L15").Value = Application.Sum(Range("B4,J11:K15"))

    Oppure;

         Range("L16").Value = Evaluate("=SUM(B4,J11:K15)")

    A proposito, in Excel, potresti semplificare la tua formula:

         =B4-SOMMA(J11:J15) + SOMMA(K11:K15)

    con:

        =SOMMA(B4,J11:K15)

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento