Dimensionner la largeur de colonnes à partir d'une cellule

Résolu/Fermé
Cannonride Messages postés 5 Date d'inscription lundi 20 avril 2015 Statut Membre Dernière intervention 23 octobre 2017 - 30 nov. 2016 à 03:26
Cannonride Messages postés 5 Date d'inscription lundi 20 avril 2015 Statut Membre Dernière intervention 23 octobre 2017 - 1 déc. 2016 à 03:08
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
A voir également:

2 réponses

Raymond PENTIER Messages postés 58378 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 14 avril 2024 17 083
30 nov. 2016 à 05:08
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.
. Tu peux ensuite réduire la ligne 2 à une hauteur de 1 pixel
.
https://www.cjoint.com/c/FKEedFKZKRK
0
Cannonride Messages postés 5 Date d'inscription lundi 20 avril 2015 Statut Membre Dernière intervention 23 octobre 2017
1 déc. 2016 à 03:07
Merci pour ta réponse Raymond.

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.
0
Utilisateur anonyme
30 nov. 2016 à 05:20
Bonjour Cannonride,

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.  ;)
 
0
Cannonride Messages postés 5 Date d'inscription lundi 20 avril 2015 Statut Membre Dernière intervention 23 octobre 2017
1 déc. 2016 à 03:08
Merci pour ta réponse Albkan.

C'est exactement ce que je recherchais C'est PARFAIT ! merci !

Amicalement,
Cannonride.
0