Private sub (MEF borders) : pb après un tri.

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

zebanx

XLDnaute Accro
Bonjour à tous,

Un petit code en private sub me permet d'afficher une bordure (xlTOP) si le numéro de facture est différent (clé : colonne C).

Mais si j'ai besoin de trier, par exemple sur le code client.... il n'y a pas de rafraichissement permettant de conserver les bordures suivant le numéro de facture.

Pourriez-vous svp m'apporter votre aide pour modifier ce code ?

Vous en remerciant, bonne journée
zebanx

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Lg&
' If Not Application.Intersect(Target, Range("F" & Target.Row)) Is Nothing Then
    lastc = Cells(1, Columns.Count).End(1).Column
    Set plage = Range(Cells(Target.Row, 1), Cells(Target.Row, lastc))
    If (Cells(Target.Row, 3) <> Cells(Target.Row - 1, 3) And Cells(Target.Row, 3) <> "") Then
    With plage.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlMedium
    End With
    Else
    plage.Borders(xlEdgeTop).LineStyle = xlNone
    plage.Borders(xlEdgeBottom).LineStyle = xlNone
    'plage.Borders.LineStyle = xlNone
    End If
'End If
End Sub
 

Pièces jointes

Dernière édition:
Bonjour le fil,

zebank
Juste pour infos
Avec cette petite modif "réductrice", le résultat est le même qu'avec le code initial, non?
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Lg&, lastc&
' If Not Application.Intersect(Target, Range("F" & Target.Row)) Is Nothing Then
lastc = Cells(1, Columns.Count).End(1).Column
Set plage = Range(Cells(Target.Row, 1), Cells(Target.Row, lastc))
If (Cells(Target.Row, 3) <> Cells(Target.Row - 1, 3) And Cells(Target.Row, 3) <> "") Then
plage.Borders(xlEdgeTop).Weight = xlMedium
Else
plage.Borders(xlEdgeTop).LineStyle = xlNone
plage.Borders(xlEdgeBottom).LineStyle = xlNone
'plage.Borders.LineStyle = xlNone
End If
'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

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
248
Réponses
4
Affichages
145
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
232
Réponses
3
Affichages
458
Réponses
6
Affichages
393
Réponses
3
Affichages
598
Réponses
32
Affichages
1 K
Réponses
16
Affichages
999
Retour