Lancer une macro automatiquement

the_cube Messages postés 12 Statut Membre -  
lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Voila je voudrais savoir comment faire appelle a une macro.
Je vous explique mon probléme:
Je dois enregistrer à l'aide d'une macro un document excel sous la forme d'une date du type JJ MM YYYY
Pour cela j'ai écris le prog suivant :

Sub EnregRapport()

Dim D as String

D= Day(Now) & "_" & Month(Now) & "_" Year(Now)
ActiveWorkbook.SaveAs Filename:="U:\stagiaires\taittinger\rapport sur excel\Rapport\Rapport_" & D & ".xls"

End sub

Ensuite je suis allé dans le VBA de la feuille concerné et j'ai placé ce code pour permettre de lancer ma macro de sauvegarde à partir de l'événement d'une cellule:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = "3" And Target.Row = "2" Then '

If Range("C2").Value = 1 Then
MsgBox "Sub EnregRapport()" ' 'appel à la macro
End If
End If
End Sub

Mais malheureusement quand je met la valeur 1 dans ma cellule C2, il m'affiche Sub EnregRapport(), alors que moi je veux executer cette macro.

Merci de vos réponses

2 réponses

  1. Jo
     
    Bon... Je vais peut etre répondre une grosse connerie, car je débute, mais c'est pas plutot

    call EnregRapport() ?

    @+
    0
    1. the_cube Messages postés 12 Statut Membre 1
       
      que tu écrive Call enregrapport ou call enregrapport(), cela revient au même, puisque quand tu valide ta ligne, il te retire les parenthése.
      C'est tu la fonction qui permet de faire un double click
      0
    2. JvDo Messages postés 1924 Date d'inscription   Statut Membre Dernière intervention   859
       
      bonjour,

      d'après l'aide VBA :

      DoubleClick, méthode

      Cette méthode équivaut à double-cliquer sur la cellule active.

      expression.DoubleClick

      expression Obligatoire. Expression qui renvoie un objet Application.

      Exemple
      Cet exemple montre comment double-cliquer sur la cellule active de la feuille Sheet1.

      Worksheets("Sheet1").Activate
      Application.DoubleClick



      A+
      0
  2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    MsgBox "Sub EnregRapport()" ' 'appel à la macro

    Ici tu n'appelles rien. Tu affiches le message qui se trouve entre les guillemets (vour l'aide pour MsgBox)

    C'est plutôt
    If condition Then
         EnregRapport
         MsgBox "Rapport enregistré!" ' seulement pour avoir une confirmation
    End If
    0