Microsoft 365 Macro pour signaler alerte de non répétition

Excellerateur

XLDnaute Occasionnel
Chers membres salouté !



J'ai fait une certaine macro qui ne doit être exécutée qu'une seule fois par jour. J'ai besoin de faire en sorte que si une tierce personne qui, par erreur par exemple, essaye de la ré-exécuter, qu'un message d'alerte apparaisse et dise : "cette macro a déjà été exécuté en (la date du jour), tenez-vous à la lancer une seconde fois?".
avec deux boutons qui disent "oui" ou "non". Bien entendu le "oui" relance l'exécution de la macro et le "non" ferme la fenêtre de discussion.



Espérant m'être fait comprendre convenablement.



Excellemment votre!



@Excellerateur
 

chagatte

XLDnaute Nouveau
C'est mon côté fainéant ;)

J'aurais fait un truc du genre, il faudra simplement remplacer Sheets("Feuil1").Range("A1").Value par la vraie référence choisie :

VB:
Sub alert()

    v_date_derniere_exe = Sheets("Feuil1").Range("A1").Value
    
    If Format(Now, "dd/mm/yyyy") = Format(v_date_derniere_exe, "dd/mm/yyyy") Then
    
            If MsgBox("La macro a déjà été executée ce jour, souhaitez-vous la relancer ?", vbYesNo + vbalert) = vbYes Then
                Call Inventaire_jour_a_inventaire_veille
                Sheets("Feuil1").Range("A1").Value = Now()
            Else
            
                Exit Sub
                
            End If
    
        Else
        
        Call Inventaire_jour_a_inventaire_veille
        Sheets("Feuil1").Range("A1").Value = Now()
        
    End If
    


End Sub
 

Etoto

XLDnaute Barbatruc
C'est mon côté fainéant ;)

J'aurais fait un truc du genre, il faudra simplement remplacer Sheets("Feuil1").Range("A1").Value par la vraie référence choisie :

VB:
Sub alert()

    v_date_derniere_exe = Sheets("Feuil1").Range("A1").Value
   
    If Format(Now, "dd/mm/yyyy") = Format(v_date_derniere_exe, "dd/mm/yyyy") Then
   
            If MsgBox("La macro a déjà été executée ce jour, souhaitez-vous la relancer ?", vbYesNo + vbalert) = vbYes Then
                Call Inventaire_jour_a_inventaire_veille
                Sheets("Feuil1").Range("A1").Value = Now()
            Else
           
                Exit Sub
               
            End If
   
        Else
       
        Call Inventaire_jour_a_inventaire_veille
        Sheets("Feuil1").Range("A1").Value = Now()
       
    End If
   


End Sub
Re,

Félicitation et merci à vous deux. 👍 :)
 
re,
pour le coté fainéant ! 😉
Bien cordialement, @+
VB:
Sub Alert_Exe()
    Dim Date_Ref As Range
    Set Date_Ref = Sheets("Feuil1").Range("A1")
    If DateValue(Now) = Date_Ref.Value Then
        If MsgBox("La macro a déjà été executée ce jour, souhaitez-vous la relancer ?", vbYesNo + vbQuestion) = vbYes Then Inventaire_jour_a_inventaire_veille
        Exit Sub
    Else
        Inventaire_jour_a_inventaire_veille
        Date_Ref.Value = DateValue(Now)
    End If
End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
315 134
Messages
2 116 614
Membres
112 812
dernier inscrit
jocelyne86360