Somme avec nombres de lignes et colonnes différents

Bonjour à tous.

C'est ma première question sur un forum, merci d'être indulgents !

je cherche à faire la somme de plusieurs lignes dans une colonne avec VBA. Je n'ai jamais la même quantité de lignes et de colonnes chaque mois, aussi je cherche à remplacer les coordonnées des lignes et colonnes par des variables, à passer à la fonction SUM, mais je récolte à chaque fois une erreur. Comment faire passer les variables dans les exemples suivants :

Celle ci fonctionne : ActiveCell.FormulaR1C1 = "=SUM(R1C:R24C)"

Mais je n'arrive pas à remplacer R1C et R24C par des variables , comme ci-dessous une autre tentative :

ActiveCell.Formula = "=SUM(R[1]C[macol]:R[maligne]C[macol])"

Merci de votre éclairage !

Bruno.

Bonjour, est-ce obligatoire de laisser les formules dans les cellules ? Parce que sinon, vous faites la somme dans vba et vous renvoyez le résultat dans une cellule. Comme ça vous ne vous prenez plus la têtes avec les R2D2 !? Non ?

Merci Force Rouge.

je ne voyais pas ça comme ça, mais c'est certainement une solution pertinente et simple à réaliser.

Je l'essaie, mais j'aurais bien voulu quand même comprendre pourquoi cette fonction SUM me refuse mes variables ???

Peut-être avez-vous une explication? Merci d'avance.

Bruno.

C'est pas du tout ma spécialité donc je ne vais pas trop m'avancer. Ceci dit il y a des erreurs d'écriture.

Si vous voulez écrire une formule en utilisant les coordonées de type R1C1 , il faut le préciser. Et dans se cas ce n'est plus .formula mais .FormulaR1C1 (y a peut-être un S à formula à la fin j'sais plus...).

Pour les variables, il me semble que c'est possible d'integrer des variables dans se type d'écriture. Si mes souvenirs sont exact, il faut séparer les variables du reste du texte par des "".

Exemple...

"=sum(R"& mavariable & ":c" & ma variable & "..."

Vous voyez la démarche ? On sépare les variables du reste de la syntaxe en fermant et ouvrant les guillemets. Les variables doivent être exlusent de la syntaxe d'écriture d'où l'ouverture et la fermeture des guillemets...

Je ne sais pas si je suis clair donc n'hésitez pas à demander 15 fois s'il le faut

Merci Force Rouge

Pas de problème, votre première piste est extrêmement efficace. Je rencontre simplement un souci de type de données, car lorsque j'additionne dans une variable le contenu de chaque cellule, j'obtiens une erreur. Il faudrait que je transforme chaque contenu dans les cellules en nombre.

Ce code fonctionne :

For rwindex = 2 To maligne

montot = Sheets("tabdef").Cells(rwindex, macol).Value

msgbox montot ------------------------------> j'obtiens bien la valeur (pour vérification!)

montotal = montotal + montot ----------> l'erreur est là, ce n'est pas un nombre, mais du texte!

Next

Auriez-vous un tuyau pour la transformation?

merci.

Bruno.

(montot * 1)
[a1] = [a1].Value

font la même chose, ils convertissent au format numérique.

Merci Force Rouge pour vos conseils.

j'ai trouvé la façon de transformer les textes en nombre, ça marche.

For rwindex = 2 To maligne

montot = Sheets("tabdef").Cells(rwindex, macol).Value

Selection.NumberFormat = "0"

montotal = montotal + montot

Next rwindex

Une question subsidiaire : quand doit-on appuyer sur le bouton "résolu"? Avant ou après le dernier échange ???

Merci!

Cordialement.

Bruno

Pour le sujet...Quand vous estimez avoir eu suffisamment de réponse nécessaire à la clôture de votre question ! (sympa comme réponse non ?)


Après vous n'êtes peut-être pas obligé de faire une boucle , vous pouvez aussi faire ça en plage par exemple

[a1:a100] = [a1:a100].Value

De cette façon vous balayez toute la plage A1:A100

Force Rouge

Bien vu pour la réponse à propos du sujet...

Pour la plage, j'ai peur de buter encore sur des problèmes de ponctuation. La boucle me plait bien!

Merci pour tout.

A bientôt!

Bruno

De rien @+

Rechercher des sujets similaires à "somme nombres lignes colonnes differents"