Langage VBA et boucle

Résolu/Fermé
sycsmdiydlms Messages postés 4 Date d'inscription lundi 19 janvier 2015 Statut Membre Dernière intervention 18 mars 2015 - 18 mars 2015 à 10:50
sycsmdiydlms Messages postés 4 Date d'inscription lundi 19 janvier 2015 Statut Membre Dernière intervention 18 mars 2015 - 18 mars 2015 à 11:16
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

Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
18 mars 2015 à 11:00
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
sycsmdiydlms Messages postés 4 Date d'inscription lundi 19 janvier 2015 Statut Membre Dernière intervention 18 mars 2015
Modifié par sycsmdiydlms le 18/03/2015 à 11:17
Arf effectivement j'avais écrit trop vite. La somme s'arrête à J.
Merci
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
18 mars 2015 à 11:02
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
sycsmdiydlms Messages postés 4 Date d'inscription lundi 19 janvier 2015 Statut Membre Dernière intervention 18 mars 2015
Modifié par sycsmdiydlms le 18/03/2015 à 11:16
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