Bonjour à tous,
Je suis nouveau sur le forum, je m'auto évaluerais à un niveau de débutant confirmé et bien que j'ai toujours su me débrouiller avec l'aide fournie à d'autre personnes. Il y a quelque chose qui m'échappe totalement.
Je suis en MOA dans une banque privée et on m'a demandé de faire une macro permettant de simuler un "générateur de notification" je m'explique :
Avec deux intervenants(A et B), si dans le tableau, A décide de remplir une nouvelle ligne et attend une confirmation de B, cependant B oublie. 2h plus tard un message interrompt l'utilisateur pour lui rappeler que la vérification par B n'a pas eu lieu.
Pour cela j'ai pensé de créer un système basé sur un classeur qui s'ouvre à la fermeture du fichier, puis ce nouveau classeur devient invisible pour grâce à un timer venir rapidement ouvrir le fichier puis lui afficher un message d'erreur si jamais la case n'a pas été cochée (la vérif)
Mon majeur problème est le suivant :
Ma boucle before close s'ouvre deux fois, j'obtient bien le classeur qui se camoufle avec le nom et le path du fichier à vérifier mais il y a deux exécution de la macro "before_close" malgré tous les forums que j'ai parcouru (Cancel = True ou Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If BeforeClose = True Then Cancel = True), j'utilise probablement mal ces formules mais je n'ai pas trouvé solution à ma problème actuellement.
Ensuite je me fie à votre experience et votre expertise pour evaluer la viabilité de mon projet. Si vous auriez des recommendation ou éventuellement des conseils de codage dans mon code n'hésitez pas à m'en faire part. Merci d'avance aux personnes qui m'accorderont de leur temps !!
Voici mon code !
Je vais continuer à chercher sur des forums la solution à mon problème
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim Nom_fichier As String Dim Path_fichier As String Dim Path_Source As String Dim Nom_Auto As String Dim Chemin As String MsgBox "lol" Nom_fichier = ThisWorkbook.Name Path_fichier = ThisWorkbook.Path Tempo_Dossier = Path_fichier & "\" & "Tempo" If Dir(Tempo_Dossier, vbSystem + vbDirectory + vbHidden) = "" Then MkDir Tempo_Dossier End If tempo_fichier = Tempo_Dossier & "\" & Nom_fichier Windows(Nom_fichier).Activate ActiveWorkbook.SaveCopyAs Filename:=tempo_fichier 'FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False Path_Source = "C:\Users\ut2da4\Desktop\Dossier Perso\MO Titres\Macro dateHeure\Dossier Test MacroAuto\AutoOpen.xlsm" Workbooks.Open Path_Source Nom_Auto = Dir(Path_Source) Nom_Auto = Left(Nom_Auto, InStrRev(Nom_Auto, ".") - 1) lol = InStrRev(Nom_Auto, ".") 'MsgBox lol 'MsgBox Nom_auto Workbooks(Nom_Auto).Activate Path_fichier = "C:\Users\ut2da4\Desktop\Dossier Perso\MO Titres\Macro dateHeure\Dossier Test MacroAuto\" & Nom_fichier 'MsgBox Path_fichier Range("A1").Value = "C:\Users\ut2da4\Desktop\Dossier Perso\MO Titres\Macro dateHeure\" & Nom_fichier
Partager