Valutazione 4.87/ 5 (100.00%) 5838 voti

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 xp-office 2003
miko
Utente Senior
 
Post: 422
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
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
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
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
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 xp-office 2003
miko
Utente Senior
 
Post: 422
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
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
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 xp-office 2003
miko
Utente Senior
 
Post: 422
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.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
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 xp-office 2003
miko
Utente Senior
 
Post: 422
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 16 ospiti