Somma a scalare.

Anonimo
2020-03-09T08:48:22+00:00

Ciao,

cerco di sintetizzare al massimo quello di cui ho bisogno.

Ho la seguente situazione:

Nella cella U6 ho la somma dell'intervallo di celle C10:T10 che si deve aggiornare tramite macro.

Al click di un pulsante, la macro deve confrontare in C2:T2 i valori che restano in A4:A9 ed una volta trovati, colorare di giallo le sottostanti celle dell'intervallo C10:T10 andando a sommare nella cella U6 quelle celle in C10:T10 che nonsono state colorate di giallo:

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
2020-03-09T10:58:16+00:00

Ciao Vladimiro,

cerco di sintetizzare al massimo quello di cui ho bisogno.

Ho la seguente situazione:

Nella cella U6 ho la somma dell'intervallo di celle C10:T10 che si deve aggiornare tramite macro.

Al click di un pulsante, la macro deve confrontare in C2:T2 i valori che restano in A4:A9 ed una volta trovati, colorare di giallo le sottostanti celle dell'intervallo C10:T10 andando a sommare nella cella U6 quelle celle in C10:T10 che nonsono state colorate di giallo:

Prova qualcosa del genere:

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

Option Explicit

'--------->>

Public Sub Tester()

    Dim Rng As Range, Rng2 As Range, rCell As Range

    Dim RngSomma As Range

    Dim dSum As Double

    Dim bMatch As Boolean

    Const sIntervallo As String = "C2:T2"

    Const sIntervallo2 As String = "A4:A9"

    Const sSomma As String = "U6"

    Set Rng = Range(sIntervallo)

    Set Rng2 = Range(sIntervallo2)

    Set RngSomma = Range(sSomma)

    Rng.Offset(8).Interior.Color = xlNone

    For Each rCell In Rng.Cells

        With rCell

            bMatch = Not IsError(Application.Match(.Value, Rng2, 0))

            If bMatch Then

                .Offset(8).Interior.Color = vbYellow

            Else

                dSum = dSum + .Offset(8).Value

            End If

        End With

    Next rCell

    RngSomma.Value = dSum

End Sub

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

Potresti scaricare il mio file di prova Vladimiro20200309.xlsm

===

Regards,

Norman

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

1 risposta aggiuntiva

Ordina per: Più utili
  1. Anonimo
    2020-03-09T13:05:29+00:00

    Ciao Vladimiro,

    cerco di sintetizzare al massimo quello di cui ho bisogno.

    Ho la seguente situazione:

    Nella cella U6 ho la somma dell'intervallo di celle C10:T10 che si deve aggiornare tramite macro.

    Al click di un pulsante, la macro deve confrontare in C2:T2 i valori che restano in A4:A9 ed una volta trovati, colorare di giallo le sottostanti celle dell'intervallo C10:T10 andando a sommare nella cella U6 quelle celle in C10:T10 che nonsono state colorate di giallo:

    Prova qualcosa del genere:

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

    Option Explicit

    '--------->>

    Public Sub Tester()

        Dim Rng As Range, Rng2 As Range, rCell As Range

        Dim RngSomma As Range

        Dim dSum As Double

        Dim bMatch As Boolean

        Const sIntervallo As String = "C2:T2"

        Const sIntervallo2 As String = "A4:A9"

        Const sSomma As String = "U6"

        Set Rng = Range(sIntervallo)

        Set Rng2 = Range(sIntervallo2)

        Set RngSomma = Range(sSomma)

        Rng.Offset(8).Interior.Color = xlNone

        For Each rCell In Rng.Cells

            With rCell

                bMatch = Not IsError(Application.Match(.Value, Rng2, 0))

                If bMatch Then

                    .Offset(8).Interior.Color = vbYellow

                Else

                    dSum = dSum + .Offset(8).Value

                End If

            End With

        Next rCell

        RngSomma.Value = dSum

    End Sub

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

    Potresti scaricare il mio file di prova Vladimiro20200309.xlsm

    ===

    Regards,

    Norman

    Ciao Norman,

    proprio quello che cercavo.

    Grazie mille e alla prossima,

    Vladimiro

    La risposta è stata utile?

    0 commenti Nessun commento