XL 2021 ActiveWorkbook.Save avant Private Sub Workbook_Open()

Usine à gaz

XLDnaute Barbatruc
Bonjour à toutes et à tous :)

Et une question bizarre de plus lol 🤣🙃;)

J'ai un code pour enregistrer mon classeur :
VB:
Sub Enregistre()
If [m1] = "TEXTBOX OUVERT" Then Exit Sub
    If [p4] > 0 Then
        ActiveCell.Offset(0, 5).Select
        Exit Sub
    End If
Application.EnableEvents = False
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
    ActiveWorkbook.Save
[A1].Select
Application.EnableEvents = True
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
ActiveSheet.Protect Password:="", DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

Donc mon code de démarrage :
Code:
Private Sub Workbook_Open()
Enregistre
etc...
end sub

Voilà ma question certainement bizarre :
Est-il possible d'enregistrer mon classeur là où il est avant exécution de Private Sub Workbook_Open(), soit :
Code:
ActiveWorkbook.Save
Private Sub Workbook_Open()
etc...
end sub

Je serais surpris que ce soit faisable mais avec nos Ténors de chez Ténor.....
Si pas possible avec code Excel, peut être un code Windows ???

Merci à toutes et à tous pour vos retours :)
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
voilà le code concerné complet :
VB:
If Sheets("Table").[n2] < Date + 15 And Sheets("Table").[n2] > Date Then
modepasse
End If
If Sheets("Table").Range("n2") < Date Then
modepasse
If Sheets("Table").Range("n2") < Date Then
RétabliMenu
Application.EnableEvents = False
Application.ScreenUpdating = False
Application.DisplayAlerts = False
    Dim Onglets As Worksheet
For Each Onglets In Worksheets
Onglets.Visible = True
Next Onglets
Sheets("accueil").Select

Dim X As Long
For X = 1 To ThisWorkbook.Sheets.Count
    If Sheets(X).Name <> "Feuil1" Then Sheets(X).Select Replace:=False
Next X
Supprimer
    Application.DisplayAlerts = False
    Dim Sh As Object, s As Shape, fn$
        For Each Sh In Me.Sheets
            If Sh.ProtectContents Then Sh.Protect "", UserInterfaceOnly:=True
        For Each s In Sh.Shapes
            If s.OnAction <> "" Then s.Delete
    Next s, Sh
    fn = Me.FullName
    Me.SaveAs Left(fn, InStrRev(fn, ".") - 1), 51
        Kill fn
        If Workbooks.Count = 1 Then
        Application.Quit
        Else: ThisWorkbook.Close
        End If
    Exit Sub
    Me.Sheets("Recp").Activate
    End If
    End If
:)
 

TooFatBoy

XLDnaute Barbatruc
La réponse est bien évidemment NON : il n'est pas normal qu'en réouvrant le fichier il y ait une instruction de moins dans le code de la macro, et comme par hasard c'est l'instruction Stop...

Tu n'es pas d'accord ? Ca ne te semble pas évident ???
 

Usine à gaz

XLDnaute Barbatruc
Je comprends et déjà je te remercie d'avoir été là :)

"Bon, j'abandonne. Je laisse Joub75 t'expliquer. Lui, je sais que tu le croiras."
Evidemment, pas question de ne pas te croire, mais je te réponds ce que je vois :)
Bon dimanche à toi aussi :)
 

Usine à gaz

XLDnaute Barbatruc
Soit.

Mais si tu ajoutes le Stop en tout début de macro, et que lors de la réouverture du fichier cette instruction n'est plus dans le code de la macro, il n'y a qu'une seule explication possible : tu as oublié de sauvegarder le fichier après avoir ajouté le Stop.
Si, si, si lol
Quand, après avoir ouvert un fichier macros désactivées, je mets le stop et je sauvegarde avant fermeture sinon, je ne pourrais pas réouvrir le fichier.

A la réouverture le fichier s'ouvre normalement, le stop agit bien et je peux faire du pas à pas.
Mais là, je n'en ai plus besoin puisque le fichier fonctionne.

Mais quand, le matin à la 1ère ouverture il beug et se referme, pas possible de mettre le stop puisqu'il se referme illico.
:)
 

Discussions similaires

Statistiques des forums

Discussions
315 098
Messages
2 116 193
Membres
112 679
dernier inscrit
Yupanki