Dimensionner la largeur de colonnes à partir d'une cellule
Résolu
Cannonride
Messages postés
6
Statut
Membre
-
Cannonride Messages postés 6 Statut Membre -
Cannonride Messages postés 6 Statut Membre -
Bonjour à tous et à toutes,
Faute de succes après plusieurs heures de recherche, je me suis decidé à créer ce topic pour enfin, je l'espère, trouver des réponses.
Je souhaite régler la largeur de mes colonnes à partir d'une valeur située dans une cellule associée à cette colonne (l'unité notée dans la cellule est en pixel mais je peux la changer si besoin)
En détail, toutes les cellules de la ligne A7 à GA7 possedent une valeur numérique (155, 100, 80, 11, etc...). j'ai note la largeur "idéale" de la colonne qu'il me faut, en fonction du tableau. Il est désormais terminé mais son contenu évoluera. Je souhaite donc que la colonne A s'ajuste en function de la valeur notée dans la cellule A1. Et ainsi de suite jusqu'à GA7
Mon objectif est de rendre pilotante la largeur des colonnes par le biais d'une valeur fixe que je determine.
Je suis ouvert à toute solution fonctionnelle (formule ou VBA)
Dans tous les cas, mais surtout dans le VBA, il me faudra svp des explication bien détaillées car je n'ai aucune notion dans ce language. :p
Merci à tous :)
Bien bonne journée !
Cannonride
Faute de succes après plusieurs heures de recherche, je me suis decidé à créer ce topic pour enfin, je l'espère, trouver des réponses.
Je souhaite régler la largeur de mes colonnes à partir d'une valeur située dans une cellule associée à cette colonne (l'unité notée dans la cellule est en pixel mais je peux la changer si besoin)
En détail, toutes les cellules de la ligne A7 à GA7 possedent une valeur numérique (155, 100, 80, 11, etc...). j'ai note la largeur "idéale" de la colonne qu'il me faut, en fonction du tableau. Il est désormais terminé mais son contenu évoluera. Je souhaite donc que la colonne A s'ajuste en function de la valeur notée dans la cellule A1. Et ainsi de suite jusqu'à GA7
Mon objectif est de rendre pilotante la largeur des colonnes par le biais d'une valeur fixe que je determine.
Je suis ouvert à toute solution fonctionnelle (formule ou VBA)
Dans tous les cas, mais surtout dans le VBA, il me faudra svp des explication bien détaillées car je n'ai aucune notion dans ce language. :p
Merci à tous :)
Bien bonne journée !
Cannonride
A voir également:
- Excel largeur colonne en fonction valeur
- Déplacer colonne excel - Guide
- Trier colonne excel - Guide
- Fonction si et excel - Guide
- Liste déroulante excel - Guide
- Formule somme excel colonne - Guide
2 réponses
Non, ça n'existe pas.
Mais à ta place, je ferais ceci :
- Insérer une ligne sous la ligne 1
- La mettre au format de police calibri 11
- Saisir la formule =REPT("m";8:8/10-2) dans les cellules A2 à GA2
- Sélectionner toutes les colonnes et faire un ajustement automatique de la largeur de colonnes (en faisant un double clic sur le trait séparant 2 lettres désignant des colonnes).
Cela fonctionne jusqu'à une largeur de 40 ; en dessous, il faut ajuster manuellement.
https://www.cjoint.com/c/FKEedFKZKRK
Mais à ta place, je ferais ceci :
- Insérer une ligne sous la ligne 1
- La mettre au format de police calibri 11
- Saisir la formule =REPT("m";8:8/10-2) dans les cellules A2 à GA2
- Sélectionner toutes les colonnes et faire un ajustement automatique de la largeur de colonnes (en faisant un double clic sur le trait séparant 2 lettres désignant des colonnes).
Cela fonctionne jusqu'à une largeur de 40 ; en dessous, il faut ajuster manuellement.
. Tu peux ensuite réduire la ligne 2 à une hauteur de 1 pixel.
https://www.cjoint.com/c/FKEedFKZKRK
Bonjour Cannonride,
Je te propose ce code VBA (à mettre dans Module1) :
Tu pourras voir que ça marchera même avec une largeur comme
10,75 (mais qui sera ajustée automatiquement à 10,78).
« width » est le mot anglais pour « largeur », et donc :
« ColumnWidth » est : largeur de la colonne.
Le code est valable pour la ligne 7, car c'est par rapport à [A7] ;
pour les colonnes : à partir de la colonne A, puis vers la droite :
arrêt dès la 1ère cellule vide rencontrée ; donc tu peux utiliser
le même code VBA si tu continues à droite de GA7.
Si ton problème est réglé, merci d'aller en haut de page
pour cliquer sur « Marquer comme résolu ».
Cordialement. :)
PS : Bonjour à Raymond en passant. ;)
Je te propose ce code VBA (à mettre dans Module1) :
Option Explicit
Sub Essai()
Dim cellX As Range, i As Integer: Application.ScreenUpdating = False
Do
Set cellX = [A7].Offset(, i): If cellX = "" Then Exit Do
i = i + 1: Columns(i).ColumnWidth = cellX
Loop
End Sub
Tu pourras voir que ça marchera même avec une largeur comme
10,75 (mais qui sera ajustée automatiquement à 10,78).
« width » est le mot anglais pour « largeur », et donc :
« ColumnWidth » est : largeur de la colonne.
Le code est valable pour la ligne 7, car c'est par rapport à [A7] ;
pour les colonnes : à partir de la colonne A, puis vers la droite :
arrêt dès la 1ère cellule vide rencontrée ; donc tu peux utiliser
le même code VBA si tu continues à droite de GA7.
Si ton problème est réglé, merci d'aller en haut de page
pour cliquer sur « Marquer comme résolu ».
Cordialement. :)
PS : Bonjour à Raymond en passant. ;)
J'avais testé une solution du genre en ecrivant des "i" en grandes quantités. Mais étant donné que c'est un document professionnel, je prefere faire les choses proprement.
Amicalement,
Cannonride.