Macro pour Centrer sur plusieurs colonnes, ou autre si déjà centré

Bonjour le Forum,

J'aime bien la possibilité de centrer un texte sur plusieurs colonnes, que je trouve plus souple que "fusionner les cellules".

J'ai une macro pour appliquer directement cette mise en forme à la plage sélectionnée :

Sub Format_centrer_sur_plusieurs_colonnes()
    With Selection
        .HorizontalAlignment = xlCenterAcrossSelection
    End With
End Sub

J'aimerais perfectionner cette macro pour que, si cette mise en forme est déjà appliquée à la plage, Excel Justifie à gauche, puis au centre, puis à droite, puis à nouveau centré sur plusieurs colonnes, à mesure qu'on reclique sur le bouton qui lance la macro.

Malheureusement ça dépasse mes capacités en VBA.

Quelqu'un pourrait-il m'aider ?

Merci !

Bonjour,

Un truc comme cela ?

Sub Format_centrer_sur_plusieurs_colonnes()
    With Selection
      Select Case .HorizontalAlignment
         Case xlCenterAcrossSelection
            .HorizontalAlignment = xlCenter
         Case xlCenter
            .HorizontalAlignment = xlLeft
         Case xlLeft
            .HorizontalAlignment = xlRight
         Case xlRight
            .HorizontalAlignment = xlGeneral
         Case xlGeneral
            .HorizontalAlignment = xlCenterAcrossSelection
      End Select
    End With
End Sub

Il faut que toutes les cellules de la sélection aient la même valeur, sinon cela renvoie Null et rien ne se passe.

Merci. C'est super.

Est-il cependant possible de "forcer la main" d'Excel pour que la macro marche même si la justification des cellules diffère d'une cellule à l'autre (en se basant sur les réglages de la cellule la plus à gauche de la sélection) ?

Merci !!!!

Il faut forcer le formatage pour qu'il soit identique à toutes :

    With Selection
      If IsNull(.HorizontalAlignment) Then .HorizontalAlignment = xlLeft
      .../...

C'est parfait !

Merci !!!

Rechercher des sujets similaires à "macro centrer colonnes deja centre"