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?
Configuration: Windows XP
Internet Explorer 7.0
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