Somme variable en VBA pas en formule
Résolu
Gorgul
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
ThauTheme Messages postés 1442 Date d'inscription Statut Membre Dernière intervention -
ThauTheme Messages postés 1442 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je m'appelle Sébastien, Je suis nouveau sur le forum car la plus part du temps je trouvais tout mon bonheur sans que j'ai besoin de poser ma question.
Sauf que maintenant, sauf erreur de ma part, je n'ai pas trouvé ce que je voulais réaliser et je sollicite à mon tour l'aide des internautes qui m'a toujours été d'une très grande utilité !
je m'explique :
1) j'ai sélectionné une plage de donnée variable par macro (ok)
2) j'ai trouvé un bout de code qui me récupère la première coordonnée et la dernière coordonnée de ma plage de donnée (ok)
3) je souhaite faire la somme de cette plage de donnée en utilisant les deux variable "début" et "fin" (cf code ci dessous)
En gros mon code me récupère une plage de donnée précise. J'ai réussi à récupérer grâce a des variables la première cellule de ma plage de donnée et la dernière. Mon but maintenant, c'est d'utiliser les variables pour faire une somme de la plage.
Exemple :
debut = f26
fin = f34
mais plus tard ça pourrait très bien être : f44 à f53 ou f74 à f85 (toujours dans la colonne f)
donc mon but serrait de trouver une macro en "VBA" dont la forme (en formule) serrait :
=somme(debut:fin)
sauf que je sais pas du tout écrire ça en VBA....
J’espère avoir été claire :D
code ou je bloque :
'(pour que ça marche faut selectionner une plage de donnée sur une seule colonne)
With Selection
debut = .Item(1).Address
fin = .Areas(.Areas.Count)(.Areas(.Areas.Count).Count).Address
End With
'sauf que la ligne du dessous additionne uniquement la première cellule et la dernière...
Range("G8").Value = Application.Sum(Range(debut), Range(fin))
Je m'appelle Sébastien, Je suis nouveau sur le forum car la plus part du temps je trouvais tout mon bonheur sans que j'ai besoin de poser ma question.
Sauf que maintenant, sauf erreur de ma part, je n'ai pas trouvé ce que je voulais réaliser et je sollicite à mon tour l'aide des internautes qui m'a toujours été d'une très grande utilité !
je m'explique :
1) j'ai sélectionné une plage de donnée variable par macro (ok)
2) j'ai trouvé un bout de code qui me récupère la première coordonnée et la dernière coordonnée de ma plage de donnée (ok)
3) je souhaite faire la somme de cette plage de donnée en utilisant les deux variable "début" et "fin" (cf code ci dessous)
En gros mon code me récupère une plage de donnée précise. J'ai réussi à récupérer grâce a des variables la première cellule de ma plage de donnée et la dernière. Mon but maintenant, c'est d'utiliser les variables pour faire une somme de la plage.
Exemple :
debut = f26
fin = f34
mais plus tard ça pourrait très bien être : f44 à f53 ou f74 à f85 (toujours dans la colonne f)
donc mon but serrait de trouver une macro en "VBA" dont la forme (en formule) serrait :
=somme(debut:fin)
sauf que je sais pas du tout écrire ça en VBA....
J’espère avoir été claire :D
code ou je bloque :
'(pour que ça marche faut selectionner une plage de donnée sur une seule colonne)
With Selection
debut = .Item(1).Address
fin = .Areas(.Areas.Count)(.Areas(.Areas.Count).Count).Address
End With
'sauf que la ligne du dessous additionne uniquement la première cellule et la dernière...
Range("G8").Value = Application.Sum(Range(debut), Range(fin))
A voir également:
- Somme vba
- Formule somme excel colonne - Guide
- Somme si couleur - Guide
- Somme en anglais excel - Guide
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
- Incompatibilité de type vba ✓ - Forum Programmation
2 réponses
Salut,
problème dans l'écriture de la selection
il faut voir ce que renvoie précisément ta fonction dans (debut) et (fin)
Range("G8").Value = Application.Sum(Range(("A18"), ("B20")))
OU
Range("G8").Value = Application.Sum(Range((cells(18,1), cells(20,2)))
OU
dim maselection as range
Set maselection = Range(("A18"), ("B20"))
Range("G8").Value = Application.Sum(maselection)
problème dans l'écriture de la selection
il faut voir ce que renvoie précisément ta fonction dans (debut) et (fin)
Range("G8").Value = Application.Sum(Range(("A18"), ("B20")))
OU
Range("G8").Value = Application.Sum(Range((cells(18,1), cells(20,2)))
OU
dim maselection as range
Set maselection = Range(("A18"), ("B20"))
Range("G8").Value = Application.Sum(maselection)
debut : "$f$26"
fin : "$f$34"
Ce qui correspond donc à mes coordonnées du début et de fin de ma sélection variable. En passant par le code suivant tout fonctionne à merveille !
VBAntoine tu me sauve ! j'ai passé mon après-midi à chercher une solution et enfaite c'était tout simple !
Merci t'es un AS !