Ouverture d'onglet sur 2eme écran

Sub Affichage2Pg()
With ThisWorkbook
     .NewWindow
    End With
Windows("TEST.xlsm:2").Activate
    Sheets("JOUR").Select
    Application.DisplayFullScreen = True
    Application.DisplayFormulaBar = True
    ActiveWindow.DisplayHeadings = True
    ActiveWindow.DisplayGridlines = False
    ActiveWindow.DisplayHeadings = False
    Application.DisplayFormulaBar = False
   With ActiveWindow
        .DisplayHorizontalScrollBar = True
        .DisplayVerticalScrollBar = False
        .DisplayWorkbookTabs = False
        .WindowState = xlMaximized
        .Zoom = 80
End With
Windows("TEST.xlsm:1").Activate
Sheets("NUIT").Activate
''''' truc bizarre qui se produit : des fois une 3eme fenetre s'ouvre donc j'ai mis ca pour la fermer quand ca m'arrive !!!! ''''''
On Error Resume Next
Windows("TEST.xlsm:3").Close
End Sub

bonjour à tous,

j'utilise cette macro pour ouvrir un onglet de mon fichier sur une autre fenêtre.

je ne sais pas pourquoi de temps en temps elle m'ouvre une 3eme fenêtre, d'où les lignes de la fin pour palier à ça ! Je me suis rendu compte que ça dépend de l'ordre a la quelle je ferme les fenêtres.

le problème c'est que je souhaiterais, si c'est possible que les 2 fenêtres s'ouvre chacune sur un écran et qu'au moment de la fermeture d'une des fenêtres l'autre se ferme automatiquement.

je vous joint un fichier test.

merci d'avance.

4test.xlsm (11.71 Ko)

Bonjour,

-je mettrai plutôt la macro dans le module du classeur "Thisworkbook" , dans "Sub Workbook_Open()" ainsi que "Workbook_BeforeClose"

Si parfois vous avez 3 fenêtres au lieu de 2, c'est qu'à la fermeture toutes hormis la 1 ne ce sont pas fermées ce qui fait qu'à la prochaine ouverture vous la retrouviez en plus des 2 autres.

il faut donc s'assurer qu'à la fermeture il n'en reste plus qu'une.

Voici les macros à coller dans le module "Thisworkbook"

Private Sub Workbook_Open()
    Application.ScreenUpdating = False
    With ThisWorkbook
         .NewWindow
    End With
    Windows("TEST.xlsm:2").Activate
    Sheets("JOUR").Select
    Application.DisplayFullScreen = True
    Application.DisplayFormulaBar = True
    ActiveWindow.DisplayHeadings = True
    ActiveWindow.DisplayGridlines = False
    ActiveWindow.DisplayHeadings = False
    Application.DisplayFormulaBar = False
    With ActiveWindow
         .DisplayHorizontalScrollBar = True
         .DisplayVerticalScrollBar = False
         .DisplayWorkbookTabs = False
         .WindowState = xlMaximized
         .Zoom = 80
    End With
    Windows("TEST.xlsm:1").Activate
    Sheets("NUIT").Activate
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.ScreenUpdating = False
    Nb_Windows = Windows.Count
    For i = Nb_Windows To 2 Step -1
        On Error Resume Next
        Windows("TEST.xlsm:" & i).Close
        On Error GoTo 0
    Next i
End Sub
3test.xlsm (18.40 Ko)

Cdlt

merci beaucoup de t'intéresser à mon sujet.

j'avais oublié de préciser que la procédure était appelé dans Workbook_Open().

je pensais que ça se verrait dans le fichier "TEST" mais j'ai vu que toute les macros ont étaient supprimées. Surement dû au système de protection informatique de mon entreprise !

concernant ton code la procédure Workbook_BeforeClose ne fonctionne pas chez moi !

mais surtout ce qui m'intéresserait c'est l'ouverture automatique sur 2 écrans différents.

t'aurais une idée de comment je pourrais y arriver ?

encore merci 🙏

Bonjour,

L'affichage sur 2 écrans est impossible, ce ne peut-être que sur le même écran avec l'affichage en double fenêtre, quant à la suppression des fenêtres à la fermeture du fichier, ça fonctionne bien chez-moi, même en ajoutant des dizaines de feuilles. A la fermeture du fichier, toutes les feuilles sauf une sont supprimées, ainsi à la prochaine ouverture il n'ouvrira que 2 feuilles.

Cdlt

ah oui ok ! Si je comprend bien la procédure Workbook_BeforeClose permet de fermer correctement le fichier afin d'éviter la 3eme fenêtres au prochain démarrage.

merci beaucoup pour ton aide !

Rechercher des sujets similaires à "ouverture onglet 2eme ecran"