VBA: Detection bord tableau

Fermé
maitrebanjo Messages postés 1 Date d'inscription jeudi 12 octobre 2017 Statut Membre Dernière intervention 12 octobre 2017 - 12 oct. 2017 à 14:27
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 13 oct. 2017 à 10:38
Bonjour à tous,

J'ai codé le code ci dessous qui me permet de mettre en rouge les bords de la ligne de ma cellule active:


Dim oldtarget As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set champ = Range("A1:BZ" & Range("TableauDeBord").Rows.Count + 1)
If Not oldtarget Is Nothing Then oldtarget.EntireRow.Borders.LineStyle = xlNone
If Not Intersect(Target, champ) Is Nothing Then
If Target.Count = 1 Then
With Target.EntireRow
With .Borders(xlEdgeTop)
.Weight = xlMedium
.Color = RGB(255, 0, 0)
End With
With .Borders(xlEdgeBottom)
.Weight = xlMedium
.Color = RGB(255, 0, 0)
End With
End With
End If
End If
Set oldtarget = Target
End Sub


J'aimerais savoir si il y avait une possibilité pour que la mise en forme ne se fasse que jusqu'à la dernière colonne du tableau?

2 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié le 13 oct. 2017 à 09:23
Bonjour

tu peux connaitre la ligne de Target par la fonction "row"

l
igne=target.row


la zone à encadrer est
 zone=Range (cells(ligne,"A"),cells(ligne,"BZ"))


et enfin tu remplaces
With Target.EntireRow
With .Borders(xlEdgeTop)...
par
With Zone
With .Borders(xlEdgeTop)...

 Michel
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
Modifié le 13 oct. 2017 à 10:38
Bonjour,

Tu peux simplement remplacer :
With Target.EntireRow
Par :
With Intersect(champ, Target.EntireRow) 


Cordialement
Patrice
0