activer une macro par un click sur une cellule?

J

jojo

Guest
bonjour à tous,

en fait dans ma base de donnée j'aimerai affecté à un click sur une cellule la macro voir fiche (via un formulaire).


comment puis je faire?

merci à tous
 
J

jojo

Guest
merci de répondre

je ne veux pas mettre de bouton car j'ai plus de 5000 lignes.je ne veux pas mettre 5000 bouton pour déclencher une macro propre à la ligne.

comment faire ceci?

click sur cellule---> la macro 'lire(ligne actuelle)' s'active.

merci
 

ziopizza

XLDnaute Occasionnel
Bonjour Kayser et le Forum,

Colle ce code dans l'événement de ta feuille,
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

Dim Isect As Range
Dim macel As Range
'choix de la cellule
Set macel = Range('a1')'choix de ta cellule
If Not Application.Intersect(macel, Range(Target.Address)) Is Nothing Then
Target.Value = UCase(Target.Value)
macro1' ta macro
End If
Cancel = True
End Sub
Yves
 
D

Danix

Guest
Slts JOJO,
Tu peux utiliser l'évenement Double-clic sur la feuille de calcul en testant par exemple la colonne ou la ligne pour que celle-ci soit dans la plage de données.
Attention, il y a aussi une option au niveau de l'évenement classeur Load & Beforeclose(modification directe dans la cellule, qui pose un problème quand elle est cochée surtout si la feuille de calcul est protégée)
voir fichier ci-joint

J'espère que cele te sera utile
 
D

Danix

Guest
Slts JOJO,
Tu peux utiliser l'évenement Double-clic sur la feuille de calcul en testant par exemple la colonne ou la ligne pour que celle-ci soit dans la plage de données.
Attention, il y a aussi une option au niveau de l'évenement classeur Load & Beforeclose(modification directe dans la cellule, qui pose un problème quand elle est cochée surtout si la feuille de calcul est protégée)
voir fichier ci-joint

J'espère que cele te sera utile
 
J

jojo

Guest
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

Dim Isect As Range
Dim macel As Range
'choix de la cellule
Set macel = Range('a1')'choix de ta cellule
If Not Application.Intersect(macel, Range(Target.Address)) Is Nothing Then
Target.Value = UCase(Target.Value)
macro1' ta macro
End If
Cancel = True
End Sub


cela marche mais seulement pour a1. comment faire pour unecolonne entière et reperer le numero de ligne.

exemple si je clique sur la cellule a58
ligne-actuelle=58

ma macro: macro(58)

etc....


merci à vous.
 

ziopizza

XLDnaute Occasionnel
Re salut jojo,
Ci-joint un exemple,

Yves [file name=Classeur1_20060217142512.zip size=8156]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur1_20060217142512.zip[/file]

Message édité par: ziopizza, à: 17/02/2006 14:29
 

Pièces jointes

  • Classeur1_20060217142512.zip
    8 KB · Affichages: 516

Discussions similaires

Statistiques des forums

Discussions
312 474
Messages
2 088 723
Membres
103 935
dernier inscrit
GGV