Alerte si macro déjà exécutée dans la journée

  • Initiateur de la discussion Initiateur de la discussion CAP
  • Date de début Date de début

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 !

CAP

XLDnaute Occasionnel
Bonjour le forum,

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.

Quelqu'un peut-il m'aider ?

Merci par avance et bonne journée!

CAP
 
bonjour


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

Cible = ThisWorkbook.BuiltinDocumentProperties('Comments').Value

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





bon apres midi
MichelXld

Message édité par: michelxld, à: 08/12/2005 15:19
 
Bonjour,

Voici une petite modification au code donné parMichelXld

Sub controleUtilisationMacro()
Dim Cible As String
Dim Reponse As Integer

Cible = ThisWorkbook.BuiltinDocumentProperties('Comments').Value

If Cible = Format(Date, 'dd/mm/yyyy') 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
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 !!

Bien à vous.

John
 
Bonjour CAP, bonjour à toutes et à tous 🙂

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

  ' ...
  ' Ton code
  ' ...


End Sub

A+
Charly

Edition : Oups ! Bonjour Michel et John, je ne vous avais pas vus 🙂

Message édité par: Charly2, à: 08/12/2005 15:45
 
- 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

Discussions similaires

Retour