XL 2019 Ouvertures pas en cascade

guy72

XLDnaute Impliqué
Bonjour

J'ai 3 fichiers Excel à ouvrir quand je commence à travailler.
Je souhaiterais qu'ils ne s'ouvre pas en cascade, à part le 1er, je ne vois pas les onglets des autres, je suis obligé à chaque fois de remonter les pages.

Y a-t-il une solution ?
 

fanch55

XLDnaute Barbatruc
C'est à dire:
1) Vous appelez l'explorateur, vous sélectionnez les 3 classeurs et vous faites Ouvrir ?
2) Vous appelez l'explorateur, vous sélectionnez 1 classeur , vous faites Ouvrir, vous ré-affichez l'explorateur etc ...

Cela ne ressemble pas à un problème Excel mais plutôt au thème windows utilisé .
Quel est votre système d'exploitation ? cela vous arrive-t-il sur un autre ordi ?
 

guy72

XLDnaute Impliqué
Dans la barre de tâches, avec l'icône Excel:
Avec la touche de droite, j'ai dans ma liste "épinglé" mes 3 classeurs.
Je clic sur 1 puis 2 puis 3.

J'ai Windows 11
Je n'ai pas d'autre ordinateur, je sais qu'avec Excel 2010 je n'avais pas ce problème
 

fanch55

XLDnaute Barbatruc
re,
Ok, d'accord, je comprend mieux, cela ne vous arrive que lorsque vous réduisez la taille du premier classeur ouvert, les autres s'affichent par la suite en décalé, voire un peu n'importe où ...
C'est un phénomène un peu universel et récurent qu'on ne peut pas contrer par un quelconque réglage ( à ma connaissance ).
Si vous voulez et que vous n'êtes pas contre les macros, on peut à l'ouverture du premier classeur faire en sorte qu'il soit d'une certaine taille et ouvrir les 2 autres classeurs à un endroit précis ....
 

fanch55

XLDnaute Barbatruc
Cette proposition est vraiment spécifique à la configuration de votre PC.
Sur d'autres appareils, elle ne devrait pas être nécessaire .
Dans le module Thisworkbook du classeur maître ( celui que vous ouvrez en premier ),
mettre le code ci-dessous ( vous devrez sauvegarder le classeur avec l'extension xlsm puis n'utiliser que celui-ci )
VB:
Private Type App
    Top     As Double
    Left    As Double
    Height  As Double
    Width   As Double
End Type
Private Sub Workbook_Open()
Dim App As App
    With Application
        .WindowState = xlMaximized
        App.Top = 0
        App.Left = .Left
        App.Width = .Width
        App.Height = .Height
        .WindowState = xlNormal
    End With
    With Windows(ThisWorkbook.Name)
        .Top = App.Top
        .Width = App.Width * 0.75
        .Height = App.Height
        App.Left = App.Width - .Width
        .Left = App.Left
    End With
    Dossier = ThisWorkbook.Path & "\"
    On Error Resume Next
    For Each wb In Array("Classeur2.xlsx", "Classeur3.xlsx")
        Workbooks.Open Filename:=Dossier & wb
        If Err = 0 Then
            ActiveWindow.Top = App.Top
            ActiveWindow.Left = App.Left
        End If
        Err.Clear
    Next
    Windows(ThisWorkbook.Name).Activate
        
End Sub

La partie spécifique à votre demande doit être renseignée :
1700216227354.png
 

Pièces jointes

  • Classeur1.xlsm
    16.9 KB · Affichages: 1

guy72

XLDnaute Impliqué
Ok, merci, je regarde ça demain.

Bonne soirée

Bonjour,
Je mets le code dans le fichier "Récuperation_des_donnees.xlsm"
J'ai remplacé Classer 2 par "Convertir.xlsm"
J'ai remplacé Classer 3 par "Novembre 2023.xlsm"

1) J'ouvre donc en 1er, le fichier "Récuperation_des_donnees.xlsm"
2) Ensuite, j'ouvre en 2ème, un fichier qui s'appelle "Convertir.xlsm"
3) Un 3ème fichier "Novembre 2023", lui s'ouvre avec une macro quand j'en ai fini avec le 2ème.

Avec la macro (que je mets dans le 1er fichier), ça ouvre :
1) Le 1er (bien sûr) "Récuperation_des_donnees.xlsm"
2) Le 2ème "Convertir.xlsm" s'ouvre en même temps (impeccable !!!) jusque-là pas de problème, mais...
Le 2ème,"Convertir.xlsm" se mets derrière le 1er (j'aimerais mieux qu'il soit devant).

Donc pour ce problème, j'ai mis le code dans le 2ème "Convertir.xlsm", ça fonctionne, les 2 fichiers sont bien l'un derrière l'autre, mais à droite et pas à gauche.
Quant au 3ème "Novembre 2023.xlsm" il se mets en décalage vers le bas.

Je ne sais pas si ce que j'ai fait est bon et que je me suis bien expliquer.....?

Je n'ai pas compris Dossier = ThisWorkbook.Path & "\"
il faut faire quoi ?
 
Dernière édition:

guy72

XLDnaute Impliqué
Bonjour,
Voilà la macro finale, j'ai simplifié un peu (à tâtons, car je ne connais pas le VBA).
Les classeurs sont à gauche et en haut comme je les avais laissés en quittant.
C'est Parfait 👍

VB:
Private Type App
    Top     As Double
    Left    As Double
    Height  As Double
    Width   As Double
End Type
Private Sub Workbook_Open()
Dim App As App
  
    Dossier = ThisWorkbook.Path & "\"
    On Error Resume Next
    For Each wb In Array("Recuperation_des_donnees.xlsm", "Décembre_2023.xlsm")
    Workbooks.Open Filename:=Dossier & wb
        If Err = 0 Then
            ActiveWindow.Top = App.Top
            ActiveWindow.Left = App.Left
        End If
Next
    Windows(ThisWorkbook.Name).Activate
    
    
End Sub
 

Discussions similaires

Réponses
9
Affichages
348

Statistiques des forums

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