Macro événementielle

Patate poil Messages postés 2 Statut Membre -  
Ankhsuamon Messages postés 50 Statut Membre -
Bonjour,

Je recherche le moyen de faire un enregistrement de fichier Excel sur un événement i.e. si l'utilisateur clique sur "enter" ou d'autres touches du genre sur le clavier...

Quelqu'un peut m'aider?
A voir également:

2 réponses

Ankhsuamon Messages postés 50 Statut Membre 2
 
Hello,

Il faudrait etre plus explicite. A partir d'Excel, dans une autre application. Ton fichier Excel est ouvert ou pas...

Exemple de synthaxe a partir d'une application VB (penses a declarer ta reference Excel):

Dim oXLS As Excel.Application

...

oXLS.ActiveWorkbook.SaveAs Filename:="C:\ ...\fichier.xls", FileFormat:=xlNormal, Password:="", _
WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False

0
Patate poil Messages postés 2 Statut Membre
 
Le fichier est déjà ouvert et a déjà été enregistré sous un nom standardisé. Tout ce que j'essaie de faire est que lorsque l'utilisateur entre des données et qu'il appuie sur "enter", le fichier s'enregistre automatiquement...
0
Ankhsuamon Messages postés 50 Statut Membre 2
 
Pour sauvegarder un fichier excel la syntaxe est ActiveWorkbook.save

Sur Excel, il n'existe pas d'evenement KeyDown ou KeyPress, donc il te faut jouer avec les API de maniere a trapper ta validation par Enter.
Amuses toi avec l'exemple ci-dessous, qui peut repondre partiellement a ton probleme :
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Public Const VK_RETURN = &HD

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If CheckClavier = True Then MsgBox "OK"
End Sub

Function CheckClavier() As Boolean
If GetKeyState(VK_RETURN) = 0 Then
CheckClavier = True
Else
CheckClavier = False
End If
End Function

PB, la derniere touche reste en memoire...
0