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

2 réponses

  1. 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
    1. 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
  2. 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