Mise en forme conditionnelle : centrer sur 2 cellules

  • Initiateur de la discussion Initiateur de la discussion sedna
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
@+
 
Re : Mise en forme conditionnelle : centrer sur 2 cellules

Bonjour, sedna, Pierrot 😀, 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 🙂
 
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
 
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:
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:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
6
Affichages
158
Retour