Code VBA 2007 à 2003: Function.Sum

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

pierrof

XLDnaute Occasionnel
Bonjour

J'essaye d'adapter mon code VBA (2007) en 2003, mais je bloque pour une erreur sur la fonction somme:

Sheets("B").Cells(Ligne, 2).Value = Application.WorksheetFunction.Sum(Sheets("B").Range(Cells(2, 2).Address & ":" & Cells(Ligne - 1, 2).Address))
Sheets("B").Cells(Ligne, 3).Value = Application.WorksheetFunction.Sum(Sheets("B").Range(Cells(2, 3).Address & ":" & Cells(Ligne - 1, 3).Address))
Sheets("B").Cells(Ligne, 4).Value = Application.WorksheetFunction.Sum(Sheets("B").Range(Cells(2, 4).Address & ":" & Cells(Ligne - 1, 4).Address))
Sheets("B").Cells(Ligne, 5).Value = Application.WorksheetFunction.Sum(Sheets("B").Range(Cells(2, 5).Address & ":" & Cells(Ligne - 1, 5).Address))

Comment écrire ce code en VBA 2003?

Merci de votre aide et de vos explications.

Bonne journée
 
Re : Code VBA 2007 à 2003: Function.Sum

bonjour

dans la mesure où la feuille B existe et que la variable Ligne vaut au minimum 2, ce code fonctionne !

La fourniture du type d'erreur aurait été un plus !

Par ailleurs, plutôt que d'écrire 5 lignes de code quasi identiques, on pourrait faire une boucle for.

A+
 
Re : Code VBA 2007 à 2003: Function.Sum

Re Bonjour

Ma réponse du 11/09/2014 reste valable.

Que voulez vous faire ?

S'il s'agit simplement de faire la somme de B2 à Bxx, plutôt que
Application.WorksheetFunction.Sum(Sheets("B").Range(Cells(2, 2).Address & ":" & Cells(Ligne - 1, 2).Address))

écrivez peut-être

Application.WorksheetFunction.Sum(Sheets("B").Range("B2:B" & Ligne-1))

Bonne suite
 
Re : Code VBA 2007 à 2003: Function.Sum

salut

2 propositions à tester
Code:
Sub a()
 L = 10 'ou autre mais > 2 !
  With Sheets("B")
    .Cells(L, 2) = Application.Sum(Range("B2:B" & L - 1))
    .Cells(L, 3) = Application.Sum(Range("C2:C" & L - 1))
    .Cells(L, 4) = Application.Sum(Range("D2:D" & L - 1))
    .Cells(L, 5) = Application.Sum(Range("E2:E" & L - 1))
  End With
 End Sub
Sub B()
  L = 10
  With Sheets("B").Range(Cells(L, 2), Cells(L, 5))
   .FormulaR1C1 = "=SUM(R[-3]C:R[-1]C)" 'la formule
   .Value = .Value 'la valeur
 End With
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
5
Affichages
839
Réponses
1
Affichages
305
Retour