Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
J'aimerais qu'un message d'alerte soit donné à l'exécution d'une macro si elle a déjà été exécutée dans la journée.
Selon qu'on confirme ou non, la macro est à nouveau exécutée ou non.
cet exemple permet d'enregistrer la date du jour dans le champ 'commentaire' (Comments) des propriétés du classeur lors de lancement de la macro
si tu relances la procedure et que la date du jour n'a pas changé , une boite de dialgue demande la confirmation pour continuer
bien sur il ne s'agit que d'un exemple et tu peux aussi enregistrer le date directement dans une cellule du classeur
Sub controleUtilisationMacro()
Dim Cible As String
Dim Reponse As Integer
If Cible = Date Then _
Reponse = MsgBox('deja éxécuté aujourd'hui' & vbLf & _
'Voulez vous continuer ?', vbYesNo)
If Reponse = vbNo Then Exit Sub
ThisWorkbook.BuiltinDocumentProperties('Comments').Value = Format(Date, 'dd/mm/yyyy')
'ThisWorkbook.Save 'sauvegarder la date de lancement de la procedure
'
'
'...la suite de la procedure...
'
End Sub
ThisWorkbook.BuiltinDocumentProperties('Comments').Value = Format(Date, 'dd/mm/yyyy')
'ThisWorkbook.Save 'sauvegarder la date de lancement de la procedure
'
'
'...la suite de la procedure...
'
End Sub
car tout dépend du format de la date, mais moi pour la date j'ai le 8/12/2005 et dans mes commentaires j'ai 08/12/2005 donc différent de la date !!
Voici un exemple de code que tu peux utiliser (en passant par un nom) :
Sub MacroAExecuter() ' Dim DejaExecutee As Boolean ' For i = 1 To ActiveWorkbook.Names.Count With ActiveWorkbook.Names(i) If .Name = 'Exec' Then If DateValue([Exec]) = DateValue(Now) Then
DejaExecutee = True End If End If End With Next If Not DejaExecutee Then
ActiveWorkbook.Names.Add Name:='Exec', RefersToR1C1:='=''' & DateValue(Now) & '''' Else
reponse = MsgBox('Macro déjà exécutée ce jour.' & vbNewLine & _
'Voulez-vous l'exécuter à nouveau ?', vbYesNo) If reponse = vbNo Then Exit Sub End If
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD