Note: The other languages of the website are Google-translated. Back to English

Comment ajuster automatiquement la hauteur de ligne des cellules fusionnées dans Excel?

Dans Excel, nous pouvons rapidement ajuster la hauteur de la ligne en fonction du contenu de la cellule en utilisant le Ajuster la hauteur de ligne fonctionnalité, mais cette fonction ignore complètement les cellules fusionnées. C'est-à-dire que vous ne pouvez pas appliquer le Ajuster la hauteur de ligne pour redimensionner la hauteur de ligne des cellules fusionnées, vous devez ajuster manuellement la hauteur de ligne des cellules fusionnées une par une. Dans cet article, je peux présenter quelques méthodes rapides pour résoudre ce problème.

Ajuster automatiquement la hauteur de ligne des cellules fusionnées avec le code VBA

Onglet Office Activez la modification et la navigation par onglets dans Office et simplifiez considérablement votre travail ...
Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%
  • Réutiliser n'importe quoi: Ajoutez les formules, les graphiques et tout autre élément les plus utilisés ou les plus complexes à vos favoris et réutilisez-les rapidement à l'avenir.
  • Plus de 20 fonctionnalités de texte: Extraire le numéro de la chaîne de texte; Extraire ou supprimer une partie des textes; Convertissez les nombres et les devises en mots anglais.
  • Outils de fusion: Plusieurs classeurs et feuilles en un seul; Fusionner plusieurs cellules / lignes / colonnes sans perdre de données; Fusionner les lignes en double et la somme.
  • Outils de fractionnement: Diviser les données en plusieurs feuilles en fonction de la valeur; Un classeur vers plusieurs fichiers Excel, PDF ou CSV; Une colonne à plusieurs colonnes.
  • Coller sauter Lignes cachées / filtrées; Compte et somme par couleur d'arrière-plan; Envoyez des e-mails personnalisés à plusieurs destinataires en masse.
  • Super filtre: Créez des schémas de filtres avancés et appliquez-les à toutes les feuilles; Sort par semaine, jour, fréquence et plus encore; Filtre par gras, formules, commentaire ...
  • Plus de 300 fonctionnalités puissantes; Fonctionne avec Office 2007-2019 et 365; Prend en charge toutes les langues; Déploiement facile dans votre entreprise ou organisation.

flèche bleue bulle droite Ajuster automatiquement la hauteur de ligne des cellules fusionnées avec le code VBA


En supposant que j'ai une feuille de calcul avec des cellules fusionnées comme illustré ci-dessous, et que je dois maintenant redimensionner la hauteur de la ligne de cellule pour afficher tout le contenu, le code VBA ci-dessous peut vous aider à ajuster automatiquement la hauteur de ligne de plusieurs cellules fusionnées, veuillez le faire comme suit:

doc-autofit-fusion-cellules-1

1. Maintenez le ALT + F11 clés, et il ouvre le Fenêtre Microsoft Visual Basic pour Applications.

2Cliquez sur insérer > Moduleet collez le code suivant dans le Fenêtre du module.

Code VBA: ajustement automatique de la hauteur de ligne de plusieurs cellules fusionnées
Option Explicit
Public Sub AutoFitAll()
  Call AutoFitMergedCells(Range("a1:b2"))
   Call AutoFitMergedCells(Range("c4:d6"))
    Call AutoFitMergedCells(Range("e1:e3"))
End Sub
Public Sub AutoFitMergedCells(oRange As Range)
  Dim tHeight As Integer
  Dim iPtr As Integer
  Dim oldWidth As Single
  Dim oldZZWidth As Single
  Dim newWidth As Single
  Dim newHeight As Single
  With Sheets("Sheet4")
    oldWidth = 0
    For iPtr = 1 To oRange.Columns.Count
      oldWidth = oldWidth + .Cells(1, oRange.Column + iPtr - 1).ColumnWidth
    Next iPtr
    oldWidth = .Cells(1, oRange.Column).ColumnWidth + .Cells(1, oRange.Column + 1).ColumnWidth
    oRange.MergeCells = False
    newWidth = Len(.Cells(oRange.Row, oRange.Column).Value)
    oldZZWidth = .Range("ZZ1").ColumnWidth
    .Range("ZZ1") = Left(.Cells(oRange.Row, oRange.Column).Value, newWidth)
    .Range("ZZ1").WrapText = True
    .Columns("ZZ").ColumnWidth = oldWidth
    .Rows("1").EntireRow.AutoFit
    newHeight = .Rows("1").RowHeight / oRange.Rows.Count
    .Rows(CStr(oRange.Row) & ":" & CStr(oRange.Row + oRange.Rows.Count - 1)).RowHeight = newHeight
    oRange.MergeCells = True
    oRange.WrapText = True
    .Range("ZZ1").ClearContents
    .Range("ZZ1").ColumnWidth = oldZZWidth
  End With
End Sub

Notes:

(1.) Dans le code ci-dessus, vous pouvez ajouter de nouvelles plages simplement copier Appelez AutoFitMergedCells (Range ("a1: b2")) script plusieurs fois que vous le souhaitez et modifiez les plages de cellules fusionnées selon vos besoins.

(2.) Et vous devriez changer le nom de la feuille de calcul actuelle Sheet4 au nom de votre feuille utilisée.

3. Puis appuyez F5 clé pour exécuter ce code, et maintenant, vous pouvez voir que toutes les cellules fusionnées ont été automatiquement ajustées à leur contenu de cellule, voir capture d'écran:

doc-autofit-fusion-cellules-1


Article connexe:

Comment ajuster automatiquement la largeur de la colonne dans Excel?


Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtréeplus
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammesplus
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellulesplus
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDFplus
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2019 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement votre travail

  • Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!
bas de cabine

<p >


Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtréeplus
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammesplus
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellulesplus
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDFplus
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2019 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement votre travail

  • Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!
bas de cabine
</ p >

Commentaires (26)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
Ce code entraîne la suppression de lignes supplémentaires. J'ai des chiffres sur le côté gauche et les colonnes à côté sont des données fusionnées/encapsulées. Par exemple, dans une description de poste, listez les responsabilités avec des numéros suivis d'une explication des tâches. Des pensées? Merci.
Ce commentaire a été minimisé par le modérateur sur le site
J'ai saisi ce qui suit, mais j'obtiens un message d'erreur "Erreur d'exécution '13' : non-concordance de type". Option Explicit Public Sub AutoFitAll() Appeler AutoFitMergedCells(Range("a8:h8")) Appeler AutoFitMergedCells(Range("a10:h10")) Appeler AutoFitMergedCells(Range("a11:h11")) Appeler AutoFitMergedCells(Range("b17 :h17")) Appelez AutoFitMergedCells(Range("b22:h22")) Appelez AutoFitMergedCells(Range("b24:h24")) Appelez AutoFitMergedCells(Range("a26:h26")) Appelez AutoFitMergedCells(Range("a28:h28 ")) End Sub Public Sub AutoFitMergedCells(oRange As Range) Dim tHeight As Integer Dim iPtr As Integer Dim oldWidth As Single Dim oldZZWidth As Single Dim newWidth As Single Dim newHeight As Single With Sheets ("Lettre d'offre") oldWidth = 0 For iPtr = 1 à oRange.Columns.Count oldWidth = oldWidth + .Cells(1, oRange.Column + iPtr - 1).ColumnWidth Next iPtr oldWidth = .Cells(1, oRange.Column).ColumnWidth + .Cells(1, oRange. Column + 1).ColumnWidth oRange.MergeCells = False newWidth = Len(.Cells(oRange.Row, oRange.Column).Value) oldZZWidth = .Range("ZZ1").ColumnWidth .Range("ZZ1") = Left( .Cellules(oPlage.Ligne, oPlage.Colonne).Valeur, n ewWidth) .Range("ZZ1").WrapText = True .Columns("ZZ").ColumnWidth = oldWidth .Rows("1").EntireRow.AutoFit newHeight = .Rows("1").rowHeight / oRange.Rows .Count .Rows(CStr(oRange.Row) & ":" & CStr(oRange.Row + oRange.Rows.Count - 1)).rowHeight = newHeight oRange.MergeCells = True oRange.WrapText = True .Range("ZZ1 ").ClearContents .Range("ZZ1").ColumnWidth = oldZZWidth End With End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Merci beaucoup pour le code ! Cela fonctionne finalement, mais... Ma hauteur de rangée devient trop haute. Existe-t-il une solution pour ? Merci beaucoup! Ceci est mon code: Option Explicit Public Sub AutoFitAll() Appeler AutoFitMergedCells(Range("b162:i162")) Appeler AutoFitMergedCells(Range("b166:i166")) Appeler AutoFitMergedCells(Range("b168:i168")) Appeler AutoFitMergedCells(Range("b170 :i170")) Appeler AutoFitMergedCells(Range("b172:i172")) End Sub Public Sub AutoFitMergedCells(oRange As Range) Dim tHeight As Integer Dim iPtr As Integer Dim oldWidth As Single Dim oldZZWidth As Single Dim newWidth As Single Dim newHeight As Single With Sheets("Rapport") oldWidth = 0 For iPtr = 1 To oRange.Columns.Count oldWidth = oldWidth + .Cells(1, oRange.Column + iPtr - 1).ColumnWidth Next iPtr oldWidth = .Cells(1, oRange .Column).ColumnWidth + .Cells(1, oRange.Column + 1).ColumnWidth oRange.MergeCells = Faux newWidth = Len(.Cells(oRange.Row, oRange.Column).Value) oldZZWidth = .Range("ZZ1" ).ColumnWidth .Range("ZZ1") = Gauche(.Cells(oRange.Row, oRange.Column).Value, newWidth) .Range("ZZ1").WrapText = True .Columns("ZZ").ColumnWidth = oldWidth .Rows("1").EntireRow.AutoFit newHeight = . Rows("1").RowHeight / oRange.Rows.Count .Rows(CStr(oRange.Row) & ":" & CStr(oRange.Row + oRange.Rows.Count - 1)).RowHeight = newHeight oRange.MergeCells = True oRange.WrapText = True .Range("ZZ1").ClearContents .Range("ZZ1").ColumnWidth = oldZZWidth End With End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour Danielle, j'ai rencontré le même problème lors de l'exécution de la macro une deuxième fois dans la première rangée. Le code utilise .Rows("1").EntireRow.AutoFit (ligne 26) et si vous exécutez sur, disons A1: B1, votre cellule A1 a WordWrapping défini sur ON à partir de la ligne 30. La solution la plus simple semble être de changer WordWrapping off au début du sous-marin. Ajoutez oRange.WrapText = True entre les lignes 13 et 14 et vous devriez être OK.
Ce commentaire a été minimisé par le modérateur sur le site
Parce que la cellule "helper" de ZZ1 utilise la première ligne (colonne ZZ, ligne 1), s'il y a QUELQUE CHOSE dans la ligne 1 plus grand que le texte dans la ligne que vous souhaitez ajuster, votre hauteur résultante sera plus grande que ce que vous voulez . Pour résoudre ce problème, j'ai fait de la cellule d'assistance la même colonne que la première colonne de l'oRange et j'ai défini le numéro de ligne sur la toute dernière ligne d'Excel. J'espère que cela vous aide comme ça me fait. 8) Mon code: Option Explicit Public Sub AutoFitAll() Call AutoFitMergedCells(Range("A2:Z2")) End Sub Public Sub AutoFitMergedCells(oRange As Range) Dim tHeight As Integer Dim iPtr As Integer Dim oldWidth As Single Dim oldZZWidth As Single Dim newWidth As Single Dim newHeight As Single With Sheets ("Sheet1") oldWidth = 0 For iPtr = 1 To oRange.Columns.Count oldWidth = oldWidth + .Cells(1, oRange.Column + iPtr - 1).ColumnWidth Next iPtr oldWidth = .Cells(1 , oRange.Column).ColumnWidth + .Cells(1, oRange.Column + 1).ColumnWidth oRange.MergeCells = False newWidth = Len(.Cells(oRange.Row, oRange.Column).Value) oldZZWidth = .Cells(" 1048576", oRange.Column).ColumnWidth .Cells("1048576", oRange.Column) = Gauche(.Cells(oRange.Row, oRange.Column).Value, newWidth) .Cells("1048576", oRange.Column) .WrapText = Vrai. Row) & ":" & CStr(oRange.Row + oRange.Rows.Co unt - 1048576)).RowHeight = newHeight oRange.MergeCells = True oRange.WrapText = True Sous
Ce commentaire a été minimisé par le modérateur sur le site
Merci beaucoup pour le code ! J'ai le même problème avec ce code tel que DANIËLLE_01.
Ce commentaire a été minimisé par le modérateur sur le site
Merci pour le code, à peu près ce dont j'avais besoin. Deux remarques, cependant : 1) lorsque j'exécute la macro dans la même ligne que la cellule "helper" (ZZ1), l'ajustement automatique (ligne 26) va gâcher, car toute la chaîne est insérée dans une cellule étroite. Je recommande d'ajouter oRange.WrapText = False au début (ou de déplacer la cellule d'assistance quelque part à l'écart, si possible). 2) à quoi sert la ligne 19 ? Vous calculez oldWidth aux lignes 16 à 18, mais remplacez ensuite le calcul de la ligne 19, en utilisant seulement deux colonnes. Lorsque j'ai essayé le sous-marin sur des cellules fusionnées à trois colonnes, cela fonctionnait mieux lorsque j'ignorais la ligne ... Merci encore
Ce commentaire a été minimisé par le modérateur sur le site
Merci beaucoup pour le code. Existe-t-il un moyen de faire exécuter la macro dès que vous tapez du texte dans un champ et que vous appuyez sur Entrée ?
Ce commentaire a été minimisé par le modérateur sur le site
Génial mais exactement le même problème que Danielle, les rangées sont trop hautes maintenant. S'il vous plaît quelqu'un aide!
Ce commentaire a été minimisé par le modérateur sur le site
Fonctionne parfaitement, mais les rangées sont trop hautes ! Pouvons-nous résoudre ce problème ?
Ce commentaire a été minimisé par le modérateur sur le site
Merci d'avoir posté ceci, je suis décent avec Excel et je peux généralement comprendre mes ajustements, mais je n'arrive pas à trouver un correctif pour un problème que j'ai, ou s'il en existe un. J'ai d'énormes quantités de données dans les cellules (dépassant la limite de hauteur de cellule unique de 409.5). Le problème est que ce VBA s'exécute avec la même limitation. Ainsi, certaines de mes données sont coupées même si les lignes sont fusionnées et que la tolérance de hauteur de cellule combinée est de 819, car le VBA ajuste la hauteur de cellule en fonction de la cellule ZZ1 unique. Existe-t-il un moyen d'ajuster le code pour qu'il permette à la hauteur de cellule ajustée d'inclure la hauteur disponible dans les lignes fusionnées ou est-ce que je demande l'impossible? Merci.
Ce commentaire a été minimisé par le modérateur sur le site
Merci pour le code. Cependant, la hauteur de mes rangées s'ajuste, mais maintenant c'est suffisant. Comment puis-je rectifier cela ?
Ce commentaire a été minimisé par le modérateur sur le site
Parce que la cellule "helper" de ZZ1 utilise la première ligne (colonne ZZ, ligne 1), s'il y a QUELQUE CHOSE dans la ligne 1 plus grand que le texte dans la ligne que vous souhaitez ajuster, votre hauteur résultante sera plus grande que ce que vous voulez . Pour résoudre ce problème, j'ai fait de la cellule d'assistance la même colonne que la première colonne de l'oRange et j'ai défini le numéro de ligne sur la toute dernière ligne d'Excel. J'espère que cela vous aide comme ça me fait. 8) Mon code: Option Explicit Public Sub AutoFitAll() Call AutoFitMergedCells(Range("A2:Z2")) End Sub Public Sub AutoFitMergedCells(oRange As Range) Dim tHeight As Integer Dim iPtr As Integer Dim oldWidth As Single Dim oldZZWidth As Single Dim newWidth As Single Dim newHeight As Single With Sheets ("Sheet1") oldWidth = 0 For iPtr = 1 To oRange.Columns.Count oldWidth = oldWidth + .Cells(1, oRange.Column + iPtr - 1).ColumnWidth Next iPtr oldWidth = .Cells(1 , oRange.Column).ColumnWidth + .Cells(1, oRange.Column + 1).ColumnWidth oRange.MergeCells = False newWidth = Len(.Cells(oRange.Row, oRange.Column).Value) oldZZWidth = .Cells(" 1048576", oRange.Column).ColumnWidth .Cells("1048576", oRange.Column) = Gauche(.Cells(oRange.Row, oRange.Column).Value, newWidth) .Cells("1048576", oRange.Column) .WrapText = Vrai. Row) & ":" & CStr(oRange.Row + oRange.Rows.Co unt - 1048576)).RowHeight = newHeight oRange.MergeCells = True oRange.WrapText = True Sous
Ce commentaire a été minimisé par le modérateur sur le site
Mon code ne s'exécute même pas. J'obtiens simplement une erreur de compilation lorsque j'essaie d'appeler AutoFitMergedCells - Fonction ou variable attendue ?
Ce commentaire a été minimisé par le modérateur sur le site
J'essaie de comprendre la nécessité de la ligne 19. Vous attribuez à nouveau une valeur à OldWidth. Pouvez-vous s'il vous plaît expliquer?
Ce commentaire a été minimisé par le modérateur sur le site
J'ai créé un complément pour l'ajustement automatique de la hauteur de ligne de plusieurs cellules fusionnées.
Veuillez l'utiliser si vous souhaitez ajuster automatiquement la hauteur de la ligne.
[Release Ver2.6 · toowaki/AutoFitRowEx · GitHub]
https://github.com/toowaki/AutoFitRowEx/releases/tag/2.6.2
Ce commentaire a été minimisé par le modérateur sur le site
C'est très utile, merci !
Ce commentaire a été minimisé par le modérateur sur le site
Je crois que la raison pour laquelle les hauteurs de ligne ne sont pas calculées correctement est liée à ces lignes de code
Pour iPtr = 1 To oRange.Columns.Count
oldWidth = oldWidth + .Cells(1, oRange.Column + iPtr - 1).ColumnWidth
iPtr suivant
oldWidth = .Cells(1, oRange.Column).ColumnWidth + .Cells(1, oRange.Column + 1).ColumnWidth

La variable OldWidth est définie sur la somme des largeurs de colonne dans la plage, mais pour une raison quelconque, elle est réinitialisée uniquement sur la largeur des deux premières colonnes. Les 3 premières lignes de code sont donc rendues redondantes par la 4ème ligne. Lorsque j'ai supprimé la ligne, c'était beaucoup mieux, mais l'autre problème que j'ai trouvé était que vous devez vous assurer que la police et la taille de la police de la cellule temporaire (ZZ1 dans l'exemple de code) doivent correspondre à la police et à la taille des cellules fusionnées ; sinon, le texte ne sera pas renvoyé à la ligne de la même manière que les cellules fusionnées et peut ne pas avoir la bonne hauteur.
Ce commentaire a été minimisé par le modérateur sur le site
ne fonctionne pas, votre mot de passe défini dans votre code ne fonctionne pas dans votre code
Ce commentaire a été minimisé par le modérateur sur le site
Cela ne fonctionne pas pour moi}
Ce commentaire a été minimisé par le modérateur sur le site
Merci, cela m'a aidé avec une feuille dont je n'étais pas satisfait depuis des années.

J'ai un peu changé les choses, mes cellules fusionnées sont toutes dans une colonne, donc j'ai calculé cela en dehors de la boucle et je l'ai transmis. J'ai également inséré un Sheet1 qui est masqué et j'y ai manipulé les colonnes/lignes afin de ne pas affecter la feuille sur laquelle je travaille. Les références devraient probablement être plus explicites :

Public Sub AutoFitMergedCells (oRange As Range, ByVal dblWidth As Double)



Dim dblHeight As Double



Avec oRange.Parent

oRange.MergeCells = False

Sheet1.Range("A1") = oRange.Cells(1, 1).Value

Sheet1.Range("A1").WrapText = True

Sheet1.Columns(1).ColumnWidth = dblWidth

Sheet1.Rows(1).EntireRow.AutoFit

dblHeight = Sheet1.Rows(1).RowHeight / oRange.Rows.Count

oRange.Parent.Rows(oRange.Row).Resize(oRange.Rows.Count).RowHeight = newHeight

oRange.MergeCells = Vrai

oRange.WrapText = Vrai

Sheet1.Range("A1").ClearContents

Terminer par



End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Dang it, copier/coller m'a mordu. De plus, avec des références de feuille explicites, le With n'est pas nécessaire :

Public Sub AutoFitMergedCells (oRange As Range, ByVal dblWidth As Double)



oRange.MergeCells = False

Sheet1.Range("A1") = oRange.Cells(1, 1).Value

Sheet1.Range("A1").WrapText = True

Sheet1.Columns(1).ColumnWidth = dblWidth

Sheet1.Rows(1).EntireRow.AutoFit

oRange.Parent.Rows(oRange.Row).Resize(oRange.Rows.Count).RowHeight _

= Sheet1.Rows(1).RowHeight / oRange.Rows.Count

oRange.MergeCells = Vrai

oRange.WrapText = Vrai



End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Il y a une limite à la taille - si la hauteur totale requise est supérieure à 409.5, il ne fera que ce qui conviendrait à 409.5 et le répartira sur la hauteur des cellules fusionnées et vous ne verrez pas le reste. J'espérais que cela résoudrait les longueurs de texte supérieures à la hauteur de ligne maximale (409.5). Je pense que vous devrez peut-être parcourir et diviser le texte en ce qui peut tenir dans la première hauteur maximale de 409.5, puis mettre le reste dans une autre cellule (ZZ2) et ainsi de suite jusqu'à ce qu'il corresponde, puis compter les lignes dans chaque cellule puis obtenir la hauteur totale requise.
Il n'y a pas encore de commentaires postés ici
TÉLÉCHARGER PLUS
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés