IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Ajustement de cellules fusionnées [Trucs & Astuces]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de cwain
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 218
    Par défaut Ajustement de cellules fusionnées
    Bonjour,

    j'étais sur le point de poster une question quand j'ai trouvé dans mes recherches une macro toute faite résolvant le problème. Je me suis dit que comme il n'y avait rien sur ce sujet dans le forum, ça pourrait être utile à quelqu'un.

    Le problème, c'est que Excel ne permet pas d'ajuster automatiquement la hauteur des cellules fusionnées. Quand on a donc des pages entières de cellules fusionnées à ajuster manuellement, c'est vite gavant...
    Avec le code ci-dessous, le problème est résolu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Sub AutoFitMergedCellRowHeight()
    Dim CurrentRowHeight As Single, MergedCellRgWidth As Single
    Dim CurrCell As Range
    Dim ActiveCellWidth As Single, PossNewRowHeight As Single
    If ActiveCell.MergeCells Then<div style="margin-left:40px">With ActiveCell.MergeArea<div style="margin-left:40px">If .Rows.Count = 1 And .WrapText = True Then<div style="margin-left:40px">Application.ScreenUpdating = False
    CurrentRowHeight = .RowHeight
    ActiveCellWidth = ActiveCell.ColumnWidth
    For Each CurrCell In Selection
    MergedCellRgWidth = CurrCell.ColumnWidth + MergedCellRgWidth
    Next
    .MergeCells = False
    .Cells(1).ColumnWidth = MergedCellRgWidth
    .EntireRow.AutoFit
    PossNewRowHeight = .RowHeight
    .Cells(1).ColumnWidth = ActiveCellWidth
    .MergeCells = True
    .RowHeight = IIf(CurrentRowHeight > PossNewRowHeight, _
    CurrentRowHeight, PossNewRowHeight)</div>End If</div>End With</div>End If
    End Sub
    Il suffit de sélectionner la cellule fusionnée à ajuster, puis d'appeler cette procédure

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Manque une ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating = True
    Juste pour taquiner
    Merci, cwain, bonne idée de mettre le code. J'ai toujours fait ça à la main et comme tu dis, c'est gavant.

Discussions similaires

  1. Ajuster automatiquement la hauteur de ligne d'une cellule fusionné
    Par xvrpetit dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/08/2013, 08h29
  2. [XL-2007] Ajustement automatique cellules fusionnées
    Par MélanieJ dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 13/06/2012, 11h02
  3. Ajustement de cellules fusionnées
    Par takamo dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 17/06/2008, 14h09
  4. [VBA]Trouver les cellules fusionnées et autres
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 23/01/2006, 13h12
  5. [Automation Excel] ajuster des cellules excel
    Par willich dans le forum Access
    Réponses: 4
    Dernier message: 10/10/2005, 10h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo