Condividi:        

macro per sommare celle (calcolo combinatorio)

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

macro per sommare celle (calcolo combinatorio)

Postdi biancocandido55 » 03/02/12 00:41

Ciao ragazzi,
un cordiale saluto a tutti,
allora, il progetto che vorrei realizzare è questo:
ho 2 range di 5 numeri ognuno da B2 a B6 e da D2 a D6 devo inserire in 4 tabelle la somma dei vari elementi a gruppi di 2, 3, 4 e 5 numeri.
Ho cominciato a fare le varie somme, ogni cella una somma, utilizzando questa formula:
Codice: Seleziona tutto
=SE(RESTO(SOMMA($B$2+$B$3);90)=0;90;SE(RESTO(SOMMA($B$2+$B$3);90)=1;91;SE(RESTO(SOMMA($B$2+$B$3);90)=45;45;"---")))
per l'ambo.
B2+B3
B2+B4
B2+B5
B2+B6
B2+D2
B2+D3
ECC. ECC.
Quest'altra:
Codice: Seleziona tutto
=SE(RESTO(SOMMA($B$2+$B$3+$B$4);90)=0;90;SE(RESTO(SOMMA($B$2+$B$3+$B$4);90)=1;91;SE(RESTO(SOMMA($B$2+$B$3+$B$4);90)=45;45;"---")))
per terno e così via le altre formule per le quaterne e le cinquine.
Arrivato a meta della tabella per l'ambo, ho incominciato a sballare con i riporti delle celle da sommare e mi sono reso conto
(dopo un rapido calcolo) che avrei dovuto inserire in totale 627 formule. :eeh: :eeh: , e successivamente avrei creato una tabella riassuntiva con altre formule per sapere quanti ambi, quanti terni, quante quaterne e quante cinquine fanno somma 90, somma 91 somma 45.
Potreste creare una macro che mi permetta di accorciare i tempi!!!!
Vi ringrazio per l'aiuto
bianco55
biancocandido55
Utente Senior
 
Post: 305
Iscritto il: 03/03/06 10:15

Sponsor
 

Re: macro per sommare celle (calcolo combinatorio)

Postdi Flash30005 » 03/02/12 11:12

Invia file con esempi

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: macro per sommare celle (calcolo combinatorio)

Postdi biancocandido55 » 03/02/12 15:50

Ciao Flash,
come richiesto, ecco il file come esempio:
prova somme.xls - 58.0 KB
Un abbraccio Immagine
bianco55 Immagine
biancocandido55
Utente Senior
 
Post: 305
Iscritto il: 03/03/06 10:15

Re: macro per sommare celle (calcolo combinatorio)

Postdi Flash30005 » 03/02/12 16:38

Come richiesto, ecco la/le macro

Codice: Seleziona tutto
Public VettN(10)
Sub Ambi()
V = 0
For RR = 3 To 5 Step 2
    For CC = 2 To 6
        V = V + 1
        VettN(V) = Cells(RR, CC).Value
    Next CC
Next RR
Col = 8
Riga = 3
For RV1 = 1 To 9
    For RV2 = RV1 + 1 To 10
        CombV = VettN(RV1) + VettN(RV2)
        CombV = CombV Mod 90
        If CombV = 0 Or CombV = 1 Then
            CombV = CombV + 90    '<<<<<<<<< correggere questa riga
        Else
            If CombV <> 45 Then CombV = "-"
        End If
        Cells(Riga, Col).Value = CombV
        Col = Col + 1
        If Col > 16 Then
            Col = 8
            Riga = Riga + 1
        End If
    Next RV2
Next RV1

End Sub

Sub Terni()
V = 0
For RR = 3 To 5 Step 2
    For CC = 2 To 6
        V = V + 1
        VettN(V) = Cells(RR, CC).Value
    Next CC
Next RR
Col = 18
Riga = 3
For RV1 = 1 To 8
    For RV2 = RV1 + 1 To 9
        For RV3 = RV2 + 1 To 10
            CombV = VettN(RV1) + VettN(RV2) + VettN(RV3)
            CombV = CombV Mod 90
            If CombV = 0 Or CombV = 1 Then
                CombV = CombV + 90    '<<<<<<<<< correggere questa riga
            Else
                If CombV <> 45 Then CombV = "-"
            End If
            Cells(Riga, Col).Value = CombV
            Col = Col + 1
            If Col > 26 Then
                Col = 18
                Riga = Riga + 1
            End If
        Next RV3
    Next RV2
Next RV1

End Sub

Sub Quaterne()
V = 0
For RR = 3 To 5 Step 2
    For CC = 2 To 6
        V = V + 1
        VettN(V) = Cells(RR, CC).Value
    Next CC
Next RR
Col = 28
Riga = 3
For RV1 = 1 To 7
    For RV2 = RV1 + 1 To 8
        For RV3 = RV2 + 1 To 9
            For RV4 = RV3 + 1 To 10
                CombV = VettN(RV1) + VettN(RV2) + VettN(RV3) + VettN(RV4)
                CombV = CombV Mod 90
                If CombV = 0 Or CombV = 1 Then
                    CombV = CombV + 90    '<<<<<<<<< correggere questa riga
                Else
                    If CombV <> 45 Then CombV = "-"
                End If
                Cells(Riga, Col).Value = CombV
                Col = Col + 1
                If Col > 37 Then
                    Col = 28
                    Riga = Riga + 1
                End If
            Next RV4
        Next RV3
    Next RV2
Next RV1
End Sub

Sub Cinquine()
V = 0
For RR = 3 To 5 Step 2
    For CC = 2 To 6
        V = V + 1
        VettN(V) = Cells(RR, CC).Value
    Next CC
Next RR
Col = 39
Riga = 3
For RV1 = 1 To 6
    For RV2 = RV1 + 1 To 7
        For RV3 = RV2 + 1 To 8
            For RV4 = RV3 + 1 To 9
                For RV5 = RV4 + 1 To 10
                    CombV = VettN(RV1) + VettN(RV2) + VettN(RV3) + VettN(RV4) + VettN(RV5)
                    CombV = CombV Mod 90
                    If CombV = 0 Or CombV = 1 Then
                        CombV = CombV + 90    '<<<<<<<<< correggere questa riga
                    Else
                        If CombV <> 45 Then CombV = "-"
                    End If
                    Cells(Riga, Col).Value = CombV
                    Col = Col + 1
                    If Col > 48 Then
                        Col = 39
                        Riga = Riga + 1
                    End If
                Next RV5
            Next RV4
        Next RV3
    Next RV2
Next RV1
End Sub


Spero non sposti i dati di partenza come hai già fatto dal primo post rispetto al file inviato
La macro lavora con la distribuzione dati del file

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: macro per sommare celle (calcolo combinatorio)

Postdi biancocandido55 » 03/02/12 18:04

Ciao Flash
grazie per la macro, va bene, bisogna solo ampliarla per le somme 91.
Ovvero resto 1.
un abbraccio.
bianco55 Immagine
biancocandido55
Utente Senior
 
Post: 305
Iscritto il: 03/03/06 10:15

Re: macro per sommare celle (calcolo combinatorio)

Postdi Flash30005 » 03/02/12 18:24

Si mi sono accorto del bug e ho corretto la macro precedente

puoi sostituirla interamente o modificare tu stesso la riga in tutte le routine

Codice: Seleziona tutto
        If CombV = 0 Or CombV = 1 Then
            CombV = CombV + 90    '<<<<<<<<< correggere questa riga
        Else


prova e fai sapere

ciao

P.s. Aggiungo che devi correggere le formule nella tabella sunto (quaterne e cinquine)
perché le combinazioni possibili sono più di quelle da te calcolate
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: macro per sommare celle (calcolo combinatorio)

Postdi biancocandido55 » 03/02/12 20:48

Ciao Flash,
corretta la macro, le formule e formattate le celle aumentate,
tutto OK!
Grazieeeeeeeee
Un abbraccio
bianco55. Immagine
biancocandido55
Utente Senior
 
Post: 305
Iscritto il: 03/03/06 10:15


Torna a Applicazioni Office Windows


Topic correlati a "macro per sommare celle (calcolo combinatorio)":


Chi c’è in linea

Visitano il forum: Marius44 e 36 ospiti