Plus de boite de dialogue lors d'enregistrement vba

matthieu2701

XLDnaute Occasionnel
Bonjour,

J'ai créé une macro qui s'appelle Enregistrer_Classeur. Cette macro permet d'enregistrer le fichier excel dans un dossier définit du réseau.

J'ai ajouté à chaque macro, la fonction Call Enregistrer_Classeur. Comme ca à chaque fois que l'on fais une action, le fichier s'enregistre.

J'aurais besoin de vous sur deux points :

- J'aimerais, aussi, qu'il s'enregistre à la fermeture du fichier.

- Comment éviter l'apparition de la boite de dialogue suivant : "Le fichier existe déjà, voulez vous le remplacer ?".

Merci de votre aide.
 

Pièces jointes

  • Calcul.xls
    457.5 KB · Affichages: 59
  • Calcul.xls
    457.5 KB · Affichages: 58
  • Calcul.xls
    457.5 KB · Affichages: 58
Dernière édition:

matthieu2701

XLDnaute Occasionnel
Re : Plus de boite de dialogue lors d'enregistrement vba

J'ai trouvé la solution

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)

Application.DisplayAlerts = False

With Sheets("Echéancier")
    Nom = .Range("B2")
    PCE = .Range("G6")
End With

'NNI des agents
'Marignane
Matthieu = "b90570"
Yacine = "J03455"
Sophie = "d41254"
Maxence = "J33056"
Remi = "f02756"
Camille = "c60772"
Cindy = "cm0d924n"
Sarah = "ss0c0can"
Priscilla = "d91472"
Zoe = "F90572"
Elodie = "d04673"
Virginie = "VR023B1N"
Daniel = "h86540"
Nathalie = "b22929"
Alexandre = "i62338"
Stephane = "a06745"
Florent = "C65470"

'Nimes
Fabienne = "f74844"
Claudia = "j88653"
Magali = "J37249"

'Recherche de l'utilisateur qui a ouvert la session
utilisateur = Environ("username")
Select Case utilisateur

Case Matthieu, Yacine, Sophie, Maxence, Remi, Camille, Cindy, Sarah, Priscilla, Zoe, Elodie, Virginie, Daniel, Nathalie, Alexandre, Stephane, Florent
    chemin = "Q:\AAGP2\PDD GAZ\PDD\Dossiers PDD\En cours" & "\" & Nom & " " & PCE
    fichier = "Q:\AAGP2\PDD GAZ\PDD\Dossiers PDD\En cours" & "\" & Nom & " " & PCE & "\" & Nom & " " & "Gaz-Perd.xlsm"
Case Fabienne, Claudia, Magali
   chemin = "Q:\AAG\DOSSIERS NUMERIQUES PDD" & "\" & Nom & " " & PCE
   fichier = "Q:\AAG\DOSSIERS NUMERIQUES PDD" & "\" & Nom & " " & PCE & "\" & Nom & " " & "Gaz-Perd.xlsm"

End Select

If Nom = "" Or PCE = "" Then
Exit Sub
End If

If Dir(chemin, vbDirectory) = "" Then
MsgBox "Le dossier numérique de " & Nom & " " & PCE & " n'a pas été créé. Veuillez le créer puis recommencer.", vbCritical, "Attention"
Exit Sub
End If

 If Dir(fichier, vbNormal) <> "" Then
      Reponse = MsgBox("Le classeur de " & Nom & " existe déjà." & vbLf & vbLf & _
                       "Confirmez-vous son remplacement ?", vbYesNoCancel, "Attention")
      If Reponse = vbNo Then
      Application.Quit
      Exit Sub
       End If
       If Reponse = vbCancel Then
       Cancel = True
       Else
       Sheets("Echéancier").Range("K4").Value = Format(Now, "dddd dd mmmm yyyy / h:mm")
       ActiveWorkbook.SaveAs Filename:=fichier, FileFormat:=xlOpenXMLWorkbookMacroEnabled, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
             Exit Sub
       End If
 End Sub

C'était le ThisWorkbook.Close Savechanges:=False qui générer la double confirmation.
 

Discussions similaires

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 814
dernier inscrit
JLGalley