Mise en forme conditionnelle : centrer sur 2 cellules

sedna

XLDnaute Nouveau
Bonjour à tous,

Décidément, j'adore ce forum, on y apprend plein de choses, et si rapidement !
Malheureusement, j'ai bien peur de n'être que demandeur... pour l'instant.

Voici mon problème du jour : je voudrais centrer une donnée (saisie en B1) sur 2 cellules (B1 et C1), si et seulement si la cellule A1 est égale à 1.

Je n'ai pas joint de fichier, comme je pense que le cas est facilement compréhensible et reproductible.

Merci à vous

Sedna
 

Pierrot93

XLDnaute Barbatruc
Re : Mise en forme conditionnelle : centrer sur 2 cellules

Bonjour,

A ma connaissance ce type de format conditionnel n'est pas possible, une solution par vba, à placer dans le module de la feuille concernée => click droit sur l'onglet => visualiser le code et tu colles :
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
    If .Count > 1 Or .Address <> "$A$1" Then Exit Sub
    If .Value = 1 Then Range("B1:C1").HorizontalAlignment = xlCenterAcrossSelection
End With
End Sub
bon après midi
@+
 

DoubleZero

XLDnaute Barbatruc
Re : Mise en forme conditionnelle : centrer sur 2 cellules

Bonjour, sedna, Pierrot :D, le Forum,

Ou bien le code de Pierrot93, agrémenté de quelques mots :

Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    With Target
        If .Count > 1 Or .Address <> "$A$1" Then Exit Sub
        If .Value = 1 Then
            Range("B1:C1").HorizontalAlignment = xlCenterAcrossSelection
        Else
            Range("B1:C1").HorizontalAlignment = xlGeneral
        End If
    End With
End Sub

A bientôt :)
 

Pierrot93

XLDnaute Barbatruc
Re : Mise en forme conditionnelle : centrer sur 2 cellules

Re
pour saluer 00:)
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
    If .Count > 1 Or .Address <> "$A$1" Then Exit Sub
    Range("B1:C1").HorizontalAlignment = IIf(.Value = 1, xlCenterAcrossSelection, xlGeneral)
End With
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : Mise en forme conditionnelle : centrer sur 2 cellules

Bonjour à tous

Histoire de croiser les aminches et parce qu'on travaille avec des endives ;)
(Cela semble fonctionner...)
Code:
Private Sub Worksheet_Change(ByVal T As Range)
With T
    If .Count > 1 Or .Address <> "$A$1" Then Exit Sub
    .Range("B1").Resize(, 2).HorizontalAlignment = _
    IIf(.Value = 1, 7, 1)
End With
End Sub

Et si on s'éloigne de l’orthodoxie, cela peut aussi fonctionner ;)
Code:
Private Sub Worksheet_Change(ByVal T As Range)
[B1:C1].HorizontalAlignment = Switch([A1] = 1, 7, [A1] <> 1, 1)
End Sub
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Mise en forme conditionnelle : centrer sur 2 cellules

Bonjour à tous,

Juste pour saluer les ami(e)s et faire une petite remarque.

Dans les codes proposés le test .Count > 1 est inutile si l'on teste l'adresse.

De plus il plante la macro si l'on efface ou supprime toutes les cellules de la feuille...

En continuant comme JM :

Code:
Private Sub Worksheet_Change(ByVal T As Range)
[B1:C1].HorizontalAlignment = 1 - 6 * (CStr([A1]) = "1")
End Sub
A+
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 611
Messages
2 090 226
Membres
104 452
dernier inscrit
hamzamounir