Comment sortir proprement de ma macro sans plantage

corvelc

XLDnaute Occasionnel
Bonjour,

Depuis trois jours , J’essaye de mettre en place au travers de macros, une gestion des modifications faites dans un classeur.

L’utilisateur a deux choix affichés par Msgbox à partir du ThisWorkbook :

- Soit sauvegarder son fichier Là où il veut mais l’informant qu'il n'y pas de prise en compte des administrateurs. (Ok cette partie fonctionne)
- Soit pour une prise en compte par des administrateurs, sauvegarder le fichier modifié vers un répertoire spécifique sous un nom précis avec la fermeture du classeur une fois celui ci sauvegardé.

Pour cette dernière partie , après avoir testé avec divers ordres VBA, je n’arrive toujours pas à sortir proprement de la macro, la sauvegarde ce fait bien avec le bon nom dans le bon répertoire , mais j’ai un message de debug Excel à la sortie de la macro.
Message debbug :
AppName: excel.exe AppVer: 9.0.0.8961 ModName: mso9.dll
ModVer: 9.0.0.8961 Offset: 00071ef5


J'utilise certainement pas la bonne séquence ou les bons ordres VBA, Qui peut m’aider à définir les bons ordres VBA à mettre dans ma macro «Mac_depose_Oui» pour sortir proprement après avoir sauvegardé le fichier ?

Ci joint mon fichier de test

Merci d'avance pour l'aide apportée
CC
 
C

Compte Supprimé 979

Guest
Re : Comment sortir proprement de ma macro sans plantage

Bonjour corvelc,

Tu n'arrête pas les évènements avant la sauvegarde dans "Mac_depose_oui" donc Excel tourne en boucle

Essaye avec
VB:
Sub Mac_depose_OUI()
  Dim DossierDest As String, NomFic As String
  DossierDest = "T:\AGF\OUTIL_CORAPI\Gestion_du_CORAPI\1_Fiche_CORAPI_modifiées\"
  NomFic = Mid(ThisWorkbook.Name, 1, (Len(ThisWorkbook.Name) - 4)) & "_" & Format(Date, "ddmmyy") & "_" & Format(Time, ("HHMMSS")) & ".xls"
  ' Empècher les évènements et les messages d'alerte avant la sauvegarde
  Application.DisplayAlerts = False
  Application.EnableEvents = False
  ' Sauvegarder le fichier
  ThisWorkbook.SaveAs Filename:=DossierDest & NomFic
  Title = "Information sur la Gestion des fiches CORAPI"
  Style = vbInformation
  Msg = " ===============================================================================" & vbCr & vbCr _
      & " FICHE DEPOSEE DANS LE REPERTOIRE CORAPI : " & DossierDest & vbCr _
      & "             " & vbCr _
      & " SOUS LE NOM : " & NomFic & vbCr _
      & "             " & vbCr _
      & "                             LA FICHE SERA PRISE EN COMPTE PAR L'EQUIPE CORAPI" & vbCr & vbCr _
      & " ==============================================================================="
  Response = MsgBox(Msg, Style, Title)
  ' Réactiver les évènements et les messages d'alerte après la sauvegarde
  Application.EnableEvents = True
  Application.DisplayAlerts = True
End Sub
La fermeture du fichier se fait à la fin de la procédure "Workbook_BeforeSave"
Code:
  ' On ferme le classeur
  ThisWorkbook.Close
End Sub

A+
 

corvelc

XLDnaute Occasionnel
Re : Comment sortir proprement de ma macro sans plantage

Bonjour et merci pour l'aide

suite à tes conseils, ma procédure fonctionne déja meux ,(plus de double affichage des popup) reste qu'à la fermeture du classeur , j'ai toujours le message de debogage que je ne peut pas ouvrir pour savoir sur quel ordre puisque le fichier est fermé.
poutant le fichier est bien sauvegardé et au bon endroit.
Pour solutionner , ne peut-on pas simplement annuler l'affichage de cette fenetre de debogage ?? , si OUI , comment faire ou quelle autre solution?
CC
 

corvelc

XLDnaute Occasionnel
Re : Comment sortir proprement de ma macro sans plantage (résolu)

la difficulté était que le popup de debogue arrivait une fois le fichier fermé, d'ou impossibilité de savoir sur quelle ligne du code, mais donc forcement aprés le close du fichier et là il n'y avait plus que "exit sub".

Ce que je n'avait pas précisé c'est que mon répertoire cible était sur un disque réseau et après recherches et nb tests , le problème était simplement indépendant des macros mais juste lié à un probléme d'espace disque au moment de la sauvegarde du fichier dans le répertoire cible sur disque réseau.
Problème solutionné avec ajout d'espace disque pour le répertoire cible.
Encore merci pour ton aide, maintenant tout fonctionne OK

A+ sur le forum

NB: Joint le fichier opérationnel corrigé pour le cas ou d'autres seraient intéressés
CC
 
Dernière édition:

Statistiques des forums

Discussions
312 323
Messages
2 087 297
Membres
103 512
dernier inscrit
sisi235