Lancer une macro après un "Enter" dans une cellule précise

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

lionelserra

XLDnaute Nouveau
Bonjour,

J'aimerai lancer une macro précise après avoir taper "Enter" sur le clavier, d'une cellule précise (D3 nommée "Ref.").

J'ai la macro

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("Ref.")) Is Nothing Then
ImportImages_Master
End If
End Sub
Next
End Sub

Normalement en tapant "Enter" de la cellule "Ref." (dans ce cas D3), il devrait se lancer la macro "ImportImages_Master" (ci dessous)

Sub ImportImages_Master()
Application.ScreenUpdating = False
répertoirePhoto = "C:\Users\lserra\Pictures\_StockSur\"
For Each C In [H14]
nf = répertoirePhoto & C & ".jpg"
On Error Resume Next
If Dir(nf) <> "" Then
Set img = ActiveSheet.Pictures.Insert(nf)
img.Left = C.Offset(, 1).Left + 46
img.Top = C.Offset(, 1).Top + 5
On Error GoTo 0
End If

J'ai essayé de renommée "ImportImages_Master" para "Sub ImportImages_Master()" mais ca ne marche pas non plus.

Que dois-je changer dans ma première macro pour qu'a taper "Enter" danss la cellule Ref. (D3), s'exécute la macro Sub ImportImages_Master() ??

Merci bcp.

Ciao
Lio
 
Bonsoir a adapter
placé ce qui suit dans un module standard :
Code:
Sub NumericEnter()
    Application.OnKey "{ENTER}", " ImportImages"
End Sub

Sub ClearEnter()
    Application.OnKey "{ENTER}"
End Sub
Sub ImportImages()
    MsgBox "Ok"'Ici votre code à la place
End Sub
placé ce qui suit dans la zone de code de Sheet1
Code:
Private Sub Worksheet_Activate()
    Call NumericEnter
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Selection.Count = 1 Then
        If Not Intersect(Target, Range("D3")) Is Nothing Then
            Call ImportImages"
        End If
    End If
End Sub
Private Sub Worksheet_Deactivate()
    Call ClearEnter
End Sub
placé les éléments suivants dans la zone de code du classeur :
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Call ClearEnter
End Sub
Private Sub Workbook_Open()
    Sheets("Sheet1").Activate
End Sub
Le but de la Workbook_Open()macro est d’assurer que nous commencions avec Sheet1 actif et la ENTER touche "spéciale" active.
Voilà dans l'esprit
a++
 
Bonsoir a adapter
placé ce qui suit dans un module standard :
Code:
Sub NumericEnter()
    Application.OnKey "{ENTER}", " ImportImages"
End Sub

Sub ClearEnter()
    Application.OnKey "{ENTER}"
End Sub
Sub ImportImages()
    MsgBox "Ok"'Ici votre code à la place
End Sub
placé ce qui suit dans la zone de code de Sheet1
Code:
Private Sub Worksheet_Activate()
    Call NumericEnter
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Selection.Count = 1 Then
        If Not Intersect(Target, Range("D3")) Is Nothing Then
            Call ImportImages"
        End If
    End If
End Sub
Private Sub Worksheet_Deactivate()
    Call ClearEnter
End Sub
placé les éléments suivants dans la zone de code du classeur :
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Call ClearEnter
End Sub
Private Sub Workbook_Open()
    Sheets("Sheet1").Activate
End Sub
Le but de la Workbook_Open()macro est d’assurer que nous commencions avec Sheet1 actif et la ENTER touche "spéciale" active.
Voilà dans l'esprit
a++


Super !!! Merci bcp.
A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
619
Retour