Mise en forme avec bordure si cellule ative

  • Initiateur de la discussion Initiateur de la discussion chris6999
  • 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 !

chris6999

XLDnaute Impliqué
Bonjour

Je souhaiterais créer la macro suivante :

Si cellule 1 (colonne A) de la ligne n'est pas vide
Mettre des bordures sur les cellules de la ligne depuis la colonne A jusqu'à la colonne X
Si cellule 1 de la ligne vide supprimer les bordures de la ligne

Je pensais partir d'une macro de type
Private Sub Worksheet_Change(ByVal Target As Range)

Quelqu'un pourrait-il me trouver un code pas trop gourmand ?

Merci
 
Re : Mise en forme avec bordure si cellule ative

Bonjour chris6999,

Tu peux faire ça en mise en forme conditionnelle (MFC) sans macro si tu veux
sélectionne de A1 à X1000
format - mise en forme conditionnelle
la formule est
=$a1<>""
Format - Bordure - contour
OK
OK
 
Re : Mise en forme avec bordure si cellule ative

Bonjour

J'ai déjà cette formule dans ma mise en forme conditionnelle. Ce que je cherche c'est la version "macro"
Merci quand même

Bonjour chris6999,

Tu peux faire ça en mise en forme conditionnelle (MFC) sans macro si tu veux
sélectionne de A1 à X1000
format - mise en forme conditionnelle
la formule est
=$a1<>""
Format - Bordure - contour
OK
OK
 
Re : Mise en forme avec bordure si cellule ative

Re,

à tester

Code:
Private Sub Worksheet_Change(ByVal Target As Range)If Target.Count = 1 Then
    If Target.Column = 1 Then
        With Range("A" & Target.Row & ":X" & Target.Row)
            If Target.Value = "" Then
                .Borders(xlEdgeLeft).LineStyle = xlNone
                .Borders(xlEdgeTop).LineStyle = xlNone
                .Borders(xlEdgeRight).LineStyle = xlNone
                .Borders(xlEdgeBottom).LineStyle = xlNone
                .Borders(xlInsideVertical).LineStyle = xlNone
            Else
                .Borders(xlEdgeLeft).LineStyle = xlContinuous
                .Borders(xlEdgeTop).LineStyle = xlContinuous
                .Borders(xlEdgeRight).LineStyle = xlContinuous
                .Borders(xlEdgeBottom).LineStyle = xlContinuous
                .Borders(xlInsideVertical).LineStyle = xlContinuous
            End If
        End With
    End If
End If
End Sub
 
Re : Mise en forme avec bordure si cellule ative

Bonjour,

à essayer
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim x As Byte
 If Application.CountBlank(Range("A1:X1")) = 24 Then
   For x = 7 To 12
     Range("A1:X1").Borders(x).LineStyle = xlNone
   Next
 Else
   For x = 7 To 12
     Range("A1:X1").Borders(x).Weight = xlThin
   Next
 End If
End Sub

Remarque, tototiti😀, je n'aime pas beaucoup les répétitions mais c'est une affaire de goût😉 !
 
Dernière édition:
Re : Mise en forme avec bordure si cellule ative

Bonsoir

J'ai testé ta prmière proposition . Ca marche nickel mais quand j'essaye de coller plusieurs cellules, ça bugue (code erreur13).
J'essaierai demain ta seconde proposition
Bonne soirée
 
Re : Mise en forme avec bordure si cellule ative

Bonjour chris, Bonjour Fo_rum,

@Fo_rum : jolie astuce pour les bordures, mais elles doivent apparaître si la colonne A est remplie (en tout cas c'est la demande initiale), et ton code ne traite que la ligne 1 ?
@chris : un essai en intégrant la bonne idée de Fo_rum

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cellule As Range, x As Byte
If Not Application.Intersect(Target, Columns("A")) Is Nothing Then
    For Each Cellule In Target
    If Cellule.Column = 1 Then
            With Range("A" & Cellule.Row & ":X" & Cellule.Row)
                If Cellule.Value = "" Then
                    For x = 7 To 11
                        .Borders(x).LineStyle = xlNone
                    Next x
                Else
                    For x = 7 To 11
                        .Borders(x).LineStyle = xlContinuous
                    Next x
                End If
            End With
        End If
    Next
End If
End Sub
 
- 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
296
Retour