Comment, en VBA, ajuste la hauteur d'une ligne contenant des cellules fusionnées

Bonjour à tous,

Lorsque vous fusionnez des cellules pour pouvoir ensuite faire un alignement à gauche, il devient impossible d'ajuster correctement la hauteur de la ligne contenant ces cellules fusionnées (habituellement un double clic entre les deux lignes).

Voici un exemple.

Pour réussir à aboutir à ce résultat :
2010-05-17 11h53_19

Voici la macro de Jim Rech:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Sub AutoFitMergedCellRowHeight()
    Dim CurrentRowHeight As Single, MergedCellRgWidth As Single
    Dim CurrCell As Range
    Dim ActiveCellWidth As Single, PossNewRowHeight As Single
    If ActiveCell.MergeCells Then
        With ActiveCell.MergeArea
            If .Rows.Count = 1 And .WrapText = True Then
                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)
            End If
        End With
    End If
End Sub

A bientôt.

Gaetan

Mettre en couleur les erreurs de saisie

Bonjour à tous,

Lorsque vous utilisez une validation (Données - Validation), vous pouvez utiliser une liste déroulante avec un message indiquant que la saisie ne fait pas partie de cette liste. Cependant, ce message est relativement intrusif, surtout lorsqu'on doit faire de nombreuses saisies, dont certaines ne font pas partie de la liste.

Vous pouvez donc enlever le message dans le troisième onglet de la boite de dialogue de validation :

vallidation2

Cependant vous perdez alors l'information que la saisie ne fait pas partie de la liste.
Pour éviter cela, nous allons ajouter la mise en forme conditionnelle suivante (2003 : menu Format, Mise en forme conditionnelle; 2007: Onglet Accueil)

mfc

On notera que C1 correspond à la cellule active, qui est ensuite "recopiée sur toute la plage"
Liste correspond à un nom définissant la liste des valeurs.

Cela vous permet maintenant d'avoir une liste, mais de pouvoir saisir n'importe quelle valeur, tout en ayant un indicateur sur la saisie, indicateur non intrusif comme un message.
Celà peut s'avérer très pratique lors de la saisie massive de données.

A bientôt.

Gaetan

Dans la série, j'en apprends tous les jours

Bonjour à tous,

Ce matin j'ouvre un fichier excel (Excel 2007) d'une très bonne amie et oh surprise, il y a une règle sur le bord de ma feuille de calcul :

Tiens, une règle

Mais quelle bonne idée, me dis-je et comment se fait-il-donc que je n'ai point vu ceci auparant???

Bref, c'est tout bête, il faut d'abord aller dans l'onglet affichage, puis passer en mode "Mise en page", puis dans ce même onglet, on s'assure que la Règle (sous 2007) est coché. Comme je n'utilise jamais ce mode, je n'avais donc jamais vu la règle... CQFD...

Pour revenir en model normal, on clique sur le bouton... normal 😉

Je regarde un peu plus tard si ca existe aussi pour 2003

A bientôt.

Gaetan