Condividi:        

somma valori in righe a condizione

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

somma valori in righe a condizione

Postdi miko » 23/05/10 10:19

salve,
devo sommare dei valori disposti su n righe e 10 colonne;
nel range ci sono celle vuote e non so dove esse si trovino;
la somma avviene per ogni riga;
il seguente codice funziona molto bene
Codice: Seleziona tutto
For r1 = 3 To UR
    Cells(r1, 12) = Application.WorksheetFunction.Sum(Range("B" & r1 & ":K" & r1))
    If Cells(r1, 12).Value = 0 Then Cells(r1, 12).Value = ""
Next r1

ma ora il mio problema è che devo sommare i valori di ogni riga solo se nella riga
vi è almeno una cella vuota, se invece nella riga x tutte le 10 celle sono
piene non deve effettuare la somma ma passare alla riga successiva, verificare la presenza di celle vuote ed eseguire la somma altrimenti passare alla riga successiva.
ho pensato di inserire un ciclo if del tipo:
If Cells(r2, c).Value <> "" And... then salta alla riga successiva -non esegui somma
da ripetere 10 volte e nel quale, devo evidendemente variare le variabili r2 e c;
ma forse esiste un metodo diverso per ottenere lo stesso risultato?
ciao buona domenica
windows 10 - office 2013
miko
Utente Senior
 
Post: 520
Iscritto il: 29/12/09 10:44

Sponsor
 

Re: somma valori in righe a condizione

Postdi Flash30005 » 23/05/10 10:47

Prova questa
Codice: Seleziona tutto
Sub SommaV()
Somma = 0
Conta = 0
For RR = 3 To UR
  Cells(RR, 12).Value = ""
    For CC = 1 To 10
    If Cells(RR, CC).Value <> "" Then Conta = Conta + 1
        If Conta = 10 Then GoTo salta
        Somma = Somma + Cells(RR, CC).Value
    Next CC
    If Somma = 0 Then Somma = ""
    Cells(RR, 12).Value = Somma
salta:
Conta = 0
Somma = 0
Next RR
End Sub


Ciao e buona domenica anche a te
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: somma valori in righe a condizione

Postdi Anthony47 » 23/05/10 17:19

Oppure questa, che dovrebbe essere piu' veloce:
Codice: Seleziona tutto
For r1 = 3 To UR
If Application.WorksheetFunction.CountBlank(Range("B" & r1 & ":K" & r1)) > 0 Then
    Cells(r1, 12) = Application.WorksheetFunction.Sum(Range("B" & r1 & ":K" & r1))
Else: Cells(r1, 12).Value = ""
End If
Next r1

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: somma valori in righe a condizione

Postdi miko » 24/05/10 11:55

ciao,
vi ringrazio per le macro, ambedue funzionano bene;
ho provato a modificare la macro di anthony, poichè la macro calcola la somma
anche delle righe completamente vuote, inserendo zero (0) nella colonna delle somme,
essendo inutile calcolare la somma di celle vuote ho aggiunto 1 linea
Codice: Seleziona tutto
For r1 = 3 To UR
If Application.WorksheetFunction.CountBlank(Range("B" & r1 & ":K" & r1)) > 0 Then
    Cells(r1, 12) = Application.WorksheetFunction.Sum(Range("B" & r1 & ":K" & r1))

If Cells(r1, 12).Value = 0 Then Cells(r1, 12).Value = ""  '<<<<<<<<<

Else: Cells(r1, 12).Value = ""
End If
Next r1

la macro funziona, ma calcola sempre la somma della riga completamente vuota solo che poi al posto dello zero mette il vuoto.
come modifico la macro, forse bisogna agire su CountBlank?
saluti grazie
windows 10 - office 2013
miko
Utente Senior
 
Post: 520
Iscritto il: 29/12/09 10:44

Re: somma valori in righe a condizione

Postdi Anthony47 » 24/05/10 14:21

Ad esempio:
Codice: Seleziona tutto
'. . .
If Application.WorksheetFunction.CountBlank(Range("B" & r1 & ":K" & r1)) > 0 and _
  Application.WorksheetFunction.CountBlank(Range("B" & r1 & ":K" & r1)) < 10 Then
'. . .

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: somma valori in righe a condizione

Postdi miko » 24/05/10 16:45

salve, ho provato la modifica, funziona perfettamente.
ti chiedo solo la spiegazione nella seconda linea della presenza di <10
Application.WorksheetFunction.CountBlank(Range("B" & r1 & ":K" & r1)) < 10
si riferisce a 10 colonne?
ciao e ancora grazie
windows 10 - office 2013
miko
Utente Senior
 
Post: 520
Iscritto il: 29/12/09 10:44

Re: somma valori in righe a condizione

Postdi Anthony47 » 25/05/10 23:44

La seconda parte della If controlla che non ci siano tutti blank nelle 10 celle dei tuoi dati (B:K)

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: somma valori in righe a condizione

Postdi miko » 26/05/10 11:20

salve,
grazie della spiegazione;
meglio te ... che un manuale
ciao
windows 10 - office 2013
miko
Utente Senior
 
Post: 520
Iscritto il: 29/12/09 10:44


Torna a Applicazioni Office Windows


Topic correlati a "somma valori in righe a condizione":


Chi c’è in linea

Visitano il forum: Nessuno e 54 ospiti