XL 2021 Taille de la feuille à l'ouverture

  • Initiateur de la discussion Initiateur de la discussion guy72
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

guy72

XLDnaute Impliqué
Bonjour
Dans mon fichier "Convertir", j'ai une macro (dans HtisWorkbook).
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", "Aout_2025.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
qui me permet d'ouvrir les 2 fichiers en plus et à la même place (en haut à gauche).
1) Convertir (origine avec la macro)
2) Récupération des données
3) Mois en cours
Pour ne pas modifier les dimensions des feuilles, est-il possible en plus de garder toujours la même dimension de celles-ci ?
 
Bonjour,

une idée mais sans fichier

VB:
Private Type App
    Top As Double
    Left As Double
    Height As Double
    Width As Double
End Type

Private Sub Workbook_Open()
    Dim AppPos As App
    Dim Dossier As String
    Dim wbName As Variant
    Dim wb As Workbook

    ' Valeurs par défaut de la position à appliquer (à adapter)
    AppPos.Top = 100
    AppPos.Left = 100

    Dossier = ThisWorkbook.Path & "\"

    On Error Resume Next
    For Each wbName In Array("Recuperation_des_donnees.xlsm", "Aout_2025.xlsm")
        Set wb = Workbooks.Open(Filename:=Dossier & wbName)
        If Err = 0 And Not wb Is Nothing Then
            If Not wb.Windows(1) Is Nothing Then
                wb.Windows(1).Top = AppPos.Top
                wb.Windows(1).Left = AppPos.Left
            End If
        End If
        Err.Clear
    Next
    On Error GoTo 0

    Windows(ThisWorkbook.Name).Activate
End Sub

Nicolas
 
Bonjour,

Pour ne pas modifier les dimensions des feuilles, est-il possible en plus de garder toujours la même dimension de celles-ci ?
C'est sûrement possible car on dit qu'avec Excel on peut tout faire sauf le café et les Treets.

Mais il faudrait savoir ce que tu entends exactement par "dimension" ou "taille" d'une feuille d'un classeur Excel.
 
Dernière édition:
C'est sûrement possible car on dit qu'avec Excel on peut tout faire sauf le café
Bonjour à tous
Si...si
pc café.jpg
 
Une deuxième, que je préfère, au moins on voit les fenêtres :

VB:
Private Type App
    Top As Double
    Left As Double
    Height As Double
    Width As Double
End Type

Private Sub Workbook_Open()
    Dim AppPos As App
    Dim Dossier As String
    Dim wbName As Variant
    Dim wb As Workbook
    Dim i As Integer

    ' Position de base
    AppPos.Top = 100
    AppPos.Left = 100

    Dossier = ThisWorkbook.Path & "\"

    On Error Resume Next
    i = 0
    For Each wbName In Array("Recuperation_des_donnees.xlsm", "Aout_2025.xlsm")
        Set wb = Workbooks.Open(Filename:=Dossier & wbName)
        If Err = 0 And Not wb Is Nothing Then
            If Not wb.Windows(1) Is Nothing Then
                With wb.Windows(1)
                    .Top = AppPos.Top + (i * 20)
                    .Left = AppPos.Left + (i * 20)
                End With
            End If
        End If
        Err.Clear
        i = i + 1
    Next
    On Error GoTo 0

    Windows(ThisWorkbook.Name).Activate
End Sub

Nicolas
 
Bonjour à tous,

Je trouve le code un peu compliqué pour pas grand-chose.

Pour qu'on puisse dimensionner chaque fenêtre il faut la mettre dans son état "Normal" :
VB:
Sub Fenetres()
Dim chemin$, a, i As Byte
chemin = ThisWorkbook.Path & "\"
a = Array("Recuperation_des_donnees.xlsm", "Aout_2025.xlsm")
For i = 0 To UBound(a)
    Workbooks.Open chemin & a(i)
    With ActiveWindow
        .WindowState = xlNormal
        .Top = 100 * (i + 1)
        .Left = 100 * (i + 1)
        .Width = 1200
        .Height = 600
    End With
Next
End Sub
A+
 
Explication de la largeur de la page.......
Image 1....ma page s'ouvre comme ça......V

Page 1.png


Image 2 ....je souhaiterais qu'elle s'ouvre toujours comme ça.......V

Page 2.png


Et le problème, c'est que j'ai beau (avant de quitter) la mettre à la dimension voulue, elle revient toujours comme la 1ère image
 
Si je comprends bien vous voulez que les colonnes A à U soient visibles alors essayez :
VB:
Sub Fenetres()
Dim chemin$, a, i As Byte
chemin = ThisWorkbook.Path & "\"
a = Array("Recuperation_des_donnees.xlsm", "Aout_2025.xlsm")
For i = 0 To UBound(a)
    Workbooks.Open chemin & a(i)
    Application.Goto ActiveSheet.Cells(1), True 'cadrage
    With ActiveWindow
        .WindowState = xlNormal
        .Top = 0
        .Left = 0
        .Width = ActiveSheet.Columns("A:U").Width + 50
        .Height = 750 'à adapter
    End With
Next
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
374
Retour