72 votes

Comment faire des cellules carrées parfaites dans Excel ?

Dans Microsoft Excel,

texte alternatif

Je veux faire en sorte 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 ligne : 15
Largeur de colonne : 8.43

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

Les mettre tous les deux à 8.43 me donne ceci :

texte alternatif

Maintenant, que devrais-je faire ?

5voto

user467579 Points 31

J'ai déterminé qu'un carré peut être réalisé avec un rapport de 7,25 hauteurs de ligne 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 être conscient 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. En général, les pixels sont plus larges que hauts.

Regardez l'image suivante :

entrez la description de l'image ici

Chaque sous-pixel rouge, vert et bleu constitue 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, les 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 la façon dont cette réponse se rapporte à la question, sauf que les deux mentionnent le concept d'un "carré".

2voto

Nick Holt Points 12945

Si vous vouliez le faire pour toute la feuille, 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'un des séparateurs d'en-tête de colonne et faites-le glisser à la taille souhaitée, en notant le nombre de pixels pour la largeur de cellule résultante (j'utilise Excel 2007, qui montre ceci); faites de même pour l'un des séparateurs d'étiquette de ligne, en le faisant correspondre à la largeur de colonne en pixels. Cela devrait rendre toutes les cellules de la feuille en boîtes. Ce qui, bien sûr, n'est pas ce que vous avez demandé, mais j'espérais 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 quadrillé dans Excel voir http://www.erlandsendata.no/english/index.php?d=envbawssetrowcol si vous voulez des cm ou des pouces

    Set Cursheet = FeuilleActive

    'ne pas rendre la personne folle en vous 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 fait, 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 par simple essai-erreur.

Le code fonctionne pour les 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 MakeCellSquareByColumn()
    Selection.RowHeight = Selection.Width / Selection.Columns.Count
    Selection.ColumnWidth = (((Selection.Width / Selection.Columns.Count) / 0.75 - 5) / 7)
End Sub

Sub MakeCellSquareByRow()
    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 changez le type ou la taille de la police. Cela est dû à la façon dont Excel calcule la largeur de la colonne. Voir: https://support.microsoft.com/en-us/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