XL 2016 Forcer l'ouverture de la copie d'un classeur sur un onglet précis

pat66

XLDnaute Impliqué
Bonsoir le Forum,
Pouvez vous m'aider s'il vous plait
voilà je souhaiterai pouvoir à partir de cette macro que la copie enregistrée se rouvre sur la page V3
Pour l'instant puisque le bouton se trouve sur la page DSI, la copie s'ouvre sur la page DSI

Merci pour votre aide


Private Sub CommandButton5_Click() 'sauvegarde du classeur entier
Application.EnableEvents = False
Application.DisplayAlerts = False

If Sheets("V3").Range("G27") = "" Then
If MsgBox("Vous devez préciser le nom du client en page V3 !", vbOKOnly + vbInformation, "Excel vous informe") = vbAbort Then Exit Sub
Else
Dim NOM_PRECIS As String
Dim vEMPLACEMENT As String
Dim NOLOT As String
Dim PROG As String

'Dim vCELLULE As Range
NOM_PRECIS = Sheets("V3").Range("G27").Value
vEMPLACEMENT = ThisWorkbook.Path & "\"
NOLOT = Sheets("D.S.I").Range("F33").Value
PROG = Sheets("D.S.I").Range("F30").Value
''Set vCELLULE = Range("A1")
''vCELLULE = vCELLULE.Address(0, 0)
'thisWorkbook.Sheets("D.S.I").OLEObjects("CommandButton5").Delete
ThisWorkbook.SaveAs vEMPLACEMENT & NOM_PRECIS & "_" & PROG & "_" & NOLOT & "_" & Format(Now, "dd-mm-yyyy"), FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
If MsgBox("L'étude a été enregistrée sous : " & vEMPLACEMENT & NOM_PRECIS & PROG & NOLOT, vbOKOnly + vbInformation, "Excel vous informe") = vbAbort Then Exit Sub
Application.ScreenUpdating = False
ThisWorkbook.Close
End If
Application.DisplayAlerts = True
End Sub
 

pat66

XLDnaute Impliqué
Bonjour Patrick,
Pourquoi ne pas mettre dans ThisWorkbook une macro du type :
VB:
Private Sub Workbook_Open()
     Sheets("V3").Activate
End Sub
Le fichier s'ouvrira sur la feuille V3.


Bonsoir , j'ai déjà mis "V3 Select" et cela fonctionne bien , mais avant de basculer sur V3 (la bonne page), il affiche la page où est situé le bouton qui a enregistrer la copie (c'est la macro ci dessus)

en fait je crois qu'il faudrait que dans le code du bouton ci dessus, soit précisé d'afficher la page V3 avant de fermer, qu'en pensez vous ?
 

jmfmarques

XLDnaute Accro
Bonjour
un classeur sauvegardé puis fermé alors qu'est active la feuille toto, s'ouvrira (lors de la prochaine session) sur la feuille toto.
Il suffit donc que tu sauvegardes et fermes alors qu'est active la feuille que tu veux voir ouverte lors de la prochaine session.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Ci joint une PJ avec deux feuille, une rouge, une verte.
On enregistre avec la feuille rouge active, à l'ouverture c'est bien la feuille verte qui s'affiche grâce à la macro :
VB:
Private Sub Workbook_Open()
     Sheets("feuil2").Activate
End Sub
Je suis sous 2007, mais ça m'étonnerait que cela ait une influence.
Ce qui m'étonnes, c'est "quelques secondes". La macro Workbook_Open s’exécute à l'ouverture du fichier, pas après quelques secondes, ce qui est l'éternité pour le VBA.
 

Pièces jointes

  • Ouverture.xlsm
    19.3 KB · Affichages: 4

jmfmarques

XLDnaute Accro
Je me garderais d'être aussi affirmatif, alors même (entre autres) que les évènements d'activation et/ou de désactivation des feuilles dans le module Thisworkbook pourraient (et nous l'ignorons) contenir des instructions ayant une durée d'exécution.
Je reviens donc avec ma proposition, moins aléatoire, exprimée en mon message #6
ceci étant dit, faites donc comme vous l'entendez ...
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Avez vous testé mon fichier ?
Un module dans Thisworkbook contient les instructions que vous y avez mises. Le temps d’exécution à l'ouverture ne saurait durer "quelques secondes", sauf si vous avez un PC équipé d'un 286. ;)
Une sécurisation est d'enregistrer en sortant avec un Workbook_BeforeSave :
VB:
Private Sub Workbook_Open()
     Sheets("feuil2").Activate
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
     Sheets("feuil2").Activate
End Sub
Mais le phénomène m'étonne.
 

Pièces jointes

  • Ouverture.xlsm
    19.6 KB · Affichages: 4

pat66

XLDnaute Impliqué
Bonjour,
Ci joint une PJ avec deux feuille, une rouge, une verte.
On enregistre avec la feuille rouge active, à l'ouverture c'est bien la feuille verte qui s'affiche grâce à la macro :
VB:
Private Sub Workbook_Open()
     Sheets("feuil2").Activate
End Sub
Je suis sous 2007, mais ça m'étonnerait que cela ait une influence.
Ce qui m'étonnes, c'est "quelques secondes". La macro Workbook_Open s’exécute à l'ouverture du fichier, pas après quelques secondes, ce qui est l'éternité pour le VBA.
Bonjour

sauf que si tu fermes le classeur avec la macro ci dessus il se rouvre sur la page ou est le bouton, je dois donc rajouter la consigne d'activer la page souhaitée avant d'exécuter la copie, est t'il possible d'ajouter a macro cette possibilité ?
 

pat66

XLDnaute Impliqué
Bo
Je me garderais d'être aussi affirmatif, alors même (entre autres) que les évènements d'activation et/ou de désactivation des feuilles dans le module Thisworkbook pourraient (et nous l'ignorons) contenir des instructions ayant une durée d'exécution.
Je reviens donc avec ma proposition, moins aléatoire, exprimée en mon message #6
ceci étant dit, faites donc comme vous l'entendez ...
Bonjour je suis assez d'accord avec votre avis, avez vous une solution ? peut être integrer dans la macro de copie l'activation de la bonne page avant d'enregistrer ?
 

pat66

XLDnaute Impliqué
Bonjour
Bonjour,
Ci joint une PJ avec deux feuille, une rouge, une verte.
On enregistre avec la feuille rouge active, à l'ouverture c'est bien la feuille verte qui s'affiche grâce à la macro :
VB:
Private Sub Workbook_Open()
     Sheets("feuil2").Activate
End Sub
Je suis sous 2007, mais ça m'étonnerait que cela ait une influence.
Ce qui m'étonnes, c'est "quelques secondes". La macro Workbook_Open s’exécute à l'ouverture du fichier, pas après quelques secondes, ce qui est l'éternité pour le VBA.
sauf si on ferme le classeur avec un bouton et une macro sur la feuille rouge, la rouge s'affichera 1 à 2 secondes avant la verte
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Si votre XL met deux secondes avant d’exécuter une macro Workbook_Open dans le fichier que je vous ai donné, c'est que vous avez un souci avec XL. D’autant qu'il est fermé sur la page verte.

20200611_144413.gif
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 104
dernier inscrit
JEMADA