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 Iflimite 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 SubIl ne te reste plus qu'à y insérer tes instructions.

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