Menu

VBA: Detection bord tableau

maitrebanjo 1 Messages postés jeudi 12 octobre 2017Date d'inscription 12 octobre 2017 Dernière intervention - 12 oct. 2017 à 14:27 - Dernière réponse : Patrice33740 6745 Messages postés dimanche 13 juin 2010Date d'inscription 21 février 2018 Dernière intervention
- 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?
Afficher la suite 

2 réponses

Répondre au sujet
michel_m 15038 Messages postés lundi 12 septembre 2005Date d'inscriptionContributeurStatut 22 février 2018 Dernière intervention - Modifié par michel_m le 13/10/2017 à 09:23
0
Utile
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
Commenter la réponse de michel_m
Patrice33740 6745 Messages postés dimanche 13 juin 2010Date d'inscription 21 février 2018 Dernière intervention - Modifié par Patrice33740 le 13/10/2017 à 10:38
0
Utile
Bonjour,

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


Cordialement
Patrice
Commenter la réponse de Patrice33740