Excel Downloads
Forum

Précédent   Excel Downloads Forums > Excel > Forum Excel


Réponse
 
LinkBack Outils de la discussion
Vieux 25/02/2005, 13h50   #1 (permalink)
Crany
Guest
 
Messages: n/a
Par défaut Gestion d'évènement

Bonjour,

Ne connaissant pas les macro excel, je me suis documenté sur la question mais il reste cependant encore une chose que je ne parviens pas à trouver:

Comment puis-je faire pour mettre en place une gestion d'évènement sur une cellule en particulier? Si c'est possible, quel est le nom de l'évènement changement de valeur de cellule?

Pour clarifier, je souhaite avoir une colone comprenant des cellules qui reagissent au changement de valeur en exécutant le code d'une fonction de mon choix.

Voila, merci de votre aide et dites moi si je n'ai pas été assez clair
  Réponse avec citation
ANNONCES
Vieux 25/02/2005, 13h59   #2 (permalink)
XLDnaute Occasionel
 
Date d'inscription: février 2005
Messages: 158
Par défaut Re:Gestion d'évènement

Bonjour,

L'évènement 'Change' de la feuille ('Worksheet') devrait convenir.
C'est à dire dès que tu changeras de cellule le code situé dans cet évènement sera appliqué

Bon courage
Léa
Léa est déconnecté   Réponse avec citation
Vieux 25/02/2005, 14h10   #3 (permalink)
Crany
Guest
 
Messages: n/a
Par défaut Re:Gestion d'évènement

C'est bon c'était bien ca le nom de l'évènement, pour le reste, je devrais pouvoir gérer B)

Merci bien !
  Réponse avec citation
Vieux 25/02/2005, 14h21   #4 (permalink)
XLDnaute Accro
 
Avatar de CBernardT
 
Date d'inscription: février 2005
Messages: 1 159
Par défaut Re:Gestion d'évènement

Bonjour Crany et Léa


Macro à placer dans le module de la feuille.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Columns('B:B')) Is Nothing Then

'Code d'une fonction de ton choix

End If
End Sub

Dans cet exemple, le code de ton choix sera activé quand la valeur d'une cellule de la colonne B changera de valeur ou sera simplement activée.

Cordialement

CBernardT
CBernardT est déconnecté   Réponse avec citation
Vieux 25/02/2005, 14h33   #5 (permalink)
Crany
Guest
 
Messages: n/a
Par défaut Re:Gestion d'évènement

Merci beaucoup mais au moment où je te lis j'ai deja fini mon truc en fait :silly:
En tout cas, merci pour m'avoir donné toute la solution, c'set sympa de ta part
  Réponse avec citation
Vieux 25/02/2005, 14h38   #6 (permalink)
XLDnaute Occasionel
 
Date d'inscription: février 2005
Messages: 242
Par défaut Re:Gestion d'évènement

bonjour,
un peu de confusion ?
Worksheet_SelectionChange gère les changements de sélection
Worksheet_Change gère les changements de value...
A+
galopin01 est déconnecté   Réponse avec citation
Vieux 25/02/2005, 14h45   #7 (permalink)
XLDnaute Barbatruc
 
Date d'inscription: février 2005
Messages: 3 099
Par défaut Re:Gestion d'évènement (Topo Intersect Méthodes)

Bonjour Léa, Crany, Bernard, le Forum

J'avais fait un long Fil dans le vieux XLD avec différentes méthodes d'Intersect, mais vu que cette question est récurrente, je pense utile de remettre ces infos/didactitielles ici (in Color !) :

Type d'évènements gérés en 'automatiques'

=> Worksheet_SelectionChange
=> Worksheet_BeforeDoubleClick
=> Worksheet_BeforeRightClick (etc..etc)


Ensuite, pour attribuer une action précise en fonction d'une cellule ou d'une plage de cellules (et non toute la feuille) il faut utiliser la Méthode Intersect comme ceci :


Exemple 1) on veut une action quand on Click sur la Cellule 'A1' uniquement :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range('A1')) Is Nothing Then
MsgBox 'Click on ' & Target.Address
End If
End Sub


Exemple 2) on veut une action quand on Click n'importe où dans la colonne 'A' uniquement :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range('A:A')) Is Nothing Then
MsgBox 'Click on ' & Target.Address
End If
End Sub


Exemple 3) on veut une action quand on Click n'importe où dans les colonne 'A' à 'E' uniquement :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range('A:E')) Is Nothing Then
MsgBox 'Click on ' & Target.Address
End If
End Sub


Exemple 4) on veut une action quand on Click n'importe où dans la Plage de 'A1 à A10' uniquement :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range('A1:A10')) Is Nothing Then
MsgBox 'Click on ' & Target.Address
End If
End Sub


Exemple 5) on veut une action quand on Click n'importe où dans plusieurs plages non-adjacentes :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range('A1:A12, D410, D20, D22, D55, E1:E12')) Is Nothing Then
MsgBox 'Click on ' & Target.Address
End If
End Sub


Exemple 6) on veut une action quand on Click n'importe où dans plusieurs colonnes non-contigues :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range('A:A, C:C, E:E')) Is Nothing Then
MsgBox 'Click on ' & Target.Address
End If
End Sub


Exemple 7) on veut une action quand on Click n'importe où dans la ligne 1:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Rows(1)) Is Nothing Then
MsgBox 'Click on ' & Target.Address
End If
End Sub


Exemple 8) on veut une action quand on Click n'importe où dans entre les lignes 1 et 3:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range(Rows(1), Rows(3))) Is Nothing Then
MsgBox 'Click on ' & Target.Address
End If
End Sub


Exemple 9) on veut une action quand on Click n'importe où dans dans les lignes 1 ou 3 uniquement (pas la 2) :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range(Rows(1), Rows(3))) Is Nothing Then
If Application.Intersect(Target, Rows(2)) Is Nothing Then
MsgBox 'Click on ' & Target.Address
End If
End If
End Sub


Exemple 9Bis) Variante plus simple on veut une action quand on Click n'importe où dans dans les lignes 1 ou 3 uniquement (pas la 2) :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range('A1:IV1, A3:IV3')) Is Nothing Then
MsgBox 'Click on ' & Target.Address
End If
End Sub

On peut encore en trouver d'autres, mais je pense que celles ci sont les plus significatives...

Bon Après Midi
@+Thierry

Message édité par: _Thierry, à: 25/02/2005 14:52
_Thierry est déconnecté   Réponse avec citation
Vieux 25/02/2005, 14h48   #8 (permalink)
XLDnaute Occasionel
 
Date d'inscription: février 2005
Messages: 158
Par défaut Re:Gestion d'évènement (Topo Intersect Méthodes)

Merci Thierry,

Bonne initiative, cela me permet de me rafraîchir un peu la mémoire

Amitiés
Léa
Léa est déconnecté   Réponse avec citation
ANNONCES
Réponse

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +2. Il est actuellement 01h38.


(C) 2006 Excel Downloads