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

Signaler
Messages postés
6
Date d'inscription
mercredi 15 juin 2005
Statut
Membre
Dernière intervention
28 juin 2005
-
glebeau
Messages postés
6
Date d'inscription
mercredi 15 juin 2005
Statut
Membre
Dernière intervention
28 juin 2005
-
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

Messages postés
7
Date d'inscription
lundi 9 septembre 2002
Statut
Membre
Dernière intervention
15 juin 2005

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 !!!??
Messages postés
75
Date d'inscription
samedi 2 avril 2005
Statut
Membre
Dernière intervention
16 juin 2006
1
salut,
tu veux faire quoi précisément?Peut etre que j'aurai une solution a te proposer selon ce que tu veu faire.
Messages postés
13
Date d'inscription
samedi 16 octobre 2004
Statut
Membre
Dernière intervention
29 septembre 2005

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
Messages postés
936
Date d'inscription
lundi 19 janvier 2004
Statut
Membre
Dernière intervention
17 mars 2017
4
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é
Messages postés
936
Date d'inscription
lundi 19 janvier 2004
Statut
Membre
Dernière intervention
17 mars 2017
4
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é
Messages postés
6
Date d'inscription
mercredi 15 juin 2005
Statut
Membre
Dernière intervention
28 juin 2005

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.
Messages postés
6
Date d'inscription
mercredi 15 juin 2005
Statut
Membre
Dernière intervention
28 juin 2005

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.
Messages postés
6
Date d'inscription
mercredi 15 juin 2005
Statut
Membre
Dernière intervention
28 juin 2005

Pour erti117
Greg.
Messages postés
6
Date d'inscription
mercredi 15 juin 2005
Statut
Membre
Dernière intervention
28 juin 2005

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.
Messages postés
75
Date d'inscription
samedi 2 avril 2005
Statut
Membre
Dernière intervention
16 juin 2006
1
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.
++
Messages postés
75
Date d'inscription
samedi 2 avril 2005
Statut
Membre
Dernière intervention
16 juin 2006
1
Au fait,quand tu veux ajouter,il faut toujours sélectionner un nom puis après tu clik sur le bouton ds la barre.
++
Messages postés
13
Date d'inscription
samedi 16 octobre 2004
Statut
Membre
Dernière intervention
29 septembre 2005

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 )
@+
Messages postés
6
Date d'inscription
mercredi 15 juin 2005
Statut
Membre
Dernière intervention
28 juin 2005

Merci pour ttes vos solution, ça marche!

Greg.