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))
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)
Alors pour être plus précis pour les autres qui se poserai la même question, ma fonction (debut) et (fin) renvois la chose suivante :
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 !
Dim maselection As Range 'déclare maselection comme un range
With Selection 'dans ma selection debut = .Item(1).Address 'trouve l'adresse du début de ma selection soit "$f$26" fin = .Areas(.Areas.Count)(.Areas(.Areas.Count).Count).Address 'trouve l'adresse de fin de ma selection soit "$f$34" End With
Set maselection = Range((debut), (fin)) 'defini la selection Range("G8").Value = Application.Sum(maselection) 'applique la somme
VBAntoine tu me sauve ! j'ai passé mon après-midi à chercher une solution et enfaite c'était tout simple !
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 !