Executer une macro à partir d'un clic ds une cellule.

glebeau Messages postés 6 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 28 juin 2005 - 15 juin 2005 à 13:01
glebeau Messages postés 6 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 28 juin 2005 - 28 juin 2005 à 16:01
Bonjour,
je débute en VB sur Excel. J'ai un fichier avec une colonne de nom de personnes. lorsque je clic sur un nom je souhaiterais lancer ma macro en ayant en mémoire la cellule sur laquelle je viens de cliquer. Est-ce possible? Avec un lien hypertexte ou un autre procédé...
Jusqu'à maintenant le seul raccourci que j'ai trouvé pour lancer une macro est le ctrl+"_".
Merci par avance pour votre aide.
Greg.

13 réponses

laumasse Messages postés 7 Date d'inscription lundi 9 septembre 2002 Statut Membre Dernière intervention 15 juin 2005
15 juin 2005 à 13:35
Bonjour,

A ma connaissance, on ne peut pas gérer l'évenementiel dans excel.

Il faudrait pouvoir appeler une macro depuis une formule de calcul !!!??
0
erti1711 Messages postés 75 Date d'inscription samedi 2 avril 2005 Statut Membre Dernière intervention 16 juin 2006 1
15 juin 2005 à 14:27
salut,
tu veux faire quoi précisément?Peut etre que j'aurai une solution a te proposer selon ce que tu veu faire.
0
cs_ifix Messages postés 13 Date d'inscription samedi 16 octobre 2004 Statut Membre Dernière intervention 29 septembre 2005
15 juin 2005 à 22:17
Salut,
Mets ce code dans pour ta feuille de calcul, je viens de le tester et je pense que c'est ce que tu avais besoin.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox Target
End Sub
0
valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 3
16 juin 2005 à 01:42
Lut,
Vi ou plus général
Ici tu testes si la cellule sélectionnée est dans la colonne B si oui tu lance ta macro

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If Dedans(Range(ActiveCell.Address), [B:B]) Then Call MaMacro
End Sub
Le code qui suit est à mettre dans un module
Function Dedans(rng1 As Range, rng2 As Range) As Boolean
Dedans = Not (Intersect(rng1, rng2) Is Nothing)
End Function

Cordialement, Jean-Paul
______________________________________________________________________

Le Savoir n'a de valeur que s'il est partagé
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 3
16 juin 2005 à 01:45
Re,
oupss mieux vaut utiliser Target en lieu et place de ActiveCell ça tourne mais bon .....

Cordialement, Jean-Paul
______________________________________________________________________

Le Savoir n'a de valeur que s'il est partagé
0
glebeau Messages postés 6 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 28 juin 2005
16 juin 2005 à 21:50
Merci beaucoup à tous,
j'ai essayé la méthode de ifix qui marche bien, le seul souci est que ma macro s'execute à chaque clic. Y aurait-il une fonction qui se déclencherait au double-clic?
Greg.
0
glebeau Messages postés 6 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 28 juin 2005
16 juin 2005 à 21:53
Merci beaucoup à tous,
j'ai essayé la méthode de ifix qui marche bien, le seul souci est que ma macro s'execute à chaque clic. Y aurait-il une fonction qui se déclencherait au double-clic?
Greg.
0
glebeau Messages postés 6 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 28 juin 2005
16 juin 2005 à 21:57
Pour erti117
Greg.
0
glebeau Messages postés 6 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 28 juin 2005
16 juin 2005 à 22:09
Pardon, mon ordi bug et fais des trucs bizarre...
Pour erti1711: j'ai un tableau de noms, prénoms, date de naissance... en ligne. Lorsque je double-clic sur un nom j'aimerais voir s'afficher une form avec des champs remplis des infos de la ligne correspondante au nom. Là où je bloque, c'est pour appeler ma macro à l'évènement double-clic, en gardant en mémoire la cellule sur laquelle j'ai cliqué.
Greg.
0
erti1711 Messages postés 75 Date d'inscription samedi 2 avril 2005 Statut Membre Dernière intervention 16 juin 2006 1
17 juin 2005 à 10:38
Salut en faite tu veu automatiser un genre de copier coller:
Moi j'ai fait un ptit programme de ce genre.En faite j'ai créer un bouton dans la barre de menu a lakel je lui ai affecté une macro.
Disons que les noms st dans la colonne A,le prénoms en B,la date de naissance en C.

ligne = ActiveCell.Row 'numéro de la ligne sélectionnée
ActiveSheet.Select 'sélection de la page active
Range("A" & ligne).Select
varNom=Cells("A" & ligne)
varPren=Cells("B" & ligne)
varDateNaiss=Cells("C" & ligne)
Selection.Copy
Form.Show 'ouverture de la form
....tu affecte les var cidessus dans les champs ou tu veux que ca apparaissent dans ta form

Oubli pa de déclarer les var.
Et pour créer le bouton dans la barre de menu:
tu fais clique sur ajouter/suppr des boutons->onglet commandes tu choisis macros->tu verra un genre de smileys,tu le déplace ds la barre en haut->avant de fermer la fenetre tu fait clik droit sur le bouton->affecter une macro et apreè fermer.

J'espère que ca repond a tes attentes.
Tiens moi au courant.
++
0
erti1711 Messages postés 75 Date d'inscription samedi 2 avril 2005 Statut Membre Dernière intervention 16 juin 2006 1
17 juin 2005 à 10:41
Au fait,quand tu veux ajouter,il faut toujours sélectionner un nom puis après tu clik sur le bouton ds la barre.
++
0
cs_ifix Messages postés 13 Date d'inscription samedi 16 octobre 2004 Statut Membre Dernière intervention 29 septembre 2005
17 juin 2005 à 20:46
Salut
moi je propose que tu gardes l'evenement click mais que tu ne l'executes que dans tes cellules où il y a tes noms. Par exemple si tes noms sont dans la colonne A (column=1) :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 1 Then
MsgBox Target
End If
End Sub

Autrement il y a l'évenement BeforeDoubleClick que je viens d'essayer et qui ne m'a pas convaincu ( il faut bien cliquer au centre d'une cellule et pas sur les bordures et puis la cellule prend le focus )
@+
0
glebeau Messages postés 6 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 28 juin 2005
28 juin 2005 à 16:01
Merci pour ttes vos solution, ça marche!

Greg.
0
Rejoignez-nous