Lancer une macro en un clic ou autre

Bonjour tout le monde,

Ca fai un petit moment que je cherche mai je n'y arrive pas, je suis débutant dans le domaine de la programmation vba.donc je demande un peu d'aide.

j'ai crée une macro très simple qui est la suivante:

Sub copier()

Dim myval As String, myval1 As String, adr As String

myval = ActiveCell.Value 'je stock la valeur de la cellule sélectionnée dans myval

adr = ActiveCell.Address 'je stock l'adresse de la cellule sélectionnée dans adr

Worksheets("Exploitation").Range("C9").Value = myval 'je sélectionne la feuille exploitation,

'on se positionne a la cellule C9 et on stock myval dans C9

myval1 = Range(adr).Offset(0, 1).Value 'je me positionne à la cellule sélectionnée et

'je me déplace d'un pas vers la droite et je stock cette valeur dans myval1

Worksheets("Exploitation").Range("C11").Value = myval1 'je sélectionne la feuille exploitation,

'on se positionne a la cellule C11 et on stock myval1 dans C11

End Sub

cette macro fonctionne très bien, mais j'aimerai si possible la lancer en cliquant directement sur la cellule voulu.

je suis preneur de toute information.

merci d'avance.

Bonjour,

Tu peux faire exécuter ta macro en cas de double clic dans une cellule, en la plaçant dans un Worksheet et BeforeDoubleClick.

Tu peux faire aussi exécuter au changement de sélection, mais ça risque d'être un peu intempestif... A moins que tu ne limite la plage de cellules qui provoquent le changement. Par exemple n'éxécuter la macro que si la cellule sélectionnée est en colonne A...

Pour cela ta macro serait en Worksheet et SelectionChange, mais il faudrait modifier un peu le début du code.

Re,

Regarde le fichier ci-joint :

Tu as une macro en Feuil1, intitulée Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Elle se lancera donc à chaque nouvelle sélection de cellule de la Feuil1

la condition :

If Target.Count = 1 And Target.Row > 1 And Target.Column = 1 Then
...
...
End If

limite le lancement de la macro pour la sélection d'une seule cellule, colonne A, ligne >1 ; Donc un prénom dans mon exemple

Tu as une macro en Feuil2, intitulée Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Elle se lancera donc à chaque double clic dans une cellule, si celle ci fait partie de la colonne A de la Feuil2 (donc avec celle ci tu peux faire apparaître la ligne de titres en feuille Exploitation)

Si tu veux une macro qui se lance pour chaque sélection de cellule, quelle que soit la feuille du classeur, alors choisis ThisWorkbook, et les fenêtres Workbook et SheetSelectionChange.

Tu auras automatiquement ce code qui va apparaître :

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

End Sub

Il ne te reste plus qu'à y insérer tes instructions.

Moha44 1

je te remercie beaucoup,tu m'enlève une épine du pied!

j'espère te rendre l'appareil.

en tout cas un grand merci

Pour répondre, ne passe pas par le bouton "mp", mais par "Répondre"...

Comme ça tout le monde en profite, et sait si ton problème a été résolu.

Puisque c'est apparemment le cas, tu peux aussi éditer ton premier message (bouton "éditer", en haut à droite du message), et dans la petite liste déroulante (en bas à gauche si je me souviens bien...), tu choisis "résolu".

A ton service pour d'autres questions

Rechercher des sujets similaires à "lancer macro clic"