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
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 ?
j'ai bien mis V3 select dans Thisworkbook open mais avant de basculer sur celle ci, la page ou se trouve le bouton qui a fermé le classeur s'affiche quelques secondes, ce que je voudrais éviter
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.
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.
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 ...
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
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 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é ?
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 ?
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,
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.