Selection Change

Ubot303

XLDnaute Occasionnel
Bonjour à tous,

J'ai un problème un peu particulier et je viens de faire qq recherches pour bidouiller un bout de code, mais je n'ai pas eu le déclic qui va bien... Aussi je me tourne vers vous...

Je cherche à simuler le champ en bas à droite d'Excel (celui qui fait Nombre, Somme... )à l'aide d'une macro évènementielle Selectionchange.

Le but : quand l'utilisateur séléctionne nimporte quelle cellule, ou nimporte quel ensemble de cellule, un tooltiptext à côté de la souris apparait avec la somme (pour l'instant) de la selection ...

Mes soucis : en cas de séléction multiple, je n'arrive pas à réutiliser le "Target" (Range) et le positionnement du Tooltiptext...

Merci d'avance de votre aide !
 

Pierrot93

XLDnaute Barbatruc
Re : Selection Change

Re,

avec ce que j'ai compris :

Code:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim c As Range, x As Integer, y As Comment
For Each y In Me.Comments
    y.Delete
Next y
For Each c In Target
   x = x + c
Next c
Target.Areas(Target.Count).AddComment CStr(x)
End Sub

@+
 

Ubot303

XLDnaute Occasionnel
Re : Selection Change

Tout à fait, mais c'était moche :)

J'en suis au super basic (avec une message box) :

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
For i = 1 To Target.Cells.Count
If IsNumeric(Target(i)) = True Then Total = Total + Target(i)
Next
MsgBox Total
End Sub

Ca résoud mon problème de la sélection multiple et de valeur numérique...
Maintenant, je me penche sur le Tooltiptext (tu sais c'est le petit encart jaune d'aide qui s'affiche quand tu passes la souris sur une cellule par ex).

edit : j'avais pas vu ton second post je regarde
 

Ubot303

XLDnaute Occasionnel
Re : Selection Change

Avec le rajout du test Isnumeric sur ta fonction, ca marche bien...
J'ai aussi positionné la macro évenementielle au niveau de la sheet et non pas comme j'avais commencé à faire au niveau du Workbook

Mais le commentaire n'est pas une solution très "design" au final ;)

Je suis en train de me demander si on ne pourrait pas passer par la création d'un Label et son positionnement à côté de la dernière cellule sélectionnée...
(PS : je n'ai pas d'autres label dans la feuille)

Tu ferais ca comment Pierrot, si je peux abuser un peu de ton aide? :)
 

Ubot303

XLDnaute Occasionnel
Re : Selection Change

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

'déclarations
Dim c As Range, x As Integer

'Effectuer la somme de la selection si les valeurs sont numériques
For Each c In Target
If IsNumeric(c) = True Then x = x + c
Next c

'Affichage sur le Label1 en bas à droite de la sélection
Label1.Caption = x
Label1.Left = Target.Left + Target.Width
Label1.Top = Target.Top + Target.Height
End Sub

Bon voila le résultat en incoporant un zoli label1... :D
Merci Pierrot !
 

Pierrot93

XLDnaute Barbatruc
Re : Selection Change

Re,

et bien je vois que tu t'es très bien débrouillé pendant mon absence... Attention j'avais mis un type de donnée "integer" qui risque de poser problème avec des décimale ou des nombre supérieures à 32767..
 

Pierrot93

XLDnaute Barbatruc
Re : Selection Change

Re,

pour le fun, à priori une version qui autorise la sélection multiple de cellules adjacentes ou pas, et qui affichera le label sur la dernière cellule sélectionnée...

Code:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim x As Double, c As Range
For Each c In Target
    If IsNumeric(c) Then x = x + c.Value
Next c
With Target.Areas(Target.Areas.Count).Item(Target.Areas(Target.Areas.Count).Count)
    Label1.Caption = x
    Label1.Left = .Offset(0, 1).Left
    Label1.Top = .Offset(1, 0).Top
End With
End Sub

bonne soirée
@+
 

Ubot303

XLDnaute Occasionnel
Re : Selection Change

Merci pour cette ultime version :)
Pour contourner le problème de l'Integer, je n'ai pas déclaré de variable du tout...
Il n'y a pas tout un fouillis de variables et de macros sur ce classeur donc bon :D
 

Discussions similaires

Réponses
6
Affichages
375
Réponses
5
Affichages
250
Réponses
1
Affichages
214
Réponses
3
Affichages
312

Statistiques des forums

Discussions
312 490
Messages
2 088 879
Membres
103 981
dernier inscrit
vinsalcatraz