Redimensionner un tableau excel grâce à une macro VBA

  • Initiateur de la discussion Initiateur de la discussion GuillaumA
  • 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 !

GuillaumA

XLDnaute Occasionnel
Bonjour à tous,
Je me permet de vous solliciter afin de savoir s'il existe une macro afin de redimensionner un tableau A1:F79 de tel sorte qu'il prenne tout l'écran excel disponible sur tout type d'ordinateur.
En gros, une macro qui modifie la taille à l'affichage en fonction des caractéristiques de résolution et tailles de chaque écran d'ordinateur ou le fichier excel va être lancé.

Je vous remercie de votre considération et vous souhaite une agréable journée au travail... ou pas 🙂

Cordialement,
Guillaume A.
 
Dernière édition:
Re : Redimensionner un tableau excel grâce à une macro VBA

Salut GuillaumA, le Forum

Je me permet de vous solliciter afin de savoir s'il existe une macro afin de redimensionner un tableau A1:A79 de tel sorte qu'il prenne tout l'écran excel disponible sur tout type d'ordinateur.
Dois-je comprendre que ton tableau ne fait... qu'une colonne?

Si non en supposant que ton tableau va, dans le sens de la largeur, de la colonne A à la colonne O met ce bout de code dans le Module ThisWorkBook

Code:
[COLOR=BLUE]Private Sub[/COLOR] Workbook_Open()
Application.ScreenUpdating = [COLOR=BLUE]False[/COLOR]
ThisWorkbook.Sheets("Feuil1").Activate
Range("A1:O1").Select
ActiveWindow.Zoom = [COLOR=BLUE]True[/COLOR]
Range("A1").Select
Application.ScreenUpdating = [COLOR=BLUE]True[/COLOR]
[COLOR=BLUE]End Sub[/COLOR]
et quelque soit la résolution de l'écran la largeur du tableau prendra la largeur de l'écran.

A tester

Bonne Journée
 
Re : Redimensionner un tableau excel grâce à une macro VBA

Bonjour Dull,
Tout d'abord merci pour ton aide! Et oui effectivement je m'étais trompé; il s'agissait de F79.

Cependant quelques problèmes me sont apparus en testant ta macro:
- Ayant des tableaux de différentes tailles sur différentes feuilles, j'ai voulu adapter ta formule en mettant une macro différente par feuille et... ça ne marche pas =)

- Ayant parfois des éléments en dessous des tableaux qui doivent être vu, j'aurai aimé que seulement la largeur du tableau prenne la taille de l'écran et non la hauteur.

Bien entendu je peux comprendre que cela soit moins facilement réalisable ou pas du tout.
En espérant un retour de ta part, encore merci pour l'aide déjà apportée!

Cordialement,
Guillaume A.
 
Re : Redimensionner un tableau excel grâce à une macro VBA

Re GuillaumA, le Fil

En 2D (Hauteur et Largeur) je ne pense pas que se soit possible

Pour la Largeur, sur chaque feuille, il faut placer le code dans la procédure Worksheet_Activate

Code:
Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
Range("A1:F1").Select
ActiveWindow.Zoom = True
Range("A1").Select
Application.ScreenUpdating = True
End Sub
Pour les autres feuilles recopie le code, Colle le dans le module de la feuille adéquate et change simplement Range("A1:F1") par la largeur de ton tableau

Désolé de ne pas pouvoir faire plus

Bonne Journée
 
Re : Redimensionner un tableau excel grâce à une macro VBA

Bonjour GuillaumA, Dull 🙂,
Pas certain d'avoir compris, mais si il s'agit de rendre "dynamique" la selection par rapport aux entêtes de colonnes (ligne 1) je propose cette modification au code de Dull:
Code:
[COLOR=blue]Private Sub[/COLOR] Worksheet_Activate()
Application.ScreenUpdating = [COLOR=blue]False[/COLOR]
Dercol = Cells(1, Application.Columns.Count).End(xlToLeft).Column
Range(Cells(1, 1), Cells(1, Dercol)).Select
ActiveWindow.Zoom = [COLOR=blue]True[/COLOR]
Range("A1").Select
Application.ScreenUpdating = [COLOR=blue]True[/COLOR]
[COLOR=blue]End Sub[/COLOR]

En espérant ne pas être à coté de la plaque...
Cordialement
 
Re : Redimensionner un tableau excel grâce à une macro VBA

Bonjour Dull, bonjour Efgé.
Après test de vos deux macros et bien... Les deux marchent et marchent même très bien. Qu'importe la résolution de l'écran, qu'importe sa taille, mes tableaux prennent toute la largeur pour mon plus grand bonheur!
Vous allez rendre heureux des centaines de personnes à travers l'Europe avec quelque chose d'adapté à chacun.

Encore merci à vous deux. Passez une bonne journée ensoleillé! 😛

Cordialement,
Guillaume A.
 
Re : Redimensionner un tableau excel grâce à une macro VBA

Re-bonjour. j'ai un petit soucis qui est apparu 🙁

La macro se lance tout le temps car mes tableaux sont évolutif et donc, changent en fonction de plein de critères (des lignes apparaissent changeant uniquement la hauteur du tableau et non la largeur)

