ajustement des textes dans des cellules fusionnées

chaelie2015

XLDnaute Accro
Bonjour forum

Quelqu’un peut m’expliquer comment faire pour ajuster les textes dans des cellules fusionnées

Dans mon exemple ne s’afficher pas complet et quand je mets « aperçu avant l’impression » il s’affiche bien ??????
merci
 

Pièces jointes

  • CHARLIE AJUSTEMENT.xlsx
    9.5 KB · Affichages: 48

eddy1975

XLDnaute Occasionnel
Re,
Les cellules sont fusionnées de la colonne A à X avec un alignement à droite. Voilà ce que j'ai en aperçu.
J'ai supprimé le mot "par" en doublon sur la deuxième ligne.
Dis mois ce qui ne te va pas par rapport à cette capture.
@+
upload_2017-3-19_11-39-39.png
 

DoubleZero

XLDnaute Barbatruc
Bonjour, chaelie2015, eddy1975, le Forum,

En attendant mieux et selon le nombre de caractères...
Code:
Option Explicit
Sub Ajuster()
    Dim c As Range
    For Each c In Columns(2).SpecialCells(xlCellTypeConstants)
        If Len(c) > 85 Then
            With c
                .RowHeight = 37
                .HorizontalAlignment = xlLeft
                .VerticalAlignment = xlTop
                .WrapText = True
            End With
        End If
    Next
End Sub
A bientôt :)
 

chris

XLDnaute Barbatruc
Bonjour

Excel n'est pas 100% WysiWyg : que les cellules soient ou non fusionnées, on a le problème, lié de plus au coeff de zoom.

Cependant quand les cellules ne sont pas fusionnées, elles débordent à l'affichage sur celle de droite (et/ou gauche selon l'alignement) si celles-ci sont vides.

A 90% de zoom cela s'affiche bien chez moi

Edit : bouh, je tape à côté du clavier...
 
Dernière édition:

chris

XLDnaute Barbatruc
Bonjour à tous

En ouvrant le fichier posté en #1, sans toucher à rien à part le zoom
Comme déjà dit cela, dépend de plein de paramètres d'affichages et peut-être aussi de l'imprimante (pilote), Excel n'étant pas Wysiwyg.
Il faut trouver le meilleur compromis : soit élargir les colonnes, soit jouer sur le zoom. Un des compromis permet un affichage proche de l'impression...
upload_2017-3-19_14-20-9.png
 

job75

XLDnaute Barbatruc
Bonjour chaelie2015, eddy1975, DoubleZero, chris, Lone-wolf,

Dans cette solution VBA l'astuce consiste à utiliser une TextBox auxiliaire (masquée) :
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Column <> 2 Then Exit Sub 'colonne B
Application.ScreenUpdating = False
Application.DisplayAlerts = False
With TextBox1
  .Visible = False
  .AutoSize = False
  .Font.Name = ActiveCell.Font.Name
  .Font.Size = ActiveCell.Font.Size
  .Width = 5000
  .Value = ActiveCell
  .AutoSize = True
End With
ActiveCell.UnMerge
While ActiveCell.MergeArea.Width < TextBox1.Width
  Range(ActiveCell, ActiveCell.Offset(, 1)).Merge
Wend
ActiveCell.MergeArea.Select
End Sub
Fichier joint.

A+
 

Pièces jointes

  • CHARLIE AJUSTEMENT VBA(1).xlsm
    31.8 KB · Affichages: 37

job75

XLDnaute Barbatruc
Re,

Dans une TextBox il y a des marges.

On peut peaufiner en en tenant compte :
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Column <> 2 Then Exit Sub 'colonne B
Dim marge#
Application.ScreenUpdating = False
Application.DisplayAlerts = False
With TextBox1
  .Visible = False
  .AutoSize = False
  .Font.Name = ActiveCell.Font.Name
  .Font.Size = ActiveCell.Font.Size
  TextBox1 = ""
  .AutoSize = True
  marge = TextBox1.Width - 1 'on conserve une petite marge de 1 point
  .AutoSize = False
  .Width = 5000
  .Value = ActiveCell
  .AutoSize = True
End With
ActiveCell.UnMerge
While ActiveCell.MergeArea.Width < TextBox1.Width - marge
  Range(ActiveCell, ActiveCell.Offset(, 1)).Merge
Wend
ActiveCell.MergeArea.Select
End Sub
Fichier (2).

A+
 

Pièces jointes

  • CHARLIE AJUSTEMENT VBA(2).xlsm
    32.2 KB · Affichages: 39

Discussions similaires

Réponses
2
Affichages
835

Statistiques des forums

Discussions
311 709
Messages
2 081 756
Membres
101 812
dernier inscrit
trufu