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

XL 2021 ActiveWorkbook.Save avant Private Sub Workbook_Open()

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
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
Supporter XLD
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
Supporter XLD
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
Supporter XLD
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
Supporter XLD
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
Supporter XLD
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
Supporter XLD
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 !!!

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
Supporter XLD
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

Réponses
2
Affichages
227
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…