Cependant, tel une machine, la macro redimensionne constamment mes tableaux.

Ma question serait donc:
Est-il possible de transformer cette macro présente sur toutes les pages (total 4 fois la même macro) par une macro général (dans thisworkbook) qui ne se lance qu'une seule fois au démarrage du logiciel)

4 feuilles on des largeurs a mettre en bonne dimensions.
Les coordonnées sont:
- ("A1😛1")
- ("A1:F1")
- ("A1:E1")
- ("A1😀1")
 
Re : Redimensionner un tableau excel grâce à une macro VBA

Bonjour GuillaumA, Dull, le fil
Je ne comprend pas vraiment le souci rencontré. La macro proposée ne se lance que que lors de l'activation de la feuille concernée (Worksheet_Activate). L'ajout de ligne ne réactive pas la feuille mais la "change" ; elle ne pourrait se lancer sans cesse qu'avec un Worksheet_Change.
Dans l'attente de re-lire.
Cordialement
 
Re : Redimensionner un tableau excel grâce à une macro VBA

Re Efgé!

Et bien le fait est que d'autres macros présentent sont constemment en train de modifier les pages en fonction de cases cochés etc...
Par exemple si tu valide 3 critères sur 5 par OUI sur une feuille A, cela modifie le tableau de la feuille B qui a les réponses des critères pour ne plus qu'afficher 3 lignes au lieu de 5.

Ce jeu de Refresh constant entre 3 de mes feuilles est basé sur une macro qui check constamment 100 lignes.
Et lorsque j'utilise vos macros, pour redimensionner, le temps de Check "n'apparaît" plus comme instantané mais met 2 sec a figer l'écran avec des bandes de refresh qui passe.
C'est pourquoi je recherche quelque chose lancé uniquement au démarrage pour tout car même si le nombre de lignes changent dans les tableaux, jamais la largeur! ... Et le refresh de chaque page serait non affecté!

J'espère qu'il existe une solution , même si ce que tu viens de me dire me refroidi 🙁 .

Guillaume A.
 
Dernière édition:
Re : Redimensionner un tableau excel grâce à une macro VBA

Re
A la lecture de tes dernières explications, je ne peux te donner que des "pistes":
- A tu vraiment besoin d'activer tes feuilles dans ta macro "qui check constamment " ? On peux souvent se passer d'activation / selection dans un code.
- A tu mis la ligne "Application.ScreenUpdating = False" en début et "Application.ScreenUpdating = True" en fin de cette fameuse macro ?
- Essai de mettre ceci dans le ThisWorkBoock:
Code:
[COLOR=blue]Private Sub[/COLOR] Workbook_SheetActivate([COLOR=blue]ByVal[/COLOR] Sh [COLOR=blue]As Object[/COLOR])
Application.ScreenUpdating = [COLOR=blue]False[/COLOR]
Dercol = Cells(1, Application.Columns.Count).End(xlToLeft).Column
Range(Cells(1, 1), Cells(1, Dercol)).Select
ActiveWindow.Zoom = [COLOR=blue]True[/COLOR]
Range("A1").Select
Application.ScreenUpdating = [COLOR=blue]True[/COLOR]
[COLOR=blue]End Sub[/COLOR]
En espérant que cela te sera utile.
Cordialement
 
Re : Redimensionner un tableau excel grâce à une macro VBA

Je te donne la macro:
Sur feuille etape 3
Public Sub Masquer() 'hide unused lines automatically


Application.ScreenUpdating = False

Dim i As Long
Sheets("Etape 3").Select

i = 1
Do While i < 100
If Cells(i, 3).Value = "" Then
Cells(i, 3).EntireRow.Hidden = True
Else
Cells(i, 3).EntireRow.Hidden = False
End If
i = i + 1
Loop

Sheets("Etape 2").Select

Application.ScreenUpdating = True

Et sur feuille etape 2 (précédente)
Private Sub Worksheet_Change(ByVal Target As Range)

Call Feuil7.Masquer 'feuille etape 3

En attendant je vais tester ce que tu proposes.
 
Re : Redimensionner un tableau excel grâce à une macro VBA

Re
Essai avec ça dans sur feuille etape 3
Code:
[COLOR=blue]Public Sub[/COLOR] Masquer()
Application.ScreenUpdating = [COLOR=blue]False[/COLOR]
[COLOR=blue]For[/COLOR] i = 1 [COLOR=blue]To[/COLOR] 99
    Rows(i).Hidden = Cells(i, 3).Value = ""
[COLOR=blue]Next[/COLOR] i
Application.ScreenUpdating = [COLOR=blue]True[/COLOR]
[COLOR=blue]End Sub[/COLOR]
Je t'ai fait un exemple qui ne semble pas poser de problèmes.
Cordialement
 

Pièces jointes

Re : Redimensionner un tableau excel grâce à une macro VBA

EDIT:
Pour vérifier, changer la valeur de Feuill2 C6, cela modifiera la valeur de feuil3 C6 sans provoquer de "clignotements" ni de "recalcul" de l'affichage.
Cordialement
 
- 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

Retour