Condividi tramite

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-06T10:39:54+00:00

    Ciao Vladimiro,

    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")

    Prova qualcosa del genere:

    '=========>>

    Public Sub Tester()

        Dim dSum As Double

        dSum = Application.Sum(Range("B1:B3"))

        MsgBox dSum

    End Sub

    '<<=========

    ===

    Regards,

    Norman

    La risposta è stata utile?

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento
  2. Anonimo
    2018-05-07T16:56:30+00:00

    In realtà a me serve sommare degli intervalli variabili.

    Ad esempio:

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

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

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

    ecc...

    Mi vergono rivelare che - non per la prima volta - mi trovo in difficoltà con l'uso dell'espressione ecc...    

    Credo che, in un modo o l'altro, io possa fornire un suggerimento efficace per sommare qualunque intervallo. Comunque, credo che sia imperitivo capire il modo in cui tale intervallo possa essere definito ed i fattori che possano modificarlo. In questo contesto, almeno io non trovo utile o illuminante l'uso di ecc... come criterio.

    Detto tutto ciò, qui è gia diventato molto tardi e, oggi essendo stato una giornataccia, forse, se non molto probabilmente, vi è qualcosa fin troppo ovvio che mi è scappato ...

    Quindi, ti prego di scusarmi e ti chiedo gentilmente di approfondire la spiegazione del modo in cui si possa determinare l'intervallo variabile da sommare.

    ===

    Regards,

    Norman

    Ciao Norman,

    cercherò di stare più attento: PROMESSO!!! :-)

    Molto probabilmente sono condizionato dal fatto che, abituato a programmare in Access dia per scontato delle cose che poi tanto scontate non sono nel linguaggio VBA di Excel.

    Detto ciò, passiamo a noi.

    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.

    Vladimiro

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2018-05-06T22:59:56+00:00

    Ciao Vladimiro,

    ho sbagliato un'altra volta pensando di semplificare la domanda.

    Nonostante la mia limitata capacità mentale, e, più importante,  il mio comando molto limitato della tua bella lingua, ti prego vivamente di evitare di semplificare le domande :-)

    Nella mancanza, oramai ben noto, del mio sfero di cristallo, io lo trovo difficilissimo affrontare le eventuali complessità non divulgate di una domanda. 

    Insomma, semplificando sempre le domande, non mi stupisce che le risposte (almeno le mie!) siano banale e di dubiosa utilità!

    Procediamo ...

    In realtà a me serve sommare degli intervalli variabili.

    Ad esempio:

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

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

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

    ecc...

    Mi vergono rivelare che - non per la prima volta - mi trovo in difficoltà con l'uso dell'espressione ecc...    

    Credo che, in un modo o l'altro, io possa fornire un suggerimento efficace per sommare qualunque intervallo. Comunque, credo che sia imperitivo capire il modo in cui tale intervallo possa essere definito ed i fattori che possano modificarlo. In questo contesto, almeno io non trovo utile o illuminante l'uso di ecc... come criterio.

    Detto tutto ciò, qui è gia diventato molto tardi e, oggi essendo stato una giornataccia, forse, se non molto probabilmente, vi è qualcosa fin troppo ovvio che mi è scappato ...

    Quindi, ti prego di scusarmi e ti chiedo gentilmente di approfondire la spiegazione del modo in cui si possa determinare l'intervallo variabile da sommare.

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2018-05-06T12:35:51+00:00

    Ciao Vladimiro,

    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")

    Prova qualcosa del genere:

    '=========>>

    Public Sub Tester()

        Dim dSum As Double

        dSum = Application.Sum(Range("B1:B3"))

        MsgBox dSum

    End Sub

    '<<=========

    ===

    Regards,

    Norman

    Ciao Norman,

    ho sbagliato un'altra volta pensando di semplificare la domanda.

    In realtà a me serve sommare degli intervalli variabili.

    Ad esempio:

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

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

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

    ecc...

    Vladimiro

    La risposta è stata utile?

    0 commenti Nessun commento