Lancer une macro automatiquement

the_cube Messages postés 12 Statut Membre -  
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité -
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
A voir également:

2 réponses

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

call EnregRapport() ?


@+
0
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
JvDo Messages postés 2012 Statut Membre 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
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
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