[VBA]Somme avec selection de cellules manuelle [Résolu]

Messages postés
11
Date d'inscription
mercredi 9 mai 2012
Statut
Membre
Dernière intervention
5 juin 2012
- - Dernière réponse : cs_reizer
Messages postés
11
Date d'inscription
mercredi 9 mai 2012
Statut
Membre
Dernière intervention
5 juin 2012
- 4 juin 2012 à 13:51
Bonjour,

Voila j'ai recherché sur internet et sur le forum et je n'ai pas trouvé de réponse à ma question.
Enfaite ce que j'aimerais c'est pouvoir procéder comme sur excel, c'est à dire pouvoir faire une somme en faisant "=" et en selectionnant les cellules et recevoir le résultat dans une TextBox.
En gros (si possible) qu'il y ai un bouton à coté de ma TextBox qui fait ça et rentre la valeur dans cette TextBox.

En feuilletant les forums j'ai entendu parler de la fonction SUM() mais je n'ai pas trouvé ce que je recherché vraiment.

Merci de votre aide,

Reizer
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
11
Date d'inscription
mercredi 9 mai 2012
Statut
Membre
Dernière intervention
5 juin 2012
3
Merci
Bonjour,

Désolé du temps de réponse, j'étais en congé..

Voila j'ai réussi à concevoir ce que je voulais faire ! Merci à toi.

Pour ceux que ça interesse, voici comment j'ai procédé :

      Dim Plage As Range
      Set Plage = Application.InputBox("Sélectionnez une plage !", "Sélection de cellules", Type:=8)
      MsgBox ("La plage que vous avez séléctionnez est : " & Plage.Address)



Je vous souhaite une bonne journée !

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 196 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_reizer
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
212
0
Merci
Bonjour,

- Que vient faire ta discussion dans la section
Forum > VB.NET et VB 2005

alors que, selon toute évidence, tu développes sous VBA (le VBA de Excel) ! ?
Prends s'il te plait dorénavant soin d'ouvrir ces discussions là où il convient : Langages dérivés > VBA. VBA est très loin d'être du VB.Net !
- ouvre ton aide VBA sur le mot WorkSheetFunction
- lis attentivement
- clique ensuite (dans la rubrique ainsi ouverte) sur Membres de l'objet WorksheetFunction >> puis sur Sum >> lis === applique.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Commenter la réponse de ucfoutu
Messages postés
11
Date d'inscription
mercredi 9 mai 2012
Statut
Membre
Dernière intervention
5 juin 2012
0
Merci
Bonjour, désolé je n'avais remarqué que tu avais déplacé ma question dans la bonne partie du forum.

Sinon, le problème c'est que la fonction Sum() ne permet pas de selectionner les celulles à la main (comme sur excel). Je ne souhaite pas avoir une somme Statique, mais une somme dynamique qui puisse être changé à tout moment par les utilisateurs.

Comme par exemple l'utilisateur Landa, souhaite effectuer dans le label 1 , la somme du label50 et celui du label40 (ou de la cellule A15 + C20)
, alors que l'utilisateur Beta, lui souhaite la somme du label50 + label29 ect..

Merci
Commenter la réponse de cs_reizer
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
212
0
Merci
On ne parle ici (c'est ainsi que tu as ouvert le sujet) que de la sélection de cellules.
Et ma réponse est celle que je t'ai déjà donnée !
Elle est à appliquer à l'objet .... (attends ... je mouille mon doigt et le place au vent .... Ah ! ..... Selection... qui l'eût cru ? !!! )


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Commenter la réponse de ucfoutu
Messages postés
11
Date d'inscription
mercredi 9 mai 2012
Statut
Membre
Dernière intervention
5 juin 2012
0
Merci
Et comment procèdes tu pour la selection, qui doit être manuelle, sous VBA?

Car l'utilisateur de mon projet n'aura pas accès au code VBA, et n'aura aucune connaissance de la programmation VBA.

Car faire une selection en "code pur", c'est simple, mais que par exemple, lors du clique sur un bouton "Somme":
- On quitte l'userForm pour retourner sur la feuille excel
- On selectionne les cellules à la main
- On valide, l'userform réaparait
- Le resultat de la somme s'écrit dans un label

Je ne pense pas qu'un simple select puisse le faire, ou si c'est possible, que l'on m'explique rapidement le principe
Commenter la réponse de cs_reizer
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
212
0
Merci
Aucun "simple select" ne lancera bien évidemment seul un code !
Mais rien ne t'empêche de lancer un code vba par un click sur un bouton mis à la disposition de l'utilisateur ! Tu peux même le lancer sur l'évènement de ton choix (par exemple) :
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
  MsgBox Selection.Address
End Sub

sélectionne une plage, fais unclick droit et tu verras que cet évènement connait la plage sélectionnée ! (sur laquelle tu dois appliquer la fonction dont je t'ai déjà parlé deux fois !
Tu peux même faire en sorte, de vérifier que la selection faite est cohérente pour la somme (cellules contigües d'une même colonne). Où est le problème ?



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
212
0
Merci
Je t'ai parlé de l'objet selection.
Je viens de vérifier : marche
Mais marche également l'objet Target, en plus ===>>
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
  MsgBox Target.Address
End Sub

Je veux te voir commencer à écrire sur ces bases.
je ne t'aiderais plus loin qu'après avoir constaté ton propre effort fait à l'aide de tout ce dont je t'ai parlé.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Commenter la réponse de ucfoutu