bordure d'une ligne

  • Initiateur de la discussion Worm
  • Date de début
W

Worm

Guest
Hello everybody,

je voudrais que lorsque je tape "ok" dans une case, ma macro puisse modifier la bordure de toute la ligne.

Avec Range.Rows.Borders, ça marche que pour la case (exactement comme Range.Borders).

Moi, je voudrais que ça marche pour toute la ligne.

Please help!

Thanks
 
@

@+Thierry

Guest
Bonjour Worm, le Forum

Voici comment je procèderais ....

Sub BorderOnRow()
Dim WS As Worksheet
Dim UR As Range
Dim L As Integer

L = ActiveCell.Row

Set WS = Worksheets("Feuil1")

Set UR = WS.Range("A" & L & ":IV" & L)

With UR
With .Borders(9)
.LineStyle = xlContinuous
.Weight = 4
.ColorIndex = xlAutomatic
End With
End With
End Sub


Plus d'info dans ce Fil => Lien supprimé

Bon Week End
@+Thierry
 
M

myDearFriend

Guest
Bonjour Worm,

Re- Thierry

Pour ma part, une proposition légèrement différente :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value = "ok" Then
With Target.EntireRow.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
End If
End Sub


Cordialement,
Didier_mDF
 
@

@+Thierry

Guest
Oups

On devrait plutôt adapter cet exemple avec :

Set WS = ActiveSheet

Plutôt que
Set WS = Worksheets("Feuil1")

Evidemment si on passe par une macro évènementielle de Private Module de Feuille (pour le OK) on ferait alors comme ceci (en imaginant que "OK" doit être écrit en colonne "A":

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim UR As Range
Dim L As Integer
If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then
If UCase(Target.Value) = "OK" Then

L = Target.Row

Set UR = Me.Range("A" & L & ":IV" & L)

With UR
With .Borders(9)
.LineStyle = xlContinuous
.Weight = 4
.ColorIndex = xlAutomatic
End With
End With
End If
End If
End Sub

Bon Samedi
@+Thierry
 
@

@+Thierry

Guest
Hello Didier,

Oui EntireRow pourrait être plus simple, en fait j'ai repris une démo que j'ai mis en lien ci-dessus... (interressante pour les 4 borders)... Par contre l'avantage c'est que justement on peut éviter d'aller jusqu'en IV si on veut juste un border sur A à G (par exemple) on peut adapter facilement :

Set UR = Me.Range("A" & L & ":G" & L)

Bon Aprèm
@+Thierry
 

Discussions similaires

Statistiques des forums

Discussions
312 510
Messages
2 089 151
Membres
104 053
dernier inscrit
ftexfr