Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

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
 

roro69

XLDnaute Impliqué
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++
 

lionelserra

XLDnaute Nouveau


Super !!! Merci bcp.
A+
 

Discussions similaires

Réponses
7
Affichages
528
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…