> Tous les forums > Forum Bureautique
 unité de largeur des colones EXCEL 2003
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
philbordo
  Posté le 22/02/2007 @ 21:39 
Aller en bas de la page 
Petit astucien

Bonjour,

Je voudrais savoir quelle est l'unité de mesure des colonnes ? Est-il possible de convertir en cm ?

merci

Publicité
ferrand
 Posté le 23/02/2007 à 01:06 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Salut,

Je travaille sur Excel 2000 mais je ne pense pas que 2003 ait innové en la matière : la largeur des colonnes est calculée en fonction des caractères numériques de la police par défaut (nombre de caractères de largeur moyenne). C'est spécifique aux colonnes, les hauteurs de lignes sont affichées en points (unité générale de positionnement et dimensionnement dans les fenêtres). C'est pas marrant pour faire des ajustements précis. Impossible à ma connaissance de choisir le cm comme unité.

Je te livre une méthode empirique pour fixer la largeur d'une colonne en cm au moyen d'une macro :

Sub LargeurColonne()
ActiveCell.EntireColumn.ColumnWidth = (Application.CentimetersToPoints(2) - 3.75) / 5.25
End Sub

Cette macro définit la largeur de la colonne ou se trouve la cellule active à 2 cm (approximativement). Pour d'autres largeurs modifier la valeur en rouge.

On peut lire la largeur en points d'une colonne (1 point = 1/72 de pouce si mes souvenirs sont bons, et 1 pouce = 2,54 cm), on peut convertir des centimètres en points, mais on ne peut pas affecter cette valeur en points à la largeur de la colonne (propriété en lecture seule). On opère donc une conversion (empirique) en unités de largeur de colonne : la valeur en unités se convertit en points en multipliant par 5,25 et en ajoutant 3,75 au total. Le calcul inverse permet de convertir les points en unités de largeur, valeur que l'on affecte à la colonne.

A savoir que la largeur finale ne correspondra pas exactement au résultat du calcul car sa fixation n'est pas continue : il y a un nombre limité de paliers de fixation de largeur entre 2 unités entières (pour le constater, fixer manuellement un valeur à 2 décimales quelconques et vérifier ensuite la largeur, à moins de tomber pile sur un palier on notera un léger écart). D'autre part, les valeurs en points affectables s'incrémentent par paliers de 0,25.

Ceci étant à l'échelle d'une feuille A4 les résultats sont acceptables d'après mes constats.

Si quelqu'un a une meilleure méthode, plus précise, je suis preneur.

galopin01
 Posté le 23/02/2007 à 05:17 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonjour,
Il n'y en a pas. Comme tu l'as dit il est impossible de travailler avec précision avec Excel pour faire un quadrillage par exemple : Excel n'est pas un logiciel de dessin mais de calcul !

A+

g
 Posté le 23/02/2007 à 07:59 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour,

Les macros suivantes permettent de définir la heuteur des rangées et la largeur des colonnes à un "poil" près.
Je ne me souviens pas où je les ai trouvées, peut être galopin01 ?
Je les ai liées à un bouton chacune, et ne les utilise plus car comme dit galopin01 Excel est avant tout un logiciel de calcul. Mais si ça peut être utile, c'est avec plaisir :

Sub RangéesEnCm()
Dim cm As Single
cm = Application.InputBox("Hauteur de la rangée en cm.", Type:=1)
If cm Then
Selection.RowHeight = Application.CentimetersToPoints(cm)
End If
End Sub


Sub ColonnesEnCm()
Dim cm As Single, points As Single
Dim count As Single
Application.ScreenUpdating = False
cm = Application.InputBox("Largeur de la colonne en cm.", Type:=1)
If cm = False Then Exit Sub
points = Application.CentimetersToPoints(cm)
savewidth = ActiveCell.ColumnWidth
ActiveCell.ColumnWidth = 255
If points > ActiveCell.Width Then
MsgBox "La largeur de" & cm & "est trop large" & Chr(10) & _
"la valeur maxi est de " & _
Format(ActiveCell.Width / 28.3464566929134, _
"0.00"), vbOKOnly + vbExclamation, "Largeur non valable"
ActiveCell.ColumnWidth = savewidth
Exit Sub
End If
lowerwidth = 0
upwidth = 255
ActiveCell.ColumnWidth = 127.5
curwidth = ActiveCell.ColumnWidth
count = 0
While (ActiveCell.Width <> points) And (count < 20)
If ActiveCell.Width < points Then
lowerwidth = curwidth
Selection.ColumnWidth = (curwidth + upwidth) / 2
Else
upwidth = curwidth
Selection.ColumnWidth = (curwidth + lowerwidth) / 2
End If
curwidth = ActiveCell.ColumnWidth
count = count + 1
Wend
End Sub

Bonne journée.

ferrand
 Posté le 23/02/2007 à 08:59 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Salut g,

Merci pour ton calcul de colonne, l'approche est intéressante, j'analyserai de plus près quand j'aurais un moment car je voudrais savoir pourquoi 20 itérations (détermination expérimentale ou autre raison). Pour les hauteurs de ligne, pas de problème, elles se définissent en points.

Ceci dit, il est vrai que galopin a raison (salut !) : définir la largeur de colonne en cm n'a qu'un intérêt limité dans une application de calcul, la largeur adéquate est celle qui permet d'afficher correctement le contenu et pour la présentation ce sont les valeurs relatives des largeurs de colonnes les unes par rapport aux autres qui ont une importance (on peut ensuite ajuster sur une page pour l'impression). Pour ma part, je n'avais rencontré ce problème qu'une fois : pour dessiner des cartes sur une grille composée de petits carrés, il fallait donc que je définisse une largeur de colonne égale à la hauteur de ligne. En fait, j'ai fixé d'abord la largeur de colonne qui me convenait et utilisé une petite macro pour égaliser les hauteurs de ligne à cette largeur, ce qui ne présentait plus de difficulté (mais à quoi je n'avais pas pensé au départ, m'embarquant dans une masse de calcul inutiles dont j'ai restitué quelques uns des résultats ici…)

Je voudrais à l'occasion répondre à galopin concernant sa remarque (plus rien à voir avec la largeur de colonne) que j'aime assez dessiner avec Excel. Quand le dessin découle de résultats de calculs, le tableur permet une mise en forme optimale des données calculées et VBA de matérialiser ces données en dessin avec une excellente précision (je m'en sers pour dessiner des "horoscopes" (carte du ciel) pour lesquels les outils de dessin d'Excel sont largement suffisant).

A plus.

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Sujets relatifs
Excel 2003, insertion ligne vierge
Largeur Hauteur colonnes en mm dans Excel
Excel 2003 : sauvegarder la moyenne
excel 2003 signaler l'action d'un filtre
Comment recuperer des fichiers Excel 2007 avec Excel 2003
Problème ouverture de fichier protégé dans Excel 2003
passer d'Excel 2010 à 2003
Perte hyperlien Excel 2003 après restauration système
Perte hyperliens Excel 2003 sous Vista Edition Familiale
Amélioration d'une macro sous excel 97 ou 2003
Plus de sujets relatifs à unité de largeur des colones EXCEL 2003
 > Tous les forums > Forum Bureautique