Ajouter un interrupteur pour la saisie de vos données

Pour éviter la saisie de données dans vos cellules, vous pouvez utiliser les outils de protection de feuilles, mais parfois cette solution n'est pas envisageable ou souhaitable.

Une alternative consiste à utiliser l'outil Données Validation, puis choisir personnalisée et entrer =FAUX.
De fait, on empèche la saisie de toute valeur.

Si on veut maintenant établir un interrupteur à l'échelle du classeur, on peut ajouter une feuille de paramètres, dans cette feuille, nommer une cellule (par ex. "Interrupteur_de_saisie" et lui attribuer la valeur =FAUX (on préférera la formule, notamment si on travaille à l'international).

2010-05-26 11h06_17

Il ne reste plus qu'à définir la validation de la cellule en utilisant le nom que l'on vient de définir :

2010-05-26 11h04_39

Et toute saisie sera interdite.

On peut gérer les messages indiquant que la saisie est interdite dans les autres onglets de la validation :

2010-05-26 11h07_39

Merci à Dominique Handelsman pour cette astuce.

A bientôt.

Gaetan

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