Executer une macro à partir d'un clic ds une cellule.
glebeau
Messages postés6Date d'inscriptionmercredi 15 juin 2005StatutMembreDernière intervention28 juin 2005
-
15 juin 2005 à 13:01
glebeau
Messages postés6Date d'inscriptionmercredi 15 juin 2005StatutMembreDernière intervention28 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.
A voir également:
Executer une macro à partir d'un clic ds une cellule.
valtrase
Messages postés937Date d'inscriptionlundi 19 janvier 2004StatutMembreDernière intervention 9 mai 20223 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
glebeau
Messages postés6Date d'inscriptionmercredi 15 juin 2005StatutMembreDernière intervention28 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.
glebeau
Messages postés6Date d'inscriptionmercredi 15 juin 2005StatutMembreDernière intervention28 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.
glebeau
Messages postés6Date d'inscriptionmercredi 15 juin 2005StatutMembreDernière intervention28 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.
erti1711
Messages postés75Date d'inscriptionsamedi 2 avril 2005StatutMembreDernière intervention16 juin 20061 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.
++
cs_ifix
Messages postés13Date d'inscriptionsamedi 16 octobre 2004StatutMembreDernière intervention29 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 )
@+