Simple fonction Somme par ligne

peternewman007

XLDnaute Nouveau
Bonjour,

Je souhaite faire la somme en vba (rapidité) de la colonne H à AH pour chaque ligne (+ de 3000 lignes).
J'ai essayé ceci mais ça ne fonctionne pas :
Code:
If target.Column >= 8 And target.Column < 39 Then
    Application.EnableEvents = False
        Cells(target.Row, 39) = Application.WorksheetFunction.Sum(target.Row)
    Application.EnableEvents = True
End If

Quelq'un pour m'aider?

Merci d'avance,

Peter
 

vgendron

XLDnaute Barbatruc
Re : Simple fonction Somme par ligne

Hello

dans ton code tu ne fais que la somme de target.row.... donc forcément. si tu cliques sur la ligne 1, tu vas avoir pour résultat 1

essaie avec ceci


If Target.Column >= 8 And Target.Column < 39 Then
Application.EnableEvents = False
Cells(Target.Row, 39) = Application.WorksheetFunction.Sum(Range(Cells(Target.Row, 8), Cells(Target.Row, 34)))
Application.EnableEvents = True
End If
 

Si...

XLDnaute Barbatruc
Re : Simple fonction Somme par ligne

salut

autres propositions pour la somme d'une plage VBA ,
Code:
Private Sub Worksheet_Change(ByVal R As Range)
  If R.Column > 7 And R.Column < 39 Then
    Application.EnableEvents = 0
    Cells(R.Row, 39) = Application.Sum(Cells(R.Row, 8).Resize(, 38)) '<--- 33 pour AH sinon 38 pour AL
    Cells(R.Row, 39) = Cells(R.Row, 39).Value '<--- *
    Application.EnableEvents = 1
  End If
End Sub

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column > 7 And Target.Column < 39 Then
    Application.EnableEvents = 0
    Cells(Target.Row, 39).FormulaR1C1 = "=SUM(RC[-31]:RC[-1])"  '<--- formule =Somme(Hn:ALn)
    'Cells(Target.Row, 39) = Cells(Target.Row, 39).Value  '<--- *
    Application.EnableEvents = 1
  End If
End Sub

* formule remplacée par la valeur pour éviter des problème de ralentissement s'il y en a trop mais il faut voir l'ensemble car une formule pourrait suffire.
 

peternewman007

XLDnaute Nouveau
Re : Simple fonction Somme par ligne

Bonjour Si...

Je viens de remplacer le code par le dernier que tu m'as proposé.
Pas d'amélioration notable de rapidité mais en même je teste 5-10 lignes et au final le fichier en fera presque 4.000 donc.. à voir ! ;)

Merci,

Peter
 

Discussions similaires

Statistiques des forums

Discussions
312 488
Messages
2 088 864
Membres
103 979
dernier inscrit
imed