Langage VBA et boucle

Résolu
sycsmdiydlms Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
sycsmdiydlms Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -
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.
A voir également:

2 réponses

Gyrus Messages postés 3334 Date d'inscription   Statut Membre Dernière intervention   526
 
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   Statut Membre Dernière intervention  
 
Arf effectivement j'avais écrit trop vite. La somme s'arrête à J.
Merci
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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   Statut Membre Dernière intervention  
 
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