Use esta macro:
Function SomarLinha(ByVal Celulas As Range, ByVal nColunas As Integer) As Double
'
' Somar valores nas células de um determinado intervalo, limitado ao número nColunas de células
'
'
' Exemplo: SomarLinha(A2:P2 ; 12)
' A2:P2 - intervalo a ser procurado
' 12 - Número de colunas com valores que serão somadas
' Obs.: ordem de busca P2, O2, N2, M2, ..., A2
'
On Error GoTo e_SomarLinha
Dim nContador As Integer
Dim nSoma As Double
Dim nRow As Integer
Dim nCol As Integer
nContador = 0
nSoma = 0
nRow = Celulas.Cells.Row
nCol = Celulas.Cells.Columns.Count
'Verifica se o intervalo é menor que a quantidade de células a serem somadas
If nColunas > nCol Then
nColunas = nCol
End If
'Somar os valores no intervalo
Do While nCol > 0
'Verifica se existe valor na célula a ser somado
If Cells(nRow, nCol) <> "" Then
nContador = nContador + 1
nSoma = nSoma + Cells(nRow, nCol)
End If
'Verifica se já atingiu o número de células somadas
If nContador = nColunas Then
Exit Do
End If
nCol = nCol - 1
Loop
'Retorna a soma das células encontradas no intervalor
SomarLinha = nSoma
e_SomarLinha_Exit:
Exit Function
e_SomarLinha:
Resume e_SomarLinha_Exit
End Function