Signaler

Dimensionner la largeur de colonnes à partir d'une cellule [Résolu]

Posez votre question Cannonride 4Messages postés lundi 20 avril 2015Date d'inscription 1 décembre 2016 Dernière intervention - Dernière réponse le 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
Afficher la suite 
Utile
+0
moins plus
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
.
http://www.cjoint.com/c/FKEedFKZKRK
Cannonride 4Messages postés lundi 20 avril 2015Date d'inscription 1 décembre 2016 Dernière intervention - 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.
Répondre
Ajouter un commentaire
Utile
+0
moins plus
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.  ;)
 
Cannonride 4Messages postés lundi 20 avril 2015Date d'inscription 1 décembre 2016 Dernière intervention - 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.
Répondre
Ajouter un commentaire

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !