72 votes

Comment faire des cellules des carrés parfaits dans Excel?

Dans Microsoft Excel,

texte alternatif

Je veux que la hauteur des trois premières lignes et des quatre premières colonnes (12 cellules dans le coin supérieur gauche) soit telle que ces cellules soient des carrés. Comment cela peut-il être fait?


Étonnamment, Excel indique :

Hauteur de la ligne : 15
Largeur de la colonne : 8,43

Donc, ils ne sont pas à la même échelle.

En faisant les deux 8,43, cela me donne ceci :

texte alternatif

Maintenant, que dois-je faire?

5voto

user467579 Points 31

J'ai déterminé qu'un carré peut être fait avec un ratio de hauteur de 7,25 rangées pour chaque 1,0 point de largeur de colonne.

0 votes

... pour moi, c'est .ColumnWidth = .RowHeight / 7 mais +1 pour l'idée d'utiliser simplement un ratio.

4voto

Keltari Points 67159

Vous devez savoir que ce qui est mathématiquement un carré et ce qui est visuellement un carré sont différents. Tous les moniteurs ne sont pas fabriqués de la même manière. Typiquement, les pixels sont plus larges que hauts.

Regardez l'image suivante:

entrer la description de l'image ici

Chaque sous-pixel rouge, vert et bleu composent le pixel entier. Comme vous pouvez le voir, la combinaison des 3 est plus large que la hauteur d'un sous-pixel. Dans la plupart des cas, la différence est subtile et la plupart des gens pourraient ne pas la remarquer. Cependant, dans certains cas, certaines personnes le remarquent.

2 votes

Cette image est parfaite si quelqu'un veut une migraine :)

0 votes

Je n'ai absolument aucune idée de comment cette réponse est liée à la question, sauf que les deux mentions le concept d'un "carré".

2voto

Nick Holt Points 12945

Si vous souhaitiez le faire pour l'ensemble du tableau, vous pourriez utiliser ce truc - qui peut être utile de toute façon : cliquez sur la case à gauche de l'en-tête de colonne A pour sélectionner toutes les cellules ; cliquez sur l'une des séparations d'en-tête de colonne et faites-la glisser à la taille souhaitée, en notant le nombre de pixels pour la largeur de cellule résultante (j'utilise Excel 2007, qui affiche ceci) ; faites de même pour l'une des séparations d'étiquettes de ligne, en l'adaptant à la largeur de colonne en pixels. Cela devrait faire de toutes les cellules du tableau des boîtes. Ce qui, bien sûr, n'est pas ce que vous avez demandé, mais j'avais espéré que ce truc fonctionnerait avec un sous-ensemble de cellules. Malheureusement, ce n'est pas le cas.

2voto

Maha Points 610

Voici une solution VBA.

Private Sub MakeSquareCells()

'// Créez du papier graphique dans Excel voir   http://www.erlandsendata.no/english/index.php?d=envbawssetrowcol   si vous voulez cm ou pouces

    Set Cursheet = FeuilleActive

    'ne rends pas la personne folle en te regardant travailler
    UpdateScreen = Application.ScreenUpdating
    Application.ScreenUpdating = False
    With wksToHaveSquareCells
        .Columns.ColumnWidth = 5 '// minimum 2, max 400 ; au-dessus de 7 --> le zoom ne fonctionne pas bien
        .Rows.EntireRow.RowHeight = .Cells(1).Width
        '// ActiveWindow.Zoom = true
    End With

    Application.ScreenUpdating = UpdateScreen
    Cursheet.Activate           '// Réactiver la feuille qui était active à l'entrée de cette subroutine

End Sub

0 votes

Qu'est-ce que wksToHaveSquareCells ?

2voto

user609057 Points 21

En réalité, j'ai déjà rencontré le même problème par le passé. Ce qui fonctionne le mieux pour moi est le code VBA suivant. J'ai trouvé la relation linéaire simplement par essai et erreur.

Le code fonctionne pour des cellules individuelles, mais aussi pour une sélection. Dans ce dernier cas, les carrés sont basés sur la largeur ou la hauteur totale de la sélection.

Sub RendreCelluleCarreeParColonne()
    Selection.RowHeight = Selection.Width / Selection.Columns.Count
    Selection.ColumnWidth = (((Selection.Width / Selection.Columns.Count) / 0.75 - 5) / 7)
End Sub

Sub RendreCelluleCarreeParLigne()
    Selection.ColumnWidth = (((Selection.Height / Selection.Rows.Count) / 0.75 - 5) / 7)
    Selection.RowHeight = Selection.Height / Selection.Rows.Count
End Sub

Vous pouvez placer ces macros dans un Module et leur attribuer des boutons dans la barre d'outils d'accès rapide

Notez que les carrés disparaissent (par un changement de largeur de colonne) lorsque vous modifiez le type ou la taille de la police. Cela est dû à la façon dont Excel calcule la largeur des colonnes. Voir : https://support.microsoft.com/fr-fr/help/214123/description-of-how-column-widths-are-determined-in-excel

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X