Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Afficher msgbox et inputbox seulement 1x à l'ouverture du modèle

supercopain

XLDnaute Junior
Bonjour,
J'ai créer une feuille modèle qui à l'ouverture informe l'utilisateur sur quelques points
ensuite il y a quelques questions posées par des "InputBox" pour remplir des cellules
et ensuite le code propose l'enregistrement du fichier dans une répertoire à choisir (en maintenant les macros)

le problème : mon code ne fonctionne plus et je ne trouve pas le problème.

D'avance merci
 
Solution

fanch55

XLDnaute Barbatruc
Bonjour,
Regardez si ce code à placer dans le module ThisWorkBook peut vous convenir
( ne pas oublier de modifier le File dans la sub BeforeSave )
VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If Not ThisWorkbook.Saved Then ThisWorkbook.Save
    Cancel = Not ThisWorkbook.Saved
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    File = [D3] & ", mesures " & Format(Date, "dd-mm-yyyy") & "_" & Format(Time, "hh-mm") & ".xlsm"
    Fname = Application.GetSaveAsFilename(Title:="Enregistrement forcée du Classeur", _
            InitialFileName:=File, filefilter:="Xlsm Files (*.xlsm), *.xlsm")
    If Not Fname = False Then
        ActiveWorkbook.SaveAs Filename:=Fname, FileFormat:=xlOpenXMLWorkbookMacroEnabled
    Else
        Cancel = True
    End If
End Sub
 

supercopain

XLDnaute Junior
Bonjour fanch55,

Merci pour votre proposition,
J'ai testé mais au moment ou je souhaite enregistrer il me bloque avec .."variable non définie" ?
j'ai peut-être oublié qq chose ...
 

fanch55

XLDnaute Barbatruc
Bonjour fanch55,

Merci pour votre proposition,
J'ai testé mais au moment ou je souhaite enregistrer il me bloque avec .."variable non définie" ?
j'ai peut-être oublié qq chose ...
Vous êtes surement en Option Explicit,
il faut déclarer les variables ...
VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If Not ThisWorkbook.Saved Then ThisWorkbook.Save
    Cancel = Not ThisWorkbook.Saved
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim File as String
Dim Fname
    File = [D3] & ", mesures " & Format(Date, "dd-mm-yyyy") & "_" & Format(Time, "hh-mm") & ".xlsm"
    Fname = Application.GetSaveAsFilename(Title:="Enregistrement forcée du Classeur", _
            InitialFileName:=File, filefilter:="Xlsm Files (*.xlsm), *.xlsm")
    If Not Fname = False Then
        ActiveWorkbook.SaveAs Filename:=Fname, FileFormat:=xlOpenXMLWorkbookMacroEnabled
    Else
        Cancel = True
    End If
End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…