Boucle sur plusieurs colonnes avec variables

Bearodras

XLDnaute Nouveau
bonjour à tous,

je cherche à faire une fonction qui me paraît pourtant simple mais qui ne veut pas marcher, j'ai essayé de trouver de l'aide sur le forum et sur internet malheureusement sans succès.

Mon problème est le suivant. A la suite de plusieurs macro, j'obtiens un tableau avec plusieurs colonnes et j'ai besoin de faire la somme de chaque colonne une à une et d'inscrire le total au bas de cette colonne. Le nombre de lignes varie à chaque fois que je relance les macros qui créent le tableau, d'où la nécessité d'avoir la variable m.

Voici mon code qui ne marche pas :

Dim Col As Range, m As Integer, n As Integer, total As Integer

For Each Col In Range("K1:X1").Columns
m = WorksheetFunction.CountA(Range("A:A"))
total = 0
For n = 2 To m
total = total + Range("Col" & n).Value
Next n
m = m + 1
Range("Col" & m).Value = total

Next Col



Sauriez vous d'où vient mon problème ? Je ne suis pas sur de la casse pour le Range("Col" & m) mais je n'est rien trouver de mieux ...

Merci bien

Cordialement
Bearodras
 

Dranreb

XLDnaute Barbatruc
Re : Boucle sur plusieurs colonnes avec variables

Bonjour.
VB:
total = total + Col.Rows(n).Value
Mais pourquoi recalculez vous m à chaque passage dans la boucle ?
Et pourquoi un code aussi lent ?
Ne pourriez vous installer une formule qui fait la somme, quitte à en réaffecter sa Value si vous tenez à ce qu'elle sot figée ?
 

Bearodras

XLDnaute Nouveau
Re : Boucle sur plusieurs colonnes avec variables

Merci de votre réponse.
Cela ne marche toujours pas malheureusement.

Je vais tenter de répondre à vos questions =) Alors le recalcul de m était effectué car m est modifié à chaque fois pour utilisé la valeur m+1 dans Range, je l'ai changé en mettant directement m+1 dans le dernier Range.
J'espère avoir bien compris votre dernière proposition. Le problème avec avec l'installation d'une formule est qu'elle ne doit pas être sur une case fixée car la taille de mon tableau varie à chaque utilisation de la macro générale dans laquelle cette petite fonction doit être insérée.

Range("Col" & m).Value = total est il bien écrit ? Malgré mes recherches je n'arrive pas à savoir comment utilisé la méthode Range.Value avec deux variables.
 

Dranreb

XLDnaute Barbatruc
Re : Boucle sur plusieurs colonnes avec variables

Joignez un classeur que j'y voie plus clair. Je ne comprends rien à vos objections, et je ne comprends toujours pas pourquoi vous ne faites pas tout simplement :
VB:
Range("K1:X1").Offset(m).FormulaR1C1 = "=SUM(R2C:R[-1]C)"
 

Bearodras

XLDnaute Nouveau
Re : Boucle sur plusieurs colonnes avec variables

Ahah inutile maintenant,

Votre dernier code vb fait exactement ce dont j'ai besoin !!
Je ne connaissais pas la fonction Offset et cette combinaison avec Range est juste d'une simplicité parfaite =)
Cela va me permettre de simplifier bien d'autres macro !!

Merci beaucoup de votre aide

Cordialement
Bearodras
 

Discussions similaires

Réponses
6
Affichages
248
Réponses
2
Affichages
154