Ajuster automatiquement la hauteur d'une cellule fusionnée dans Excel 2010


1

Nous avons une feuille de calcul Excel contenant différentes cellules fusionnées et non fusionnées. Elle apparaît donc sous la forme d'un formulaire papier. En bas, certaines cellules sont fusionnées sur toute la page car elles peuvent contenir beaucoup de données. Toutefois, si quelqu'un écrit plus que la largeur de la cellule ne peut en contenir, le texte est enveloppé mais ne l'affiche pas (le retour à la ligne est activé sur ces cellules). Même si vous double-cliquez sur la ligne entre les cellules (comme vous le feriez pour ajuster automatiquement la hauteur), il restera à une seule ligne de haut. Je peux ajuster manuellement la hauteur, mais comme la feuille de calcul est normalement verrouillée, les utilisateurs ne peuvent pas le faire.

Est-il possible de le faire ajuster automatiquement sur les cellules fusionnées? Un réglage serait mieux, mais VBA est OK aussi. J'ai essayé le code comme Cells.EntireRow.AutoFitmais cela ne va toujours qu'à une seule ligne de haut.

Réponses:


4

Voici un article du blog sur les contextes, intitulé heureusement "Taille de rangée de cellules fusionnées avec ajustement automatique"

Je vous invite à lire le post en entier, mais voici le code:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim MergeWidth As Single
Dim cM As Range
Dim AutoFitRng As Range
Dim CWidth As Double
Dim NewRowHt As Double
Dim str01 As String
str01 = "OrderNote"
  If Not Intersect(Target, Range(str01)) Is Nothing Then
    Application.ScreenUpdating = False
    On Error Resume Next
    Set AutoFitRng = Range(Range(str01).MergeArea.Address)

    With AutoFitRng
      .MergeCells = False
      CWidth = .Cells(1).ColumnWidth
      MergeWidth = 0
      For Each cM In AutoFitRng
          cM.WrapText = True
          MergeWidth = cM.ColumnWidth + MergeWidth
      Next
      'small adjustment to temporary width
      MergeWidth = MergeWidth + AutoFitRng.Cells.Count * 0.66
      .Cells(1).ColumnWidth = MergeWidth
      .EntireRow.AutoFit
      NewRowHt = .RowHeight
      .Cells(1).ColumnWidth = CWidth
      .MergeCells = True
      .RowHeight = NewRowHt
    End With
    Application.ScreenUpdating = True
  End If

End Sub

2
Fonctionne comme un charme. Désolé pour le retard accepter. Comme cela semble toujours arriver, il était "urgent" quand ils sont venus me voir avec le problème, ils ne semblaient plus s'en soucier ensuite.
techturtle

0

J'ai créé un complément pour l'ajustement automatique de la hauteur de ligne de plusieurs cellules fusionnées. Veuillez utiliser ceci si vous souhaitez ajuster automatiquement la taille des lignes. [Libérez Ver2.6 · toowaki / AutoFitRowEx · GitHub] https://github.com/toowaki/AutoFitRowEx/releases/tag/2.6.2


Bienvenue sur Super User! C'est bien que vous ayez écrit un complément pour résoudre le problème, mais veuillez lire comment recommander un logiciel dans les réponses , en particulier les éléments en gras ; modifiez ensuite votre réponse pour suivre les instructions fournies. Merci!
Bertieb
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.