J’ai un souci avec une macro pour mettre automatiquement des bordures aux cellules de B à F si la cellule B est non vide. J’affiche la feuille « Affectation » par un bouton à partir de la feuille « Accueil ».
Sur la feuille « Affectation », j’ai utilisé le code suivant :
Code:
Private Sub Worksheet_Activate()
Range("B5").Select
End Sub
Option Explicit
Private Sub Worksheet_Change()
Dim Derlig As Long
Derlig = Range("B" & Rows.Count).End(xlUp).Row
Range("B" & Derlig , "F" & Derlig).Borders.Value = 1
End Sub
Je joins le fichier de travail
Si quelqu’un à une solution.
Il ne me semble que tu aies choisi le bon évènement ...
S'il ne s'agit que de corriger ce code ... et uniquement ce code
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
'Mise de bordures sur dernière ligne
Dim Derlig As Long
Derlig = Range("B" & Rows.Count).End(xlUp).Row
Range("B5:F" & Derlig).Borders.Value = 1
End Sub
Il ne me semble que tu aies choisi le bon évènement ...
S'il ne s'agit que de corriger ce code ... et uniquement ce code
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
'Mise de bordures sur dernière ligne
Dim Derlig As Long
Derlig = Range("B" & Rows.Count).End(xlUp).Row
Range("B5:F" & Derlig).Borders.Value = 1
End Sub
re
bonjour
il y a un trou dans votre raisonnement
et le retour alors lors de suppression de donnée de la dernière ligne
et le fait d'effacer une ligne entre 2 pleines on doit faire quoi
a analyser ceci
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then
If Not IsEmpty(Target) Then
Target.Resize(, 5).Borders.Value = 1
Else
If IsEmpty(Target.Offset(1)) Then Target.Resize(, 5).Borders.Value = 0
End If
End If
End Sub
je dirais aussi que la condition "B" n'est pas suffisante mais bon je ne connais pas le contexte
testez effacer la cellule "B" de la dernière ligne
testez effacer une ligne entre 2 pleine
Merci Patricktoulon,
Il est vrai que je n'y avais pas pensé.
"Normalement" dans l'utilisation du classeur, il n'y aura pas de ligne vide, donc il n'y devrait pas y avoir de problème.