Langage VBA et boucle

Résolu
Bonjour à tous,

Je débute en langage VBA, et je rencontre quelques problèmes de syntaxe.

J'aurais besoin de calculer des sommes sur une ligne, en utilisant la commande Sum. Cela fonctionne quand je rentre manuellement les coordonnées de la cellule qui compte le total, et de la plage de cellule à sommer.

Cependant, cette somme à calculer est nécessaire sur plusieurs lignes.

Voici le bout de code que j'ai testé (sans succès, erreur 1004).

Sub test_1()

Dim i

For i = 4 To 28

Range("K" & i) = Application.WorksheetFunction.Sum(Range("B&i:K&i"))
i = i + 1
Next i

End Sub



Quelqu'un pourrait m'éclaircir quant à mon erreur, s'il vous plait ?

Je vous remercie d'avance pour les réponses apportées.

Bien cordialement.

2 réponses

  1. Bonjour,

    Avant de t'intéresser au problème de syntaxe, commencer par régler celui de logique.
    Tel que rédigé, ton code demande que
    K4 contienne la somme de B4:K4,
    K5 contienne la somme de B5:K5,
    etc...
    Tu obtiens une référence circulaire dans la colonne K (le calcul se mord la queue).

    A+
    0
    1. Arf effectivement j'avais écrit trop vite. La somme s'arrête à J.
      Merci
      0
  2. Contributeur
    Bonjour
    je débute en langage VBA
    Bienvenue à bord du Titanic !

    tu as plusieurs erreurs
    -une référence circulaire puisque tu demandes en K la somme de B à K

    -une mauvaise syntaxe dans Range("B&i:K&i")
    écris
    Range("B" & i & "J" & i)
    les espaces sont obligatoires
    ou
    range(cells(i,"B"), cells(i,"J"))

    0
    1. Il n'y avait pas de problème de boucle (j'ai simplement recopié trop vite ..), et j'ai testé les deux syntaxes, mais c'est seulement la deuxième écriture qui a fonctionné..

      Je reçois l'erreur 1004 en utilisant les &

      Ce qui compte, c'est que l'une des deux fonctionne !

      Merci beaucoup
      0