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:

job75

XLDnaute Barbatruc
Bonjour Lionel,

Il ne s'agit pas de savoir si c'est faisable car la question n'a guère de sens.

En effet avant qu'on ouvre un fichier il est déjà forcément sauvegardé.

Par contre après son ouverture la sauvegarde peut être nécessaire.

A+
 

Usine à gaz

XLDnaute Barbatruc
Bsr Gérard :)
Merci pour ce retour
"En effet avant qu'on ouvre un fichier il est déjà forcément sauvegardé."

Bien sur, mais j'ai quelques soucis de fichiers qui se referment automatiquement dès l'ouverture.
- Je suis obligé d'ouvrir un autre fichier,
- de désactiver les macros,
- puis j'ouvre à nouveau le fichier qui s'est refermé",
- Je l'enregistre,
- Je ferme les 2 fichiers,

J'ouvre enfin le fichier qui s'était refermé et là il fonctionne.
D'où ma question...
:)
 

patricktoulon

XLDnaute Barbatruc
Bonjour Lionel ,@job75
c'est vrai que c'est compliqué ton truc
en l’état je ne vois qu'une variable intermediaire
selon la variable
ex:
si elle vaut 0 tu deprotect et tu sauve et tu la remet à 1 et tu sauve
ça ne le fera qu'une fois au démarrage

maintenant pour tes autre fichiers fermés a l'ouverture de celui ci ,il y a une solution simple
dans les déactive de tes autres fichier tu boucle sur les workbooks si ton classeur est là ben tu exit sub tout simplement
ils ne se fermeront pas à l'ouverture du classeur

mais c'est chaud ton truc
 

Usine à gaz

XLDnaute Barbatruc
Bjr Gérard :), Bjr Patrick :), Bjr le Forum :)

Merci à vous d'être là :)

Mon code ThisWorkbook contient pas mal de lignes (usine à gaz oblige lol).
Si je mets les 2 codes ici (fichier qui fonctionne et fichier qui se referme), vous allez vous moquer de moi et ce sera certainement "bienfait" pour moi lol.

Je regarde ce qui a changé et dès que j'aurai fini, je le poste.
Bonne journée :)
 

Usine à gaz

XLDnaute Barbatruc
Bonjour Lionel ,@job75
c'est vrai que c'est compliqué ton truc
en l’état je ne vois qu'une variable intermediaire
selon la variable
ex:
si elle vaut 0 tu deprotect et tu sauve et tu la remet à 1 et tu sauve
ça ne le fera qu'une fois au démarrage

maintenant pour tes autre fichiers fermés a l'ouverture de celui ci ,il y a une solution simple
dans les déactive de tes autres fichier tu boucle sur les workbooks si ton classeur est là ben tu exit sub tout simplement
ils ne se fermeront pas à l'ouverture du classeur

mais c'est chaud ton truc
Merci Patrick :)
je vais tenter "Private Sub Workbook_Open(): Enregistre: Exit Sub"
pendant qq jrs et je reviendrai donner le résultat
:)
 

Usine à gaz

XLDnaute Barbatruc
Bjr Gérard :), Bjr Patrick :), le Forum :)

Toujours sur mes tests.....
Est-il possible de lancer Workbook_Open() en pas à pas à l'ouverture du classeur ?

Le but serait de voir où ça coince car actuellement, comme il se referme, je ne peux rien voir.
Je continue mes recherches de mon côté.....
:)
 

Usine à gaz

XLDnaute Barbatruc
Bjr à toutes et à tous :)

Toujours dans ma recherche...
Mon but serait de voir où ça coince car actuellement, comme le classeur se referme, je ne peux rien voir.

Sur les conseils de ce fil : https://www.mrexcel.com/board/threads/calling-workbook_open-marco-using-a-button.274070/

J'ai modifié mon Workbook_Open() comme suit :
VB:
Private Sub Workbook_Open()
Sheets("Appels").Select
End Sub
Et j'ai envoyé tout ce qui était dedans dans un module "Sub ouvrir_classeur()";

Au clic sur Sub ouvrir_classeur(), j'ai ce beug :
Utilisation incorrecte du mot clé Me sur ces lignes :
- For Each Sh In Me.Sheets
- fn = Me.FullName
- Me.SaveAs Left(fn, InStrRev(fn, ".") - 1), 51
- Me.Sheets("Recp").Activate

Je ne sais pas les modifier.
Pourriez-vous m'aider à les modifier pour me permettre d'aller plus loi ?
Un grand merci à toutes et à tous
:)
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Bjr et Merci Gérard :)
Nickel... je vais pouvoir avancer.

Mais je pense que je ne verrai toujours pas où ça coince quand le fichier se referme Grrr !!! :mad:

Est-il possible de faire un truc dans ce genre :
VB:
Private Sub Workbook_Open()
Sheets("Appels").Select
Sub ouvrir_classeur() 'à exécuter en pas à pas
End Sub
Et faire en sortes que "Sub ouvrir_classeur()" s'exécute en pas à pas .
:)
 

Usine à gaz

XLDnaute Barbatruc
Merci Gérard d'être là :)
l'autre possibilité : l'ouverture en mode sans échec en attendant de trouver le beug.

1 - Nous verrons si tout fonctionne bien en mode sans échec,
2 - Je ne vois pas mes commerciales, après Touche Windows +R, écrire dans la fenêtre exécuter :

Est-il possible d'écrire un code pour ouvrir un classeur en mode sans échec.
Je n'ai pas trouvé jusqu'à maintenant
:)
 

Discussions similaires

Statistiques des forums

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