Bonjour les amis, je demande votre aide pour résoudre un petit problème !!
Le fichier «test» contient 3 feuilles, chaque feuille contient un tableau (en rouge), la colonne A et la ligne 1 de chaque feuille changent respectivement de largeur et de hauteur (pour garder les 3 tableaux aux centres des feuilles) lorsque la taille de la fenêtre de l’application change. Ce changement de largeur et de hauteur se produit sur les trois feuilles en même temps en activant l'une d'entre elles.
Je veux que la macro « Ajustement » soit exécutée automatiquement lorsque je change la taille de la fenêtre principale de l'application Excel (minimiser, maximiser, changer la hauteur ou la largeur) sans avoir besoin d’activer une des feuilles.
Module de chaque feuille :
Private Sub Worksheet_Activate()
Ajustement
End Sub
Code dans le module :
Sub Ajustement()
Dim ws As Worksheet
For Each ws In Worksheets
If Application.UsableWidth > Columns("B:L").Width Then
ws.Columns("A:A").ColumnWidth = (Application.UsableWidth - ws.Columns("B:L").Width) / 11
End If
If Application.UsableHeight > Rows("2:25").Height Then
ws.Rows("1:1").RowHeight = (Application.UsableHeight - ws.Rows("2:25").Height) / 2
End If
Next ws
End Sub
j'ai créé un module de classe (nommé CExcelEvents), code :
Private WithEvents App As Application
Private Sub App_WindowResize(ByVal Wb As Workbook, ByVal Wn As Window)
Ajustement
End Sub
Private Sub Class_Initialize()
Set App = Application
End Sub
Code module objet ThisWorkbook :
Option Explicit
Private XLApp As CExcelEvents
Private Sub Workbook_Open()
Set XLApp = New CExcelEvents
End Sub
Mais malheureusement rien ne se passe lorsque la fenêtre est redimensionnée.
Je vous remercie par avance pour les réponses que vous m’apporterez